@scalekit-sdk/node 2.2.0-beta.1 → 2.2.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.
Files changed (209) hide show
  1. package/.nvmrc +1 -1
  2. package/README.md +5 -5
  3. package/buf.gen.yaml +1 -5
  4. package/lib/auth.d.ts +9 -6
  5. package/lib/auth.js +4 -20
  6. package/lib/auth.js.map +1 -1
  7. package/lib/connect.d.ts +3 -3
  8. package/lib/connect.js +1 -2
  9. package/lib/connect.js.map +1 -1
  10. package/lib/connection.d.ts +2 -2
  11. package/lib/connection.js +4 -4
  12. package/lib/connection.js.map +1 -1
  13. package/lib/core.js +2 -2
  14. package/lib/core.js.map +1 -1
  15. package/lib/directory.d.ts +2 -2
  16. package/lib/directory.js +7 -7
  17. package/lib/directory.js.map +1 -1
  18. package/lib/domain.d.ts +6 -5
  19. package/lib/domain.js +4 -5
  20. package/lib/domain.js.map +1 -1
  21. package/lib/errors/base-exception.d.ts +1 -1
  22. package/lib/errors/base-exception.js +1 -1
  23. package/lib/errors/base-exception.js.map +1 -1
  24. package/lib/organization.d.ts +10 -9
  25. package/lib/organization.js +11 -9
  26. package/lib/organization.js.map +1 -1
  27. package/lib/passwordless.d.ts +2 -2
  28. package/lib/passwordless.js +8 -7
  29. package/lib/passwordless.js.map +1 -1
  30. package/lib/permission.d.ts +6 -5
  31. package/lib/permission.js +10 -11
  32. package/lib/permission.js.map +1 -1
  33. package/lib/pkg/grpc/buf/validate/validate_pb.d.ts +7 -0
  34. package/lib/pkg/grpc/buf/validate/validate_pb.js +25 -0
  35. package/lib/pkg/grpc/buf/validate/validate_pb.js.map +1 -0
  36. package/lib/pkg/grpc/google/api/annotations_pb.d.ts +7 -0
  37. package/lib/pkg/grpc/google/api/annotations_pb.js +25 -0
  38. package/lib/pkg/grpc/google/api/annotations_pb.js.map +1 -0
  39. package/lib/pkg/grpc/google/api/field_behavior_pb.d.ts +7 -0
  40. package/lib/pkg/grpc/google/api/field_behavior_pb.js +25 -0
  41. package/lib/pkg/grpc/google/api/field_behavior_pb.js.map +1 -0
  42. package/lib/pkg/grpc/google/api/visibility_pb.d.ts +7 -0
  43. package/lib/pkg/grpc/google/api/visibility_pb.js +25 -0
  44. package/lib/pkg/grpc/google/api/visibility_pb.js.map +1 -0
  45. package/lib/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.d.ts +7 -0
  46. package/lib/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.js +25 -0
  47. package/lib/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.js.map +1 -0
  48. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.d.ts +48 -42
  49. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.js +27 -263
  50. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.js.map +1 -1
  51. package/lib/pkg/grpc/scalekit/v1/auth/auth_pb.d.ts +371 -325
  52. package/lib/pkg/grpc/scalekit/v1/auth/auth_pb.js +132 -835
  53. package/lib/pkg/grpc/scalekit/v1/auth/auth_pb.js.map +1 -1
  54. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_pb.d.ts +113 -87
  55. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_pb.js +45 -201
  56. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_pb.js.map +1 -1
  57. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_pb.d.ts +262 -265
  58. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_pb.js +92 -938
  59. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_pb.js.map +1 -1
  60. package/lib/pkg/grpc/scalekit/v1/commons/commons_pb.d.ts +162 -157
  61. package/lib/pkg/grpc/scalekit/v1/commons/commons_pb.js +42 -313
  62. package/lib/pkg/grpc/scalekit/v1/commons/commons_pb.js.map +1 -1
  63. package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.d.ts +1488 -1459
  64. package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.js +353 -2362
  65. package/lib/pkg/grpc/scalekit/v1/connections/connections_pb.js.map +1 -1
  66. package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.d.ts +520 -483
  67. package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.js +224 -1555
  68. package/lib/pkg/grpc/scalekit/v1/directories/directories_pb.js.map +1 -1
  69. package/lib/pkg/grpc/scalekit/v1/domains/domains_pb.d.ts +219 -191
  70. package/lib/pkg/grpc/scalekit/v1/domains/domains_pb.js +96 -553
  71. package/lib/pkg/grpc/scalekit/v1/domains/domains_pb.js.map +1 -1
  72. package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.d.ts +76 -102
  73. package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.js +37 -393
  74. package/lib/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.js.map +1 -1
  75. package/lib/pkg/grpc/scalekit/v1/options/options_pb.d.ts +36 -26
  76. package/lib/pkg/grpc/scalekit/v1/options/options_pb.js +20 -69
  77. package/lib/pkg/grpc/scalekit/v1/options/options_pb.js.map +1 -1
  78. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.d.ts +447 -400
  79. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.js +163 -1238
  80. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_pb.js.map +1 -1
  81. package/lib/pkg/grpc/scalekit/v1/roles/roles_pb.d.ts +622 -556
  82. package/lib/pkg/grpc/scalekit/v1/roles/roles_pb.js +201 -1718
  83. package/lib/pkg/grpc/scalekit/v1/roles/roles_pb.js.map +1 -1
  84. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_pb.d.ts +135 -132
  85. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_pb.js +55 -518
  86. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_pb.js.map +1 -1
  87. package/lib/pkg/grpc/scalekit/v1/users/users_pb.d.ts +445 -413
  88. package/lib/pkg/grpc/scalekit/v1/users/users_pb.js +142 -1490
  89. package/lib/pkg/grpc/scalekit/v1/users/users_pb.js.map +1 -1
  90. package/lib/role.d.ts +8 -7
  91. package/lib/role.js +14 -14
  92. package/lib/role.js.map +1 -1
  93. package/lib/scalekit.d.ts +0 -4
  94. package/lib/scalekit.js +0 -4
  95. package/lib/scalekit.js.map +1 -1
  96. package/lib/session.js +15 -24
  97. package/lib/session.js.map +1 -1
  98. package/lib/user.d.ts +6 -5
  99. package/lib/user.js +17 -20
  100. package/lib/user.js.map +1 -1
  101. package/lib/webauthn.js +6 -5
  102. package/lib/webauthn.js.map +1 -1
  103. package/package.json +6 -10
  104. package/reference.md +0 -671
  105. package/src/auth.ts +17 -17
  106. package/src/connect.ts +4 -5
  107. package/src/connection.ts +5 -5
  108. package/src/core.ts +2 -2
  109. package/src/directory.ts +8 -8
  110. package/src/domain.ts +9 -8
  111. package/src/errors/base-exception.ts +3 -2
  112. package/src/organization.ts +18 -15
  113. package/src/passwordless.ts +12 -11
  114. package/src/permission.ts +15 -15
  115. package/src/pkg/grpc/buf/validate/validate_pb.ts +28 -0
  116. package/src/pkg/grpc/google/api/annotations_pb.ts +28 -0
  117. package/src/pkg/grpc/google/api/field_behavior_pb.ts +28 -0
  118. package/src/pkg/grpc/google/api/visibility_pb.ts +28 -0
  119. package/src/pkg/grpc/protoc-gen-openapiv2/options/annotations_pb.ts +28 -0
  120. package/src/pkg/grpc/scalekit/v1/auditlogs/auditlogs_pb.ts +97 -182
  121. package/src/pkg/grpc/scalekit/v1/auth/auth_pb.ts +473 -850
  122. package/src/pkg/grpc/scalekit/v1/auth/passwordless_pb.ts +153 -225
  123. package/src/pkg/grpc/scalekit/v1/auth/webauthn_pb.ts +361 -830
  124. package/src/pkg/grpc/scalekit/v1/commons/commons_pb.ts +237 -358
  125. package/src/pkg/grpc/scalekit/v1/connections/connections_pb.ts +1625 -2826
  126. package/src/pkg/grpc/scalekit/v1/directories/directories_pb.ts +687 -1413
  127. package/src/pkg/grpc/scalekit/v1/domains/domains_pb.ts +286 -542
  128. package/src/pkg/grpc/scalekit/v1/errdetails/errdetails_pb.ts +115 -328
  129. package/src/pkg/grpc/scalekit/v1/options/options_pb.ts +50 -80
  130. package/src/pkg/grpc/scalekit/v1/organizations/organizations_pb.ts +558 -1183
  131. package/src/pkg/grpc/scalekit/v1/roles/roles_pb.ts +765 -1669
  132. package/src/pkg/grpc/scalekit/v1/sessions/sessions_pb.ts +195 -447
  133. package/src/pkg/grpc/scalekit/v1/users/users_pb.ts +592 -1339
  134. package/src/role.ts +21 -19
  135. package/src/scalekit.ts +0 -9
  136. package/src/session.ts +20 -34
  137. package/src/user.ts +30 -26
  138. package/src/webauthn.ts +10 -9
  139. package/tests/utils/test-data.ts +17 -8
  140. package/lib/connected-accounts.d.ts +0 -119
  141. package/lib/connected-accounts.js +0 -241
  142. package/lib/connected-accounts.js.map +0 -1
  143. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.d.ts +0 -19
  144. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.js +0 -27
  145. package/lib/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.js.map +0 -1
  146. package/lib/pkg/grpc/scalekit/v1/auth/auth_connect.d.ts +0 -118
  147. package/lib/pkg/grpc/scalekit/v1/auth/auth_connect.js +0 -126
  148. package/lib/pkg/grpc/scalekit/v1/auth/auth_connect.js.map +0 -1
  149. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_connect.d.ts +0 -37
  150. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_connect.js +0 -45
  151. package/lib/pkg/grpc/scalekit/v1/auth/passwordless_connect.js.map +0 -1
  152. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_connect.d.ts +0 -82
  153. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_connect.js +0 -90
  154. package/lib/pkg/grpc/scalekit/v1/auth/webauthn_connect.js.map +0 -1
  155. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.d.ts +0 -87
  156. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.js +0 -95
  157. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.js.map +0 -1
  158. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.d.ts +0 -718
  159. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.js +0 -893
  160. package/lib/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.js.map +0 -1
  161. package/lib/pkg/grpc/scalekit/v1/connections/connections_connect.d.ts +0 -172
  162. package/lib/pkg/grpc/scalekit/v1/connections/connections_connect.js +0 -180
  163. package/lib/pkg/grpc/scalekit/v1/connections/connections_connect.js.map +0 -1
  164. package/lib/pkg/grpc/scalekit/v1/directories/directories_connect.d.ts +0 -154
  165. package/lib/pkg/grpc/scalekit/v1/directories/directories_connect.js +0 -162
  166. package/lib/pkg/grpc/scalekit/v1/directories/directories_connect.js.map +0 -1
  167. package/lib/pkg/grpc/scalekit/v1/domains/domains_connect.d.ts +0 -73
  168. package/lib/pkg/grpc/scalekit/v1/domains/domains_connect.js +0 -81
  169. package/lib/pkg/grpc/scalekit/v1/domains/domains_connect.js.map +0 -1
  170. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_connect.d.ts +0 -171
  171. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_connect.js +0 -179
  172. package/lib/pkg/grpc/scalekit/v1/organizations/organizations_connect.js.map +0 -1
  173. package/lib/pkg/grpc/scalekit/v1/roles/roles_connect.d.ts +0 -250
  174. package/lib/pkg/grpc/scalekit/v1/roles/roles_connect.js +0 -258
  175. package/lib/pkg/grpc/scalekit/v1/roles/roles_connect.js.map +0 -1
  176. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_connect.d.ts +0 -46
  177. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_connect.js +0 -54
  178. package/lib/pkg/grpc/scalekit/v1/sessions/sessions_connect.js.map +0 -1
  179. package/lib/pkg/grpc/scalekit/v1/tools/tools_connect.d.ts +0 -75
  180. package/lib/pkg/grpc/scalekit/v1/tools/tools_connect.js +0 -83
  181. package/lib/pkg/grpc/scalekit/v1/tools/tools_connect.js.map +0 -1
  182. package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.d.ts +0 -431
  183. package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.js +0 -627
  184. package/lib/pkg/grpc/scalekit/v1/tools/tools_pb.js.map +0 -1
  185. package/lib/pkg/grpc/scalekit/v1/users/users_connect.d.ts +0 -173
  186. package/lib/pkg/grpc/scalekit/v1/users/users_connect.js +0 -181
  187. package/lib/pkg/grpc/scalekit/v1/users/users_connect.js.map +0 -1
  188. package/lib/tools.d.ts +0 -75
  189. package/lib/tools.js +0 -127
  190. package/lib/tools.js.map +0 -1
  191. package/src/connected-accounts.ts +0 -358
  192. package/src/pkg/grpc/scalekit/v1/auditlogs/auditlogs_connect.ts +0 -26
  193. package/src/pkg/grpc/scalekit/v1/auth/auth_connect.ts +0 -125
  194. package/src/pkg/grpc/scalekit/v1/auth/passwordless_connect.ts +0 -44
  195. package/src/pkg/grpc/scalekit/v1/auth/webauthn_connect.ts +0 -89
  196. package/src/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_connect.ts +0 -94
  197. package/src/pkg/grpc/scalekit/v1/connected_accounts/connected_accounts_pb.ts +0 -1294
  198. package/src/pkg/grpc/scalekit/v1/connections/connections_connect.ts +0 -179
  199. package/src/pkg/grpc/scalekit/v1/directories/directories_connect.ts +0 -161
  200. package/src/pkg/grpc/scalekit/v1/domains/domains_connect.ts +0 -80
  201. package/src/pkg/grpc/scalekit/v1/organizations/organizations_connect.ts +0 -178
  202. package/src/pkg/grpc/scalekit/v1/roles/roles_connect.ts +0 -257
  203. package/src/pkg/grpc/scalekit/v1/sessions/sessions_connect.ts +0 -53
  204. package/src/pkg/grpc/scalekit/v1/tools/tools_connect.ts +0 -82
  205. package/src/pkg/grpc/scalekit/v1/tools/tools_pb.ts +0 -847
  206. package/src/pkg/grpc/scalekit/v1/users/users_connect.ts +0 -180
  207. package/src/tools.ts +0 -166
  208. package/tests/connected-accounts.test.ts +0 -472
  209. package/tests/tools.test.ts +0 -239
@@ -1,25 +1,40 @@
1
- // @generated by protoc-gen-es v1.10.0 with parameter "target=ts"
1
+ // @generated by protoc-gen-es v2.11.0 with parameter "target=ts"
2
2
  // @generated from file scalekit/v1/users/users.proto (package scalekit.v1.users, syntax proto3)
3
3
  /* eslint-disable */
4
- // @ts-nocheck
5
4
 
6
- import type { BinaryReadOptions, FieldList, JsonReadOptions, JsonValue, PartialMessage, PlainMessage } from "@bufbuild/protobuf";
7
- import { Message, proto3, Timestamp } from "@bufbuild/protobuf";
8
- import { OrganizationMembership, Role, UserProfile } from "../commons/commons_pb.js";
5
+ import type { GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
6
+ import { fileDesc, messageDesc, serviceDesc } from "@bufbuild/protobuf/codegenv2";
7
+ import { file_buf_validate_validate } from "../../../buf/validate/validate_pb";
8
+ import { file_google_api_annotations } from "../../../google/api/annotations_pb";
9
+ import { file_google_api_field_behavior } from "../../../google/api/field_behavior_pb";
10
+ import { file_google_api_visibility } from "../../../google/api/visibility_pb";
11
+ import type { EmptySchema, Timestamp } from "@bufbuild/protobuf/wkt";
12
+ import { file_google_protobuf_empty, file_google_protobuf_timestamp } from "@bufbuild/protobuf/wkt";
13
+ import { file_protoc_gen_openapiv2_options_annotations } from "../../../protoc-gen-openapiv2/options/annotations_pb";
14
+ import type { OrganizationMembership, Role, UserProfile } from "../commons/commons_pb";
15
+ import { file_scalekit_v1_commons_commons } from "../commons/commons_pb";
16
+ import { file_scalekit_v1_options_options } from "../options/options_pb";
17
+ import type { Message } from "@bufbuild/protobuf";
18
+
19
+ /**
20
+ * Describes the file scalekit/v1/users/users.proto.
21
+ */
22
+ export const file_scalekit_v1_users_users: GenFile = /*@__PURE__*/
23
+ fileDesc("Ch1zY2FsZWtpdC92MS91c2Vycy91c2Vycy5wcm90bxIRc2NhbGVraXQudjEudXNlcnMi9AwKBFVzZXIScQoCaWQYASABKAlCZZJBYjJIVW5pcXVlIHN5c3RlbS1nZW5lcmF0ZWQgaWRlbnRpZmllciBmb3IgdGhlIHVzZXIuIEltbXV0YWJsZSBvbmNlIGNyZWF0ZWQuShYidXNyXzEyMzRhYmNkNTY3OGVmZ2giEqABCg5lbnZpcm9ubWVudF9pZBgCIAEoCUKHAZJBcjJYSWRlbnRpZmllciBvZiB0aGUgZW52aXJvbm1lbnQgd2hlcmUgdGhlIHVzZXIgd2FzIGNyZWF0ZWQuIFN5c3RlbS1hc3NpZ25lZCBhbmQgcmVhZC1vbmx5LkoWImVudl85ODc2enl4dzU0MzJ2dXRzIuBBA/rS5JMCCRIHUFJFVklFVxKQAQoLY3JlYXRlX3RpbWUYAyABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQl+SQVkyV1RpbWVzdGFtcCB3aGVuIHRoZSB1c2VyIGFjY291bnQgd2FzIGluaXRpYWxseSBjcmVhdGVkLiBBdXRvbWF0aWNhbGx5IHNldCBieSB0aGUgc2VydmVyLuBBAxKVAQoLdXBkYXRlX3RpbWUYBCABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQmSSQV4yXFRpbWVzdGFtcCBvZiB0aGUgbGFzdCBtb2RpZmljYXRpb24gdG8gdGhlIHVzZXIgYWNjb3VudC4gQXV0b21hdGljYWxseSB1cGRhdGVkIGJ5IHRoZSBzZXJ2ZXIu4EEDEpEBCgVlbWFpbBgFIAEoCUKBAZJBdzJhUHJpbWFyeSBlbWFpbCBhZGRyZXNzIGZvciB0aGUgdXNlci4gTXVzdCBiZSB1bmlxdWUgYWNyb3NzIHRoZSBlbnZpcm9ubWVudCBhbmQgdmFsaWQgcGVyIFJGQyA1MzIyLkoSInVzZXJAZXhhbXBsZS5jb20iukgEcgJgARKWAQoLZXh0ZXJuYWxfaWQYBiABKAlCfJJBeTJjWW91ciBhcHBsaWNhdGlvbidzIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG9yZ2FuaXphdGlvbiwgdXNlZCB0byBsaW5rIFNjYWxla2l0IHdpdGggeW91ciBzeXN0ZW0uShIiZXh0XzEyMzQ1YTY3Yjg5YyJIAIgBARKcAQoLbWVtYmVyc2hpcHMYByADKAsyKy5zY2FsZWtpdC52MS5jb21tb25zLk9yZ2FuaXphdGlvbk1lbWJlcnNoaXBCWpJBVzJVTGlzdCBvZiBvcmdhbml6YXRpb24gbWVtYmVyc2hpcHMuIEF1dG9tYXRpY2FsbHkgcG9wdWxhdGVkIGJhc2VkIG9uIGdyb3VwIGFzc2lnbm1lbnRzLhKPAQoMdXNlcl9wcm9maWxlGAggASgLMiAuc2NhbGVraXQudjEuY29tbW9ucy5Vc2VyUHJvZmlsZUJXkkFUMlJVc2VyJ3MgcGVyc29uYWwgaW5mb3JtYXRpb24gaW5jbHVkaW5nIG5hbWUsIGFkZHJlc3MsIGFuZCBvdGhlciBwcm9maWxlIGF0dHJpYnV0ZXMuEvYBCghtZXRhZGF0YRgJIAMoCzIlLnNjYWxla2l0LnYxLnVzZXJzLlVzZXIuTWV0YWRhdGFFbnRyeUK8AZJBnwEyZEN1c3RvbSBrZXktdmFsdWUgcGFpcnMgZm9yIHN0b3JpbmcgYWRkaXRpb25hbCB1c2VyIGNvbnRleHQuIEtleXMgKDMtMjUgY2hhcnMpLCB2YWx1ZXMgKDEtMjU2IGNoYXJzKS5KN3siZGVwYXJ0bWVudCI6ICJlbmdpbmVlcmluZyIsICJsb2NhdGlvbiI6ICJueWMtb2ZmaWNlIn26SBaaARMQFCIGcgQQAxgZKgdyBRABGIACEpIBCg9sYXN0X2xvZ2luX3RpbWUYCiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQl2SQVcyVVRpbWVzdGFtcCBvZiB0aGUgdXNlcidzIG1vc3QgcmVjZW50IHN1Y2Nlc3NmdWwgYXV0aGVudGljYXRpb24uIFVwZGF0ZWQgYXV0b21hdGljYWxseS7gQQMaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg4KDF9leHRlcm5hbF9pZCL6AQoeQ3JlYXRlVXNlckFuZE1lbWJlcnNoaXBSZXF1ZXN0EhcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCRIzCgR1c2VyGAIgASgLMh0uc2NhbGVraXQudjEudXNlcnMuQ3JlYXRlVXNlckIGukgDyAEBEnAKFXNlbmRfaW52aXRhdGlvbl9lbWFpbBgDIAEoCEJMkkFJMkFJZiB0cnVlLCBzZW5kcyBhbiBhY3RpdmF0aW9uIGVtYWlsIHRvIHRoZSB1c2VyLiBEZWZhdWx0cyB0byB0cnVlLkoEdHJ1ZUgAiAEBQhgKFl9zZW5kX2ludml0YXRpb25fZW1haWwiSAofQ3JlYXRlVXNlckFuZE1lbWJlcnNoaXBSZXNwb25zZRIlCgR1c2VyGAEgASgLMhcuc2NhbGVraXQudjEudXNlcnMuVXNlciKNBQoKVXBkYXRlVXNlchKWAQoLZXh0ZXJuYWxfaWQYBiABKAlCfJJBeTJjWW91ciBhcHBsaWNhdGlvbidzIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG9yZ2FuaXphdGlvbiwgdXNlZCB0byBsaW5rIFNjYWxla2l0IHdpdGggeW91ciBzeXN0ZW0uShIiZXh0XzEyMzQ1YTY3Yjg5YyJIAIgBARKTAQoMdXNlcl9wcm9maWxlGAggASgLMiQuc2NhbGVraXQudjEudXNlcnMuVXBkYXRlVXNlclByb2ZpbGVCV5JBVDJSVXNlcidzIHBlcnNvbmFsIGluZm9ybWF0aW9uIGluY2x1ZGluZyBuYW1lLCBhZGRyZXNzLCBhbmQgb3RoZXIgcHJvZmlsZSBhdHRyaWJ1dGVzLhL8AQoIbWV0YWRhdGEYCSADKAsyKy5zY2FsZWtpdC52MS51c2Vycy5VcGRhdGVVc2VyLk1ldGFkYXRhRW50cnlCvAGSQZ8BMmRDdXN0b20ga2V5LXZhbHVlIHBhaXJzIGZvciBzdG9yaW5nIGFkZGl0aW9uYWwgdXNlciBjb250ZXh0LiBLZXlzICgzLTI1IGNoYXJzKSwgdmFsdWVzICgxLTI1NiBjaGFycykuSjd7ImRlcGFydG1lbnQiOiAiZW5naW5lZXJpbmciLCAibG9jYXRpb24iOiAibnljLW9mZmljZSJ9ukgWmgETEBQiBnIEEAMYGSoHcgUQARiAAhovCg1NZXRhZGF0YUVudHJ5EgsKA2tleRgBIAEoCRINCgV2YWx1ZRgCIAEoCToCOAFCDgoMX2V4dGVybmFsX2lkSgQIARAGSgQIBxAISgQIChALIpUEChFVcGRhdGVVc2VyUmVxdWVzdBKIAQoCaWQYASABKAlCepJBaDJOU3lzdGVtLWdlbmVyYXRlZCB1c2VyIElELiBNdXN0IHN0YXJ0IHdpdGggJ3Vzcl8nIGFuZCBiZSAxOS0yNSBjaGFyYWN0ZXJzIGxvbmcuShYidXNyXzEyMzRhYmNkNTY3OGVmZ2giukgMcgoQExgZOgR1c3JfSAASjgEKC2V4dGVybmFsX2lkGAIgASgJQneSQXQyY1lvdXIgYXBwbGljYXRpb24ncyB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBvcmdhbml6YXRpb24sIHVzZWQgdG8gbGluayBTY2FsZWtpdCB3aXRoIHlvdXIgc3lzdGVtLkoNImV4dF83ODkweHl6IkgAEtUBCgR1c2VyGAMgASgLMh0uc2NhbGVraXQudjEudXNlcnMuVXBkYXRlVXNlckKnAZJBnQEycVVzZXIgZmllbGRzIHRvIHVwZGF0ZS4gT25seSBzcGVjaWZpZWQgZmllbGRzIHdpbGwgYmUgbW9kaWZpZWQuIFJlcXVpcmVkIGZpZWxkcyBtdXN0IGJlIHByb3ZpZGVkIGlmIGJlaW5nIGNoYW5nZWQuSih7ImZpcnN0TmFtZSI6ICJKb2huIiwgImxhc3ROYW1lIjogIkRvZSJ9ukgDyAEBQgwKCmlkZW50aXRpZXMiOwoSVXBkYXRlVXNlclJlc3BvbnNlEiUKBHVzZXIYASABKAsyFy5zY2FsZWtpdC52MS51c2Vycy5Vc2VyIoMCCg5HZXRVc2VyUmVxdWVzdBJSCgJpZBgBIAEoCUJEkkEyMhhTeXN0ZW0tZ2VuZXJhdGVkIHVzZXIgSURKFiJ1c3JfMTIzNGFiY2Q1Njc4ZWZnaCK6SAxyChABGCA6BHVzcl9IABKOAQoLZXh0ZXJuYWxfaWQYAiABKAlCd5JBdDJjWW91ciBhcHBsaWNhdGlvbidzIHVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGlzIG9yZ2FuaXphdGlvbiwgdXNlZCB0byBsaW5rIFNjYWxla2l0IHdpdGggeW91ciBzeXN0ZW0uSg0iZXh0Xzc4OTB4eXoiSABCDAoKaWRlbnRpdGllcyI4Cg9HZXRVc2VyUmVzcG9uc2USJQoEdXNlchgBIAEoCzIXLnNjYWxla2l0LnYxLnVzZXJzLlVzZXIiwAEKFkdldEN1cnJlbnRVc2VyUmVzcG9uc2USJQoEdXNlchgBIAEoCzIXLnNjYWxla2l0LnYxLnVzZXJzLlVzZXISfwoSY3VycmVudF9zZXNzaW9uX2lkGAIgASgJQmOSQWAyRVRoZSBJRCBvZiB0aGUgY3VycmVudCBzZXNzaW9uIGFzc29jaWF0ZWQgd2l0aCB0aGUgYXV0aGVudGljYXRlZCB1c2VyLkoXInNlc3NfMTIzNGFiY2Q1Njc4ZWZnaCIiFwoVR2V0Q3VycmVudFVzZXJSZXF1ZXN0Is8EChxMaXN0T3JnYW5pemF0aW9uVXNlcnNSZXF1ZXN0ErkBCg9vcmdhbml6YXRpb25faWQYASABKAlCnwGSQYwBMnJVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgb3JnYW5pemF0aW9uIGZvciB3aGljaCB0byBsaXN0IHVzZXJzLiBNdXN0IHN0YXJ0IHdpdGggJ29yZ18nIGFuZCBiZSAxLTMyIGNoYXJhY3RlcnMgbG9uZy5KFiJvcmdfMTIzNGFiY2Q1Njc4ZWZnaCK6SAxyChABGCA6BG9yZ18SnwEKCXBhZ2Vfc2l6ZRgCIAEoDUKLAZJBfzJ5TWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIGluIGEgc2luZ2xlIHJlc3BvbnNlLiBWYWxpZCByYW5nZTogMS0xMDAuIFNlcnZlciBtYXkgcmV0dXJuIGZld2VyIHVzZXJzIHRoYW4gc3BlY2lmaWVkLkoCNTC6SAYqBBhkKAAS0AEKCnBhZ2VfdG9rZW4YAyABKAlCuwGSQbcBMoABUGFnaW5hdGlvbiB0b2tlbiBmcm9tIGEgcHJldmlvdXMgTGlzdFVzZXJSZXNwb25zZS4gVXNlZCB0byByZXRyaWV2ZSB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuIExlYXZlIGVtcHR5IGZvciB0aGUgZmlyc3QgcmVxdWVzdC5KMiJleUp3WVdkbElqb2dNaXdnSW14aGMzUmZhV1FpT2lBaWRYTnlYekV5TXpRMUluMD0iIvQECh1MaXN0T3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZRKrAQoPbmV4dF9wYWdlX3Rva2VuGAEgASgJQpEBkkGNATJXT3BhcXVlIHRva2VuIGZvciByZXRyaWV2aW5nIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cy4gRW1wdHkgaWYgdGhlcmUgYXJlIG5vIG1vcmUgcGFnZXMuSjIiZXlKd1lXZGxJam9nTWl3Z0lteGhjM1JmYVdRaU9pQWlkWE55WHpFeU16UTFJbjA9IhJtCgp0b3RhbF9zaXplGAIgASgNQlmSQVYyTlRvdGFsIG51bWJlciBvZiB1c2VycyBtYXRjaGluZyB0aGUgcmVxdWVzdCBjcml0ZXJpYSwgcmVnYXJkbGVzcyBvZiBwYWdpbmF0aW9uLkoEMTA0MhKLAQoFdXNlcnMYAyADKAsyFy5zY2FsZWtpdC52MS51c2Vycy5Vc2VyQmOSQWAyXkxpc3Qgb2YgdXNlciBvYmplY3RzIGZvciB0aGUgY3VycmVudCBwYWdlLiBNYXkgY29udGFpbiBmZXdlciBlbnRyaWVzIHRoYW4gcmVxdWVzdGVkIHBhZ2Vfc2l6ZS4SpwEKD3ByZXZfcGFnZV90b2tlbhgEIAEoCUKNAZJBiQEyU09wYXF1ZSB0b2tlbiBmb3IgcmV0cmlldmluZyB0aGUgcHJldmlvdXMgcGFnZSBvZiByZXN1bHRzLiBFbXB0eSBmb3IgdGhlIGZpcnN0IHBhZ2UuSjIiZXlKd1lXZGxJam9nTUN3Z0ltWnBjbk4wWDJsa0lqb2dJblZ6Y2w4NU9EYzJOU0o5IiLSBAoXRGVsZXRlTWVtYmVyc2hpcFJlcXVlc3QSlwEKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUJ+kkFsMlJVbmlxdWUgb3JnYW5pemF0aW9uIGlkZW50aWZpZXIuIE11c3Qgc3RhcnQgd2l0aCAnb3JnXycgYW5kIGJlIDEtMzIgY2hhcmFjdGVycyBsb25nShYib3JnXzEyMzRhYmNkNTY3OGVmZ2giukgMcgoQARggOgRvcmdfEn0KAmlkGAIgASgJQm+SQV0yQ1N5c3RlbS1nZW5lcmF0ZWQgdXNlciBJRC4gTXVzdCBzdGFydCB3aXRoICd1c3JfJyAoMTktMjUgY2hhcmFjdGVycylKFiJ1c3JfMTIzNGFiY2Q1Njc4ZWZnaCK6SAxyChATGBk6BHVzcl9IABJ9CgtleHRlcm5hbF9pZBgDIAEoCUJmkkFjMlJFeHRlcm5hbCBzeXN0ZW0gaWRlbnRpZmllciBmcm9tIGNvbm5lY3RlZCBkaXJlY3Rvcmllcy4gTXVzdCBtYXRjaCBleGlzdGluZyByZWNvcmRzSg0iZXh0Xzc4OTB4eXoiSAAShAEKB2Nhc2NhZGUYBSABKAhCbpJBXDJTSWYgdHJ1ZSwgaWYgdXNlciBoYXMgbm8gbWVtYmVyc2hpcHMgbGVmdCB0aGUgdXNlciBpcyBhbHNvIGRlbGV0ZWQuIGRlZmF1bHRzIHRvIHRydWVKBWZhbHNl+tLkkwIJEgdQUkVWSUVXSAGIAQFCDAoKaWRlbnRpdGllc0IKCghfY2FzY2FkZSLnBQoXQ3JlYXRlTWVtYmVyc2hpcFJlcXVlc3QSpwEKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUKNAZJBezJhVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIHRhcmdldCBvcmdhbml6YXRpb24uIE11c3Qgc3RhcnQgd2l0aCAnb3JnXycgYW5kIGJlIDEtMzIgY2hhcmFjdGVycyBsb25nLkoWIm9yZ18xMjM0YWJjZDU2NzhlZmdoIrpIDHIKEAEYIDoEb3JnXxKDAQoKbWVtYmVyc2hpcBgCIAEoCzIjLnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZU1lbWJlcnNoaXBCSpJBQTI/TWVtYmVyc2hpcCBkZXRhaWxzIHRvIGNyZWF0ZS4gUmVxdWlyZWQgZmllbGRzIG11c3QgYmUgcHJvdmlkZWQuukgDyAEBEn0KAmlkGAMgASgJQm+SQV0yQ1N5c3RlbS1nZW5lcmF0ZWQgdXNlciBJRC4gTXVzdCBzdGFydCB3aXRoICd1c3JfJyAoMTktMjUgY2hhcmFjdGVycylKFiJ1c3JfMTIzNGFiY2Q1Njc4ZWZnaCK6SAxyChATGBk6BHVzcl9IABKCAQoLZXh0ZXJuYWxfaWQYBCABKAlCa5JBaDJXRXh0ZXJuYWwgc3lzdGVtIGlkZW50aWZpZXIgZnJvbSBjb25uZWN0ZWQgZGlyZWN0b3JpZXMuIE11c3QgYmUgdW5pcXVlIGFjcm9zcyB0aGUgc3lzdGVtSg0iZXh0Xzc4OTB4eXoiSAAScAoVc2VuZF9pbnZpdGF0aW9uX2VtYWlsGAUgASgIQkySQUkyQUlmIHRydWUsIHNlbmRzIGFuIGFjdGl2YXRpb24gZW1haWwgdG8gdGhlIHVzZXIuIERlZmF1bHRzIHRvIHRydWUuSgR0cnVlSAGIAQFCDAoKaWRlbnRpdGllc0IYChZfc2VuZF9pbnZpdGF0aW9uX2VtYWlsIkEKGENyZWF0ZU1lbWJlcnNoaXBSZXNwb25zZRIlCgR1c2VyGAEgASgLMhcuc2NhbGVraXQudjEudXNlcnMuVXNlciKFAgoQTGlzdFVzZXJzUmVxdWVzdBJqCglwYWdlX3NpemUYASABKA1CV5JBVDJOTWF4aW11bSBudW1iZXIgb2Ygb3JnYW5pemF0aW9ucyB0byByZXR1cm4gcGVyIHBhZ2UuIE11c3QgYmUgYmV0d2VlbiAxMCBhbmQgMTAwSgIzMBKEAQoKcGFnZV90b2tlbhgCIAEoCUJwkkFtMltQYWdpbmF0aW9uIHRva2VuIGZyb20gdGhlIHByZXZpb3VzIHJlc3BvbnNlLiBVc2UgdG8gcmV0cmlldmUgdGhlIG5leHQgcGFnZSBvZiBvcmdhbml6YXRpb25zSg4iPHBhZ2VfdG9rZW4+IiKQBAoRTGlzdFVzZXJzUmVzcG9uc2USOwoFdXNlcnMYASADKAsyFy5zY2FsZWtpdC52MS51c2Vycy5Vc2VyQhOSQRAyDkxpc3Qgb2YgdXNlcnMuEqQBCg9uZXh0X3BhZ2VfdG9rZW4YAiABKAlCigGSQYYBMlBUb2tlbiBmb3IgcmV0cmlldmluZyB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuIEVtcHR5IGlmIHRoZXJlIGFyZSBubyBtb3JlIHBhZ2VzLkoyImV5SndZV2RsSWpvZ01pd2dJbXhoYzNSZmFXUWlPaUFpZFhOeVh6RXlNelExSW4wPSISbQoKdG90YWxfc2l6ZRgDIAEoDUJZkkFWMk5Ub3RhbCBudW1iZXIgb2YgdXNlcnMgbWF0Y2hpbmcgdGhlIHJlcXVlc3QgY3JpdGVyaWEsIHJlZ2FyZGxlc3Mgb2YgcGFnaW5hdGlvbi5KBDEwNDISpwEKD3ByZXZfcGFnZV90b2tlbhgEIAEoCUKNAZJBiQEyU1Rva2VuIGZvciByZXRyaWV2aW5nIHRoZSBwcmV2aW91cyBwYWdlIG9mIHJlc3VsdHMuIEVtcHR5IGlmIHRoaXMgaXMgdGhlIGZpcnN0IHBhZ2UuSjIiZXlKd1lXZGxJam9nTUN3Z0ltWnBjbk4wWDJsa0lqb2dJblZ6Y2w4NU9EYzJOU0o5IiLHAwoSU2VhcmNoVXNlcnNSZXF1ZXN0EqMBCgVxdWVyeRgBIAEoCUKTAZJBgwEyb1NlYXJjaCB0ZXJtIHRvIG1hdGNoIGFnYWluc3QgdXNlciBlbWFpbCwgSURzLCBvciBleHRlcm5hbCBJRHMuIE11c3QgYmUgYXQgbGVhc3QgMyBjaGFyYWN0ZXJzLiBDYXNlIGluc2Vuc2l0aXZlLkoQam9obkBleGFtcGxlLmNvbbpICcgBAXIEEAMYZBJuCglwYWdlX3NpemUYAiABKA1CW5JBUTJLTWF4aW11bSBudW1iZXIgb2YgdXNlcnMgdG8gcmV0dXJuIHBlciBwYWdlLiBWYWx1ZSBtdXN0IGJlIGJldHdlZW4gMSBhbmQgMzAuSgIzMLpIBCoCGB4SmgEKCnBhZ2VfdG9rZW4YAyABKAlChQGSQYEBMmFUb2tlbiBmcm9tIGEgcHJldmlvdXMgcmVzcG9uc2UgZm9yIHBhZ2luYXRpb24uIFByb3ZpZGUgdGhpcyB0byByZXRyaWV2ZSB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuShxleUp3WVdkbElqb3lMQ0pzYVcxcGRDSTZNekI5IpsEChNTZWFyY2hVc2Vyc1Jlc3BvbnNlEqQBCg9uZXh0X3BhZ2VfdG9rZW4YASABKAlCigGSQYYBMlBUb2tlbiBmb3IgcmV0cmlldmluZyB0aGUgbmV4dCBwYWdlIG9mIHJlc3VsdHMuIEVtcHR5IGlmIHRoZXJlIGFyZSBubyBtb3JlIHBhZ2VzLkoyImV5SndZV2RsSWpvZ01pd2dJbXhoYzNSZmFXUWlPaUFpZFhOeVh6RXlNelExSW4wPSISbQoKdG90YWxfc2l6ZRgCIAEoDUJZkkFWMk5Ub3RhbCBudW1iZXIgb2YgdXNlcnMgbWF0Y2hpbmcgdGhlIHJlcXVlc3QgY3JpdGVyaWEsIHJlZ2FyZGxlc3Mgb2YgcGFnaW5hdGlvbi5KBDEwNDISRAoFdXNlcnMYAyADKAsyFy5zY2FsZWtpdC52MS51c2Vycy5Vc2VyQhySQRkyF0xpc3Qgb2YgbWF0Y2hpbmcgdXNlcnMuEqcBCg9wcmV2X3BhZ2VfdG9rZW4YBCABKAlCjQGSQYkBMlNUb2tlbiBmb3IgcmV0cmlldmluZyB0aGUgcHJldmlvdXMgcGFnZSBvZiByZXN1bHRzLiBFbXB0eSBpZiB0aGlzIGlzIHRoZSBmaXJzdCBwYWdlLkoyImV5SndZV2RsSWpvZ01Dd2dJbVpwY25OMFgybGtJam9nSW5WemNsODVPRGMyTlNKOSIinwIKEURlbGV0ZVVzZXJSZXF1ZXN0En0KAmlkGAEgASgJQm+SQV0yQ1N5c3RlbS1nZW5lcmF0ZWQgdXNlciBJRC4gTXVzdCBzdGFydCB3aXRoICd1c3JfJyAoMTktMjUgY2hhcmFjdGVycylKFiJ1c3JfMTIzNGFiY2Q1Njc4ZWZnaCK6SAxyChATGBk6BHVzcl9IABJ9CgtleHRlcm5hbF9pZBgCIAEoCUJmkkFjMlJFeHRlcm5hbCBzeXN0ZW0gaWRlbnRpZmllciBmcm9tIGNvbm5lY3RlZCBkaXJlY3Rvcmllcy4gTXVzdCBtYXRjaCBleGlzdGluZyByZWNvcmRzSg0iZXh0Xzc4OTB4eXoiSABCDAoKaWRlbnRpdGllcyLuBAoXVXBkYXRlTWVtYmVyc2hpcFJlcXVlc3QSuwEKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUKhAZJBjgEydFVuaXF1ZSBpZGVudGlmaWVyIG9mIHRoZSBvcmdhbml6YXRpb24gY29udGFpbmluZyB0aGUgbWVtYmVyc2hpcC4gTXVzdCBzdGFydCB3aXRoICdvcmdfJyBhbmQgYmUgMS0zMiBjaGFyYWN0ZXJzIGxvbmcuShYib3JnXzEyMzRhYmNkNTY3OGVmZ2giukgMcgoQARggOgRvcmdfEogBCgJpZBgCIAEoCUJ6kkFoMk5TeXN0ZW0tZ2VuZXJhdGVkIHVzZXIgSUQuIE11c3Qgc3RhcnQgd2l0aCAndXNyXycgYW5kIGJlIDE5LTI1IGNoYXJhY3RlcnMgbG9uZy5KFiJ1c3JfMTIzNGFiY2Q1Njc4ZWZnaCK6SAxyChATGBk6BHVzcl9IABJeCgtleHRlcm5hbF9pZBgDIAEoCUJHkkFEMjNZb3VyIGFwcGxpY2F0aW9uJ3MgdW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoaXMgdXNlci5KDSJleHRfNzg5MHh5eiJIABKbAQoKbWVtYmVyc2hpcBgFIAEoCzIjLnNjYWxla2l0LnYxLnVzZXJzLlVwZGF0ZU1lbWJlcnNoaXBCYpJBWTJETWVtYmVyc2hpcCBmaWVsZHMgdG8gdXBkYXRlLiBPbmx5IHNwZWNpZmllZCBmaWVsZHMgd2lsbCBiZSBtb2RpZmllZC5KEXsicm9sZSI6ICJhZG1pbiJ9ukgDyAEBQgwKCmlkZW50aXRpZXMi3gMKEFVwZGF0ZU1lbWJlcnNoaXASdgoFcm9sZXMYBCADKAsyGS5zY2FsZWtpdC52MS5jb21tb25zLlJvbGVCTJJBSTIyUm9sZSB0byBhc3NpZ24gdG8gdGhlIHVzZXIgd2l0aGluIHRoZSBvcmdhbml6YXRpb25KE1t7Im5hbWUiOiAiYWRtaW4ifV0SggIKCG1ldGFkYXRhGAcgAygLMjEuc2NhbGVraXQudjEudXNlcnMuVXBkYXRlTWVtYmVyc2hpcC5NZXRhZGF0YUVudHJ5QrwBkkGfATJkQ3VzdG9tIGtleS12YWx1ZSBwYWlycyBmb3Igc3RvcmluZyBhZGRpdGlvbmFsIHVzZXIgY29udGV4dC4gS2V5cyAoMy0yNSBjaGFycyksIHZhbHVlcyAoMS0yNTYgY2hhcnMpLko3eyJkZXBhcnRtZW50IjogImVuZ2luZWVyaW5nIiwgImxvY2F0aW9uIjogIm55Yy1vZmZpY2UifbpIFpoBExAUIgZyBBADGBkqB3IFEAEYgAIaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBSgQIARACSgQIAhADSgQIAxAESgQIBRAGSgQIBhAHIokFChBDcmVhdGVNZW1iZXJzaGlwEnYKBXJvbGVzGAQgAygLMhkuc2NhbGVraXQudjEuY29tbW9ucy5Sb2xlQkySQUkyMlJvbGUgdG8gYXNzaWduIHRvIHRoZSB1c2VyIHdpdGhpbiB0aGUgb3JnYW5pemF0aW9uShNbeyJuYW1lIjogImFkbWluIn1dEoICCghtZXRhZGF0YRgHIAMoCzIxLnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZU1lbWJlcnNoaXAuTWV0YWRhdGFFbnRyeUK8AZJBnwEyZEN1c3RvbSBrZXktdmFsdWUgcGFpcnMgZm9yIHN0b3JpbmcgYWRkaXRpb25hbCB1c2VyIGNvbnRleHQuIEtleXMgKDMtMjUgY2hhcnMpLCB2YWx1ZXMgKDEtMjU2IGNoYXJzKS5KN3siZGVwYXJ0bWVudCI6ICJlbmdpbmVlcmluZyIsICJsb2NhdGlvbiI6ICJueWMtb2ZmaWNlIn26SBaaARMQFCIGcgQQAxgZKgdyBRABGIACEpYBCg1pbnZpdGVyX2VtYWlsGAggASgJQnqSQWsyUUVtYWlsIGFkZHJlc3Mgb2YgdGhlIHVzZXIgd2hvIGludml0ZWQgdGhpcyBtZW1iZXIuIE11c3QgYmUgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLkoWImpvaG4uZG9lQGV4YW1wbGUuY29tIrpICXIHEAUY/gFgAUgAiAEBGi8KDU1ldGFkYXRhRW50cnkSCwoDa2V5GAEgASgJEg0KBXZhbHVlGAIgASgJOgI4AUIQCg5faW52aXRlcl9lbWFpbEoECAEQAkoECAIQA0oECAMQBEoECAUQBkoECAYQByJBChhVcGRhdGVNZW1iZXJzaGlwUmVzcG9uc2USJQoEdXNlchgBIAEoCzIXLnNjYWxla2l0LnYxLnVzZXJzLlVzZXIiiwUKHlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBK1AQoPb3JnYW5pemF0aW9uX2lkGAEgASgJQpsBkkGFATJrVW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIG9yZ2FuaXphdGlvbiB0byBzZWFyY2ggd2l0aGluLiBNdXN0IHN0YXJ0IHdpdGggJ29yZ18nIGFuZCBiZSAxLTMyIGNoYXJhY3RlcnMgbG9uZy5KFiJvcmdfMTIzNGFiY2Q1Njc4ZWZnaCK6SA/IAQFyChABGCA6BG9yZ18SowEKBXF1ZXJ5GAIgASgJQpMBkkGDATJvU2VhcmNoIHRlcm0gdG8gbWF0Y2ggYWdhaW5zdCB1c2VyIGVtYWlsLCBJRHMsIG9yIGV4dGVybmFsIElEcy4gTXVzdCBiZSBhdCBsZWFzdCAzIGNoYXJhY3RlcnMuIENhc2UgaW5zZW5zaXRpdmUuShBqb2huQGV4YW1wbGUuY29tukgJyAEBcgQQAxhkEm4KCXBhZ2Vfc2l6ZRgDIAEoDUJbkkFRMktNYXhpbXVtIG51bWJlciBvZiB1c2VycyB0byByZXR1cm4gcGVyIHBhZ2UuIFZhbHVlIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAzMC5KAjMwukgEKgIYHhKaAQoKcGFnZV90b2tlbhgEIAEoCUKFAZJBgQEyYVRva2VuIGZyb20gYSBwcmV2aW91cyByZXNwb25zZSBmb3IgcGFnaW5hdGlvbi4gUHJvdmlkZSB0aGlzIHRvIHJldHJpZXZlIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cy5KHGV5SndZV2RsSWpveUxDSnNhVzFwZENJNk16QjkipwQKH1NlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2USpAEKD25leHRfcGFnZV90b2tlbhgBIAEoCUKKAZJBhgEyUFRva2VuIGZvciByZXRyaWV2aW5nIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cy4gRW1wdHkgaWYgdGhlcmUgYXJlIG5vIG1vcmUgcGFnZXMuSjIiZXlKd1lXZGxJam9nTWl3Z0lteGhjM1JmYVdRaU9pQWlkWE55WHpFeU16UTFJbjA9IhJtCgp0b3RhbF9zaXplGAIgASgNQlmSQVYyTlRvdGFsIG51bWJlciBvZiB1c2VycyBtYXRjaGluZyB0aGUgcmVxdWVzdCBjcml0ZXJpYSwgcmVnYXJkbGVzcyBvZiBwYWdpbmF0aW9uLkoEMTA0MhJECgV1c2VycxgDIAMoCzIXLnNjYWxla2l0LnYxLnVzZXJzLlVzZXJCHJJBGTIXTGlzdCBvZiBtYXRjaGluZyB1c2Vycy4SpwEKD3ByZXZfcGFnZV90b2tlbhgEIAEoCUKNAZJBiQEyU1Rva2VuIGZvciByZXRyaWV2aW5nIHRoZSBwcmV2aW91cyBwYWdlIG9mIHJlc3VsdHMuIEVtcHR5IGlmIHRoaXMgaXMgdGhlIGZpcnN0IHBhZ2UuSjIiZXlKd1lXZGxJam9nTUN3Z0ltWnBjbk4wWDJsa0lqb2dJblZ6Y2w4NU9EYzJOU0o5IiLDBwoKQ3JlYXRlVXNlchKRAQoFZW1haWwYBSABKAlCgQGSQXcyYVByaW1hcnkgZW1haWwgYWRkcmVzcyBmb3IgdGhlIHVzZXIuIE11c3QgYmUgdW5pcXVlIGFjcm9zcyB0aGUgZW52aXJvbm1lbnQgYW5kIHZhbGlkIHBlciBSRkMgNTMyMi5KEiJ1c2VyQGV4YW1wbGUuY29tIrpIBHICYAESlgEKC2V4dGVybmFsX2lkGAYgASgJQnySQXkyY1lvdXIgYXBwbGljYXRpb24ncyB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhpcyBvcmdhbml6YXRpb24sIHVzZWQgdG8gbGluayBTY2FsZWtpdCB3aXRoIHlvdXIgc3lzdGVtLkoSImV4dF8xMjM0NWE2N2I4OWMiSACIAQESkwEKCm1lbWJlcnNoaXAYByABKAsyIy5zY2FsZWtpdC52MS51c2Vycy5DcmVhdGVNZW1iZXJzaGlwQlqSQVcyVUxpc3Qgb2Ygb3JnYW5pemF0aW9uIG1lbWJlcnNoaXBzLiBBdXRvbWF0aWNhbGx5IHBvcHVsYXRlZCBiYXNlZCBvbiBncm91cCBhc3NpZ25tZW50cy4SkwEKDHVzZXJfcHJvZmlsZRgIIAEoCzIkLnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZVVzZXJQcm9maWxlQleSQVQyUlVzZXIncyBwZXJzb25hbCBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgbmFtZSwgYWRkcmVzcywgYW5kIG90aGVyIHByb2ZpbGUgYXR0cmlidXRlcy4S/AEKCG1ldGFkYXRhGAkgAygLMisuc2NhbGVraXQudjEudXNlcnMuQ3JlYXRlVXNlci5NZXRhZGF0YUVudHJ5QrwBkkGfATJkQ3VzdG9tIGtleS12YWx1ZSBwYWlycyBmb3Igc3RvcmluZyBhZGRpdGlvbmFsIHVzZXIgY29udGV4dC4gS2V5cyAoMy0yNSBjaGFycyksIHZhbHVlcyAoMS0yNTYgY2hhcnMpLko3eyJkZXBhcnRtZW50IjogImVuZ2luZWVyaW5nIiwgImxvY2F0aW9uIjogIm55Yy1vZmZpY2UifbpIFpoBExAUIgZyBBADGBkqB3IFEAEYgAIaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg4KDF9leHRlcm5hbF9pZEoECAEQAkoECAIQA0oECAMQBEoECAQQBUoECAoQCyKWDwoRQ3JlYXRlVXNlclByb2ZpbGUSUwoKZ2l2ZW5fbmFtZRgCIAEoCUI/kkE0MipVc2VyJ3MgZ2l2ZW4gbmFtZS4gTWF4aW11bSAyNTUgY2hhcmFjdGVycy5KBiJKb2huIrpIBXIDGP8BElQKC2ZhbWlseV9uYW1lGAMgASgJQj+SQTQyK1VzZXIncyBmYW1pbHkgbmFtZS4gTWF4aW11bSAyNTUgY2hhcmFjdGVycy5KBSJEb2UiukgFcgMY/wEScAoEbmFtZRgEIAEoCUJikkFfMklGdWxsIG5hbWUgaW4gZGlzcGxheSBmb3JtYXQuIFR5cGljYWxseSBjb21iaW5lcyBmaXJzdF9uYW1lIGFuZCBsYXN0X25hbWUuShIiSm9obiBNaWNoYWVsIERvZSIScQoGbG9jYWxlGAUgASgJQmGSQV4yU1VzZXIncyBsb2NhbGl6YXRpb24gcHJlZmVyZW5jZSBpbiBCQ1AtNDcgZm9ybWF0LiBEZWZhdWx0cyB0byBvcmdhbml6YXRpb24gc2V0dGluZ3MuSgciZW4tVVMiEn0KDHBob25lX251bWJlchgHIAEoCUJnkkFkMlJQaG9uZSBudW1iZXIgaW4gRS4xNjQgaW50ZXJuYXRpb25hbCBmb3JtYXQuIFJlcXVpcmVkIGZvciBTTVMtYmFzZWQgYXV0aGVudGljYXRpb24uSg4iKzE0MTU1NTUyNjcxIhKBAgoIbWV0YWRhdGEYCCADKAsyMi5zY2FsZWtpdC52MS51c2Vycy5DcmVhdGVVc2VyUHJvZmlsZS5NZXRhZGF0YUVudHJ5QroBkkGdATJeU3lzdGVtLW1hbmFnZWQga2V5LXZhbHVlIHBhaXJzIGZvciBpbnRlcm5hbCB0cmFja2luZy4gS2V5cyAoMy0yNSBjaGFycyksIHZhbHVlcyAoMS0yNTYgY2hhcnMpLko7eyJhY2NvdW50X3N0YXR1cyI6ICJhY3RpdmUiLCAic2lnbnVwX3NvdXJjZSI6ICJtb2JpbGVfYXBwIn26SBaaARMQFCIGcgQQAxgZKgdyBRABGIACEpACChFjdXN0b21fYXR0cmlidXRlcxgJIAMoCzI6LnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZVVzZXJQcm9maWxlLkN1c3RvbUF0dHJpYnV0ZXNFbnRyeUK4AZJBmwEyWkN1c3RvbSBhdHRyaWJ1dGVzIGZvciBleHRlbmRlZCB1c2VyIHByb2ZpbGUgZGF0YS4gS2V5cyAoMy0yNSBjaGFycyksIHZhbHVlcyAoMS0yNTYgY2hhcnMpLko9eyJkZXBhcnRtZW50IjogImVuZ2luZWVyaW5nIiwgInNlY3VyaXR5X2NsZWFyYW5jZSI6ICJsZXZlbDIifbpIFpoBExAUIgZyBBADGBkqB3IFEAEYgAISbAoScHJlZmVycmVkX3VzZXJuYW1lGAogASgJQlCSQUUyL1VzZXIncyBwcmVmZXJyZWQgdXNlcm5hbWUgZm9yIGRpc3BsYXkgcHVycG9zZXMuShIiSm9obiBNaWNoYWVsIERvZSK6SAVyAxiABBJxCgdwaWN0dXJlGAsgASgJQluSQVAyLFVSTCB0byB0aGUgdXNlcidzIHByb2ZpbGUgcGljdHVyZSBvciBhdmF0YXIuSiAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hdmF0YXIuanBnIrpIBXIDGIAQSACIAQESOQoGZ2VuZGVyGAwgASgJQiSSQSEyF1VzZXIncyBnZW5kZXIgaWRlbnRpdHkuSgYibWFsZSJIAYgBARKZAQoGZ3JvdXBzGA0gAygJQogBkkFwMlFMaXN0IG9mIGdyb3VwIG5hbWVzIHRoZSB1c2VyIGJlbG9uZ3MgdG8uIEVhY2ggZ3JvdXAgbmFtZSBtdXN0IGJlIDEtMjUwIGNoYXJhY3RlcnNKG1siZW5naW5lZXJpbmciLCAibWFuYWdlcnMiXbpIEpIBDwgAEDIYASIHcgUQARj6ARKJAQoKZmlyc3RfbmFtZRgVIAEoCUJ1GAGSQVkyT1tERVBSRUNBVEVEXSBVc2UgZ2l2ZW5fbmFtZSBpbnN0ZWFkLiBVc2VyJ3MgZ2l2ZW4gbmFtZS4gTWF4aW11bSAyMDAgY2hhcmFjdGVycy5KBiJKb2huIrpIBXIDGMgB+tLkkwIJEgdQUkVWSUVXEokBCglsYXN0X25hbWUYFiABKAlCdhgBkkFaMlFbREVQUkVDQVRFRF0gVXNlIGZhbWlseV9uYW1lIGluc3RlYWQuIFVzZXIncyBmYW1pbHkgbmFtZS4gTWF4aW11bSAyMDAgY2hhcmFjdGVycy5KBSJEb2UiukgFcgMYyAH60uSTAgkSB1BSRVZJRVcaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjcKFUN1c3RvbUF0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQgoKCF9waWN0dXJlQgkKB19nZW5kZXJKBAgBEAJKBAgGEAcivCcKEVVwZGF0ZVVzZXJQcm9maWxlEtoBCgpnaXZlbl9uYW1lGAIgASgJQsABkkG0ATKpAVVwZGF0ZXMgdGhlIHVzZXIncyBnaXZlbiBuYW1lIChmaXJzdCBuYW1lKS4gVXNlIHRoaXMgZmllbGQgdG8gbW9kaWZ5IGhvdyB0aGUgdXNlcidzIGZpcnN0IG5hbWUgYXBwZWFycyBpbiB0aGUgc3lzdGVtIGFuZCB1c2VyIGludGVyZmFjZXMuIE1heGltdW0gMjU1IGNoYXJhY3RlcnMgYWxsb3dlZC5KBiJKb2huIrpIBXIDGP8BSACIAQES2AEKC2ZhbWlseV9uYW1lGAMgASgJQr0BkkGxATKnAVVwZGF0ZXMgdGhlIHVzZXIncyBmYW1pbHkgbmFtZSAobGFzdCBuYW1lIG9yIHN1cm5hbWUpLiBVc2UgdGhpcyBmaWVsZCB0byBtb2RpZnkgaG93IHRoZSB1c2VyJ3MgbGFzdCBuYW1lIGFwcGVhcnMgdGhyb3VnaG91dCB0aGUgc3lzdGVtLiBNYXhpbXVtIDI1NSBjaGFyYWN0ZXJzIGFsbG93ZWQuSgUiRG9lIrpIBXIDGP8BSAGIAQESqAIKBG5hbWUYBCABKAlClAKSQZACMoECVXBkYXRlcyB0aGUgdXNlcidzIGNvbXBsZXRlIGRpc3BsYXkgbmFtZS4gVXNlIHRoaXMgZmllbGQgd2hlbiB5b3Ugd2FudCB0byBzZXQgdGhlIGZ1bGwgbmFtZSBhcyBhIHNpbmdsZSBzdHJpbmcgcmF0aGVyIHRoYW4gdXNpbmcgc2VwYXJhdGUgZ2l2ZW4gYW5kIGZhbWlseSBuYW1lcy4gVGhpcyBuYW1lIGFwcGVhcnMgaW4gdXNlciBpbnRlcmZhY2VzLCByZXBvcnRzLCBhbmQgYW55d2hlcmUgYSBmb3JtYXR0ZWQgZGlzcGxheSBuYW1lIGlzIG5lZWRlZC5KCiJKb2huIERvZSJIAogBARKPAwoGbG9jYWxlGAUgASgJQvkCkkH1AjLpAlVwZGF0ZXMgdGhlIHVzZXIncyBwcmVmZXJyZWQgbGFuZ3VhZ2UgYW5kIHJlZ2lvbiBzZXR0aW5ncyB1c2luZyBCQ1AtNDcgZm9ybWF0IGNvZGVzLiBVc2UgdGhpcyBmaWVsZCB0byBjdXN0b21pemUgdGhlIHVzZXIncyBleHBlcmllbmNlIHdpdGggbG9jYWxpemVkIGNvbnRlbnQsIGRhdGUgZm9ybWF0cywgbnVtYmVyIGZvcm1hdHRpbmcsIGFuZCBVSSBsYW5ndWFnZS4gV2hlbiBub3Qgc3BlY2lmaWVkLCB0aGUgdXNlciBpbmhlcml0cyB0aGUgb3JnYW5pemF0aW9uJ3MgZGVmYXVsdCBsb2NhbGUgc2V0dGluZ3MuIENvbW1vbiB2YWx1ZXMgaW5jbHVkZSBgZW4tVVNgLCBgZW4tR0JgLCBgZnItRlJgLCBgZGUtREVgLCBhbmQgYGVzLUVTYC5KByJlbi1VUyJIA4gBARKkAwoMcGhvbmVfbnVtYmVyGAcgASgJQogDkkGEAzLxAlVwZGF0ZXMgdGhlIHVzZXIncyBwaG9uZSBudW1iZXIgaW4gRS4xNjQgaW50ZXJuYXRpb25hbCBmb3JtYXQuIFVzZSB0aGlzIGZpZWxkIHRvIGVuYWJsZSBTTVMtYmFzZWQgYXV0aGVudGljYXRpb24gbWV0aG9kcywgdHdvLWZhY3RvciBhdXRoZW50aWNhdGlvbiwgb3IgcGhvbmUtYmFzZWQgYWNjb3VudCByZWNvdmVyeS4gVGhlIHBob25lIG51bWJlciBtdXN0IGluY2x1ZGUgdGhlIGNvdW50cnkgY29kZSBhbmQgYmUgZm9ybWF0dGVkIGFjY29yZGluZyB0byBFLjE2NCBzdGFuZGFyZHMgKGUuZy4sIGArMWAgZm9yIFVTIG51bWJlcnMpLiBUaGlzIGZpZWxkIGlzIHJlcXVpcmVkIHdoZW4gZW5hYmxpbmcgU01TIGF1dGhlbnRpY2F0aW9uIGZlYXR1cmVzLkoOIisxNDE1NTU1MjY3MSJIBIgBARLHBAoIbWV0YWRhdGEYCCADKAsyMi5zY2FsZWtpdC52MS51c2Vycy5VcGRhdGVVc2VyUHJvZmlsZS5NZXRhZGF0YUVudHJ5QoAEkkHjAzKjA1VwZGF0ZXMgc3lzdGVtLW1hbmFnZWQga2V5LXZhbHVlIHBhaXJzIGZvciBpbnRlcm5hbCB0cmFja2luZyBhbmQgb3BlcmF0aW9uYWwgZGF0YS4gVXNlIHRoaXMgZmllbGQgdG8gc3RvcmUgc3lzdGVtLWdlbmVyYXRlZCBtZXRhZGF0YSBsaWtlIGFjY291bnQgc3RhdHVzLCBzaWdudXAgc291cmNlLCBsYXN0IGFjdGl2aXR5IHRyYWNraW5nLCBvciBpbnRlZ3JhdGlvbi1zcGVjaWZpYyBpZGVudGlmaWVycy4gVGhlc2UgZmllbGRzIGFyZSB0eXBpY2FsbHkgbWFuYWdlZCBieSBhdXRvbWF0ZWQgcHJvY2Vzc2VzIHJhdGhlciB0aGFuIGRpcmVjdCB1c2VyIGlucHV0LiBLZXlzIG11c3QgYmUgMy0yNSBjaGFyYWN0ZXJzLCB2YWx1ZXMgbXVzdCBiZSAxLTI1NiBjaGFyYWN0ZXJzLCB3aXRoIGEgbWF4aW11bSBvZiAyMCBrZXktdmFsdWUgcGFpcnMuSjt7ImFjY291bnRfc3RhdHVzIjogImFjdGl2ZSIsICJzaWdudXBfc291cmNlIjogIm1vYmlsZV9hcHAifbpIFpoBExAUIgZyBBADGBkqB3IFEAEYgAIStQUKEWN1c3RvbV9hdHRyaWJ1dGVzGAkgAygLMjouc2NhbGVraXQudjEudXNlcnMuVXBkYXRlVXNlclByb2ZpbGUuQ3VzdG9tQXR0cmlidXRlc0VudHJ5Qt0EkkHABDL+A1VwZGF0ZXMgY3VzdG9tIGF0dHJpYnV0ZXMgZm9yIGV4dGVuZGVkIHVzZXIgcHJvZmlsZSBkYXRhIGFuZCBhcHBsaWNhdGlvbi1zcGVjaWZpYyBpbmZvcm1hdGlvbi4gVXNlIHRoaXMgZmllbGQgdG8gc3RvcmUgYnVzaW5lc3Mtc3BlY2lmaWMgdXNlciBkYXRhIGxpa2UgZGVwYXJ0bWVudCwgam9iIHRpdGxlLCBzZWN1cml0eSBjbGVhcmFuY2VzLCBwcm9qZWN0IGFzc2lnbm1lbnRzLCBvciBhbnkgb3RoZXIgb3JnYW5pemF0aW9uYWwgYXR0cmlidXRlcyB5b3VyIGFwcGxpY2F0aW9uIHJlcXVpcmVzLiBVbmxpa2Ugc3lzdGVtIG1ldGFkYXRhLCB0aGVzZSBhdHRyaWJ1dGVzIGFyZSB0eXBpY2FsbHkgbWFuYWdlZCBieSBhZG1pbmlzdHJhdG9ycyBvciBhcHBsaWNhdGlvbnMgYW5kIGFyZSB2aXNpYmxlIHRvIGVuZCB1c2Vycy4gS2V5cyBtdXN0IGJlIDMtMjUgY2hhcmFjdGVycywgdmFsdWVzIG11c3QgYmUgMS0yNTYgY2hhcmFjdGVycywgd2l0aCBhIG1heGltdW0gb2YgMjAga2V5LXZhbHVlIHBhaXJzLko9eyJkZXBhcnRtZW50IjogImVuZ2luZWVyaW5nIiwgInNlY3VyaXR5X2NsZWFyYW5jZSI6ICJsZXZlbDIifbpIFpoBExAUIgZyBBADGBkqB3IFEAEYgAISfwoKZmlyc3RfbmFtZRgVIAEoCUJmGAGSQVkyT1tERVBSRUNBVEVEXSBVc2UgZ2l2ZW5fbmFtZSBpbnN0ZWFkLiBVc2VyJ3MgZ2l2ZW4gbmFtZS4gTWF4aW11bSAyMDAgY2hhcmFjdGVycy5KBiJKb2huIrpIBXIDGMgBSAWIAQESfwoJbGFzdF9uYW1lGBYgASgJQmcYAZJBWjJRW0RFUFJFQ0FURURdIFVzZSBmYW1pbHlfbmFtZSBpbnN0ZWFkLiBVc2VyJ3MgZmFtaWx5IG5hbWUuIE1heGltdW0gMjAwIGNoYXJhY3RlcnMuSgUiRG9lIrpIBXIDGMgBSAaIAQEShAMKEnByZWZlcnJlZF91c2VybmFtZRgKIAEoCULiApJB1gIyvwJVcGRhdGVzIHRoZSB1c2VyJ3MgcHJlZmVycmVkIHVzZXJuYW1lIGZvciBkaXNwbGF5IGFuZCBpZGVudGlmaWNhdGlvbiBwdXJwb3Nlcy4gVXNlIHRoaXMgZmllbGQgdG8gc2V0IGEgY3VzdG9tIHVzZXJuYW1lIHRoYXQgdGhlIHVzZXIgcHJlZmVycyB0byBiZSBrbm93biBieSwgd2hpY2ggbWF5IGRpZmZlciBmcm9tIHRoZWlyIGVtYWlsIG9yIGZvcm1hbCBuYW1lLiBUaGlzIHVzZXJuYW1lIGFwcGVhcnMgaW4gdXNlciBpbnRlcmZhY2VzLCBtZW50aW9ucywgYW5kIGluZm9ybWFsIGNvbW11bmljYXRpb25zLiBNYXhpbXVtIDUxMiBjaGFyYWN0ZXJzIGFsbG93ZWQuShIiSm9obiBNaWNoYWVsIERvZSK6SAVyAxiABEgHiAEBEqkDCgdwaWN0dXJlGAsgASgJQpIDkkGGAzLhAlVwZGF0ZXMgdGhlIFVSTCB0byB0aGUgdXNlcidzIHByb2ZpbGUgcGljdHVyZSBvciBhdmF0YXIgaW1hZ2UuIFVzZSB0aGlzIGZpZWxkIHRvIHNldCBvciBjaGFuZ2UgdGhlIHVzZXIncyBwcm9maWxlIHBob3RvIHRoYXQgYXBwZWFycyBpbiB1c2VyIGludGVyZmFjZXMsIGRpcmVjdG9yeSBsaXN0aW5ncywgYW5kIGNvbGxhYm9yYXRpdmUgZmVhdHVyZXMuIFRoZSBVUkwgc2hvdWxkIHBvaW50IHRvIGEgcHVibGljbHkgYWNjZXNzaWJsZSBpbWFnZSBmaWxlLiBTdXBwb3J0ZWQgZm9ybWF0cyB0eXBpY2FsbHkgaW5jbHVkZSBKUEVHLCBQTkcsIGFuZCBHSUYuIE1heGltdW0gVVJMIGxlbmd0aCBpcyAyMDQ4IGNoYXJhY3RlcnMuSiAiaHR0cHM6Ly9leGFtcGxlLmNvbS9hdmF0YXIuanBnIrpIBXIDGIAQSAiIAQES9gIKBmdlbmRlchgMIAEoCULgApJB3AIy0QJVcGRhdGVzIHRoZSB1c2VyJ3MgZ2VuZGVyIGlkZW50aXR5IGluZm9ybWF0aW9uLiBVc2UgdGhpcyBmaWVsZCB0byBzdG9yZSB0aGUgdXNlcidzIGdlbmRlciBpZGVudGl0eSBmb3IgcGVyc29uYWxpemF0aW9uLCBjb21wbGlhbmNlLCBvciByZXBvcnRpbmcgcHVycG9zZXMuIFRoaXMgZmllbGQgc3VwcG9ydHMgYW55IHN0cmluZyB2YWx1ZSB0byBhY2NvbW1vZGF0ZSBkaXZlcnNlIGdlbmRlciBpZGVudGl0aWVzIGFuZCBzaG91bGQgYmUgaGFuZGxlZCB3aXRoIGFwcHJvcHJpYXRlIHByaXZhY3kgY29uc2lkZXJhdGlvbnMgYWNjb3JkaW5nIHRvIHlvdXIgb3JnYW5pemF0aW9uJ3MgcG9saWNpZXMuSgYibWFsZSJICYgBARLVAwoGZ3JvdXBzGA0gAygJQsQDkkGrAzKLA1VwZGF0ZXMgdGhlIGxpc3Qgb2YgZ3JvdXAgbmFtZXMgdGhlIHVzZXIgYmVsb25ncyB0byB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbi4gVXNlIHRoaXMgZmllbGQgdG8gbWFuYWdlIHRoZSB1c2VyJ3MgZ3JvdXAgbWVtYmVyc2hpcHMgZm9yIHJvbGUtYmFzZWQgYWNjZXNzIGNvbnRyb2wsIHRlYW0gYXNzaWdubWVudHMsIG9yIG9yZ2FuaXphdGlvbmFsIHN0cnVjdHVyZS4gR3JvdXBzIGFyZSB0eXBpY2FsbHkgdXNlZCBmb3IgcGVybWlzc2lvbiBtYW5hZ2VtZW50IGFuZCBjb2xsYWJvcmF0aXZlIGFjY2Vzcy4gRWFjaCBncm91cCBuYW1lIG11c3QgYmUgdW5pcXVlIHdpdGhpbiB0aGUgbGlzdCwgMS0yNTAgY2hhcmFjdGVycyBsb25nLCB3aXRoIGEgbWF4aW11bSBvZiA1MCBncm91cHMgcGVyIHVzZXIuShtbImVuZ2luZWVyaW5nIiwgIm1hbmFnZXJzIl26SBKSAQ8IABAyGAEiB3IFEAEY+gEaLwoNTWV0YWRhdGFFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBGjcKFUN1c3RvbUF0dHJpYnV0ZXNFbnRyeRILCgNrZXkYASABKAkSDQoFdmFsdWUYAiABKAk6AjgBQg0KC19naXZlbl9uYW1lQg4KDF9mYW1pbHlfbmFtZUIHCgVfbmFtZUIJCgdfbG9jYWxlQg8KDV9waG9uZV9udW1iZXJCDQoLX2ZpcnN0X25hbWVCDAoKX2xhc3RfbmFtZUIVChNfcHJlZmVycmVkX3VzZXJuYW1lQgoKCF9waWN0dXJlQgkKB19nZW5kZXJKBAgBEAJKBAgGEAcinQcKBkludml0ZRJcCg9vcmdhbml6YXRpb25faWQYASABKAlCQ5JBQDItVGhlIG9yZ2FuaXphdGlvbiB0byB3aGljaCB0aGUgaW52aXRlIGJlbG9uZ3MuSg8ib3JnXzk4NzY1NDMyMSISdwoHdXNlcl9pZBgCIAEoCUJmkkFjMlNVc2VyIElEIHRvIHdob20gdGhlIGludml0ZSBpcyBzZW50LiBNYXkgYmUgZW1wdHkgaWYgdGhlIHVzZXIgaGFzIG5vdCBzaWduZWQgdXAgeWV0LkoMInVzcl8xMjM0NTYiEnEKDWludml0ZXJfZW1haWwYAyABKAlCVZJBUjI7SWRlbnRpZmllciBvZiB0aGUgdXNlciBvciBzeXN0ZW0gdGhhdCBpbml0aWF0ZWQgdGhlIGludml0ZS5KEyJhZG1pbkBleGFtcGxlLmNvbSJIAIgBARJwCgZzdGF0dXMYBCABKAlCYJJBXTJJQ3VycmVudCBzdGF0dXMgb2YgdGhlIGludml0ZSAoZS5nLiwgcGVuZGluZywgYWNjZXB0ZWQsIGV4cGlyZWQsIHJldm9rZWQpLkoQInBlbmRpbmdfaW52aXRlIhJ+CgpjcmVhdGVkX2F0GAUgASgLMhouZ29vZ2xlLnByb3RvYnVmLlRpbWVzdGFtcEJOkkFLMjFUaW1lc3RhbXAgd2hlbiB0aGUgaW52aXRlIHdhcyBvcmlnaW5hbGx5IGNyZWF0ZWQuShYiMjAyNS0wNy0xMFQwODowMDowMFoiEnIKCmV4cGlyZXNfYXQYBiABKAsyGi5nb29nbGUucHJvdG9idWYuVGltZXN0YW1wQkKSQT8yJVRoZSB0aW1lIGF0IHdoaWNoIHRoZSBpbnZpdGUgZXhwaXJlcy5KFiIyMDI1LTEyLTMxVDIzOjU5OjU5WiIShQEKCXJlc2VudF9hdBgHIAEoCzIaLmdvb2dsZS5wcm90b2J1Zi5UaW1lc3RhbXBCVpJBUzI5VGltZXN0YW1wIHdoZW4gdGhlIGludml0ZSB3YXMgbGFzdCByZXNlbnQsIGlmIGFwcGxpY2FibGUuShYiMjAyNS0wNy0xNVQwOTozMDowMFoiEkkKDHJlc2VudF9jb3VudBgIIAEoBUIzkkEwMitOdW1iZXIgb2YgdGltZXMgdGhlIGludml0ZSBoYXMgYmVlbiByZXNlbnQuSgEyQhAKDl9pbnZpdGVyX2VtYWlsIo8DChNSZXNlbmRJbnZpdGVSZXF1ZXN0EsMBCg9vcmdhbml6YXRpb25faWQYASABKAlCqQGSQZYBMnxVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgb3JnYW5pemF0aW9uIGNvbnRhaW5pbmcgdGhlIHBlbmRpbmcgaW52aXRhdGlvbi4gTXVzdCBzdGFydCB3aXRoICdvcmdfJyBhbmQgYmUgMS0zMiBjaGFyYWN0ZXJzIGxvbmcuShYib3JnXzEyMzRhYmNkNTY3OGVmZ2giukgMcgoQARggOgRvcmdfErEBCgJpZBgCIAEoCUKkAZJBkQEyd1N5c3RlbS1nZW5lcmF0ZWQgdXNlciBJRCBvZiB0aGUgdXNlciB3aG8gaGFzIGEgcGVuZGluZyBpbnZpdGF0aW9uLiBNdXN0IHN0YXJ0IHdpdGggJ3Vzcl8nIGFuZCBiZSAxOS0yNSBjaGFyYWN0ZXJzIGxvbmcuShYidXNyXzEyMzRhYmNkNTY3OGVmZ2giukgMcgoQExgZOgR1c3JfItkCChRSZXNlbmRJbnZpdGVSZXNwb25zZRLAAgoGaW52aXRlGAEgASgLMhkuc2NhbGVraXQudjEudXNlcnMuSW52aXRlQpQCkkGQAjKBAVVwZGF0ZWQgaW52aXRhdGlvbiBvYmplY3QgY29udGFpbmluZyB0aGUgcmVzZW50IGludml0YXRpb24gZGV0YWlscywgaW5jbHVkaW5nIG5ldyBleHBpcmF0aW9uIHRpbWUgYW5kIGluY3JlbWVudGVkIHJlc2VuZCBjb3VudGVyLkqJAXsib3JnYW5pemF0aW9uX2lkIjogIm9yZ18xMjMiLCAidXNlcl9pZCI6ICJ1c3JfNDU2IiwgInN0YXR1cyI6ICJwZW5kaW5nX2ludml0ZSIsICJleHBpcmVzX2F0IjogIjIwMjUtMTItMzFUMjM6NTk6NTlaIiwgInJlc2VudF9jb3VudCI6IDJ9ItgBChRMaXN0VXNlclJvbGVzUmVxdWVzdBJnCg9vcmdhbml6YXRpb25faWQYASABKAlCTpJBQDImVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBvcmdhbml6YXRpb25KFiJvcmdfMTIzNGFiY2Q1Njc4ZWZnaCK6SAhyBjoEb3JnXxJXCgd1c2VyX2lkGAIgASgJQkaSQTgyHlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdXNlckoWInVzcl8xMjM0YWJjZDU2NzhlZmdoIrpICHIGOgR1c3JfImoKFUxpc3RVc2VyUm9sZXNSZXNwb25zZRJRCgVyb2xlcxgBIAMoCzIZLnNjYWxla2l0LnYxLmNvbW1vbnMuUm9sZUInkkEkMiJMaXN0IG9mIHJvbGVzIGFzc2lnbmVkIHRvIHRoZSB1c2VyIr8CChZBc3NpZ25Vc2VyUm9sZXNSZXF1ZXN0EmcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUJOkkFAMiZVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG9yZ2FuaXphdGlvbkoWIm9yZ18xMjM0YWJjZDU2NzhlZmdoIrpICHIGOgRvcmdfElcKB3VzZXJfaWQYAiABKAlCRpJBODIeVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSB1c2VyShYidXNyXzEyMzRhYmNkNTY3OGVmZ2giukgIcgY6BHVzcl8SYwoFcm9sZXMYAyADKAsyJC5zY2FsZWtpdC52MS51c2Vycy5Bc3NpZ25Sb2xlUmVxdWVzdEIukkElMiNMaXN0IG9mIHJvbGVzIHRvIGFzc2lnbiB0byB0aGUgdXNlcrpIA8gBASKkAQoRQXNzaWduUm9sZVJlcXVlc3QSSgoCaWQYASABKAlCPhgBkkE5Mh5VbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHJvbGVKFyJyb2xlXzEyMzRhYmNkNTY3OGVmZ2giEkMKCXJvbGVfbmFtZRgCIAEoCUIwkkEkMhhVbmlxdWUgbmFtZSBmb3IgdGhlIHJvbGVKCCJ2aWV3ZXIiukgGcgQQABhkInoKF0Fzc2lnblVzZXJSb2xlc1Jlc3BvbnNlEl8KBXJvbGVzGAEgAygLMhkuc2NhbGVraXQudjEuY29tbW9ucy5Sb2xlQjWSQTIyMExpc3Qgb2YgYWxsIHJvbGVzIGN1cnJlbnRseSBhc3NpZ25lZCB0byB0aGUgdXNlciK0AgoVUmVtb3ZlVXNlclJvbGVSZXF1ZXN0EmcKD29yZ2FuaXphdGlvbl9pZBgBIAEoCUJOkkFAMiZVbmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIG9yZ2FuaXphdGlvbkoWIm9yZ18xMjM0YWJjZDU2NzhlZmdoIrpICHIGOgRvcmdfElcKB3VzZXJfaWQYAiABKAlCRpJBODIeVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSB1c2VyShYidXNyXzEyMzRhYmNkNTY3OGVmZ2giukgIcgY6BHVzcl8SWQoJcm9sZV9uYW1lGAMgASgJQkaSQUMyKFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcm9sZSB0byByZW1vdmVKFyJyb2xlXzEyMzRhYmNkNTY3OGVmZ2giIt4BChpMaXN0VXNlclBlcm1pc3Npb25zUmVxdWVzdBJnCg9vcmdhbml6YXRpb25faWQYASABKAlCTpJBQDImVW5pcXVlIGlkZW50aWZpZXIgZm9yIHRoZSBvcmdhbml6YXRpb25KFiJvcmdfMTIzNGFiY2Q1Njc4ZWZnaCK6SAhyBjoEb3JnXxJXCgd1c2VyX2lkGAIgASgJQkaSQTgyHlVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgdXNlckoWInVzcl8xMjM0YWJjZDU2NzhlZmdoIrpICHIGOgR1c3JfIvoCCgpQZXJtaXNzaW9uElEKAmlkGAEgASgJQkWSQT8yJFVuaXF1ZSBpZGVudGlmaWVyIGZvciB0aGUgcGVybWlzc2lvbkoXInBlcm1fMTIzNGFiY2Q1Njc4ZWZnaCLgQQMSTAoEbmFtZRgCIAEoCUI+kkE7MilVbmlxdWUgbmFtZSBpZGVudGlmaWVyIGZvciB0aGUgcGVybWlzc2lvbkoOInVzZXJzOmNyZWF0ZSISaAoLZGVzY3JpcHRpb24YAyABKAlCU5JBUDIpRGVzY3JpcHRpb24gb2Ygd2hhdCB0aGUgcGVybWlzc2lvbiBhbGxvd3NKIyJBbGxvd3MgY3JlYXRpbmcgbmV3IHVzZXIgYWNjb3VudHMiEmEKBHRhZ3MYBCADKAlCU5JBQTIhVGFncyBmb3IgY2F0ZWdvcml6aW5nIHBlcm1pc3Npb25zShxbInVzZXItbWFuYWdlbWVudCIsICJhZG1pbiJd+tLkkwIJEgdQUkVWSUVXIoIBChtMaXN0VXNlclBlcm1pc3Npb25zUmVzcG9uc2USYwoLcGVybWlzc2lvbnMYASADKAsyHS5zY2FsZWtpdC52MS51c2Vycy5QZXJtaXNzaW9uQi+SQSwyKkxpc3Qgb2YgcGVybWlzc2lvbnMgdGhlIHVzZXIgaGFzIGFjY2VzcyB0bzLGWAoLVXNlclNlcnZpY2USuAMKB0dldFVzZXISIS5zY2FsZWtpdC52MS51c2Vycy5HZXRVc2VyUmVxdWVzdBoiLnNjYWxla2l0LnYxLnVzZXJzLkdldFVzZXJSZXNwb25zZSLlApJBwQIKBVVzZXJzEghHZXQgdXNlchqOAVJldHJpZXZlcyBhbGwgZGV0YWlscyBmb3IgYSB1c2VyIGJ5IHN5c3RlbS1nZW5lcmF0ZWQgdXNlciBJRCBvciBleHRlcm5hbCBJRC4gVGhlIHJlc3BvbnNlIGluY2x1ZGVzIG9yZ2FuaXphdGlvbiBtZW1iZXJzaGlwcyBhbmQgdXNlciBtZXRhZGF0YS5KnAEKAzIwMBKUAQpqVXNlciBkZXRhaWxzIHJldHJpZXZlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgZnVsbCB1c2VyIG9iamVjdCB3aXRoIHN5c3RlbS1nZW5lcmF0ZWQgZmllbGRzIGFuZCB0aW1lc3RhbXBzLhImCiQaIi5zY2FsZWtpdC52MS51c2Vycy5HZXRVc2VyUmVzcG9uc2WCtRgCGESC0+STAhQSEi9hcGkvdjEvdXNlcnMve2lkfRK6AwoOR2V0Q3VycmVudFVzZXISKC5zY2FsZWtpdC52MS51c2Vycy5HZXRDdXJyZW50VXNlclJlcXVlc3QaKS5zY2FsZWtpdC52MS51c2Vycy5HZXRDdXJyZW50VXNlclJlc3BvbnNlItICkkGfAgoFVXNlcnMSFkdldCBhdXRoZW50aWNhdGVkIHVzZXIangFSZXRyaWV2ZXMgZGV0YWlscyBmb3IgdGhlIGN1cnJlbnRseSBhdXRoZW50aWNhdGVkIHVzZXIuIFJldHVybnMgdGhlIHNhbWUgdXNlciBvYmplY3QgYXMgR2V0VXNlciBidXQgdXNlcyB0aGUgYXV0aGVudGljYXRlZCB1c2VyJ3MgSUQgZnJvbSB0aGUgc2Vzc2lvbiBjb250ZXh0LkpdCgMyMDASVgosQ3VycmVudCB1c2VyIGRldGFpbHMgcmV0cmlldmVkIHN1Y2Nlc3NmdWxseS4SJgokGiIuc2NhbGVraXQudjEudXNlcnMuR2V0VXNlclJlc3BvbnNlgrUYAhgQ+tLkkwIJEgdQUkVWSUVXgtPkkwIUEhIvYXBpL3YxL3VzZXJzOnRoaXMSoAQKCUxpc3RVc2VycxIjLnNjYWxla2l0LnYxLnVzZXJzLkxpc3RVc2Vyc1JlcXVlc3QaJC5zY2FsZWtpdC52MS51c2Vycy5MaXN0VXNlcnNSZXNwb25zZSLHA5JBqAMKBVVzZXJzEh1MaXN0IGFsbCB1c2VycyBpbiBlbnZpcm9ubWVudBq8AlJldHJpZXZlcyBhIHBhZ2luYXRlZCBsaXN0IG9mIGFsbCB1c2VycyBhY3Jvc3MgeW91ciBlbnRpcmUgZW52aXJvbm1lbnQuIFVzZSB0aGlzIGVuZHBvaW50IHRvIHZpZXcgYWxsIHVzZXJzIHJlZ2FyZGxlc3Mgb2YgdGhlaXIgb3JnYW5pemF0aW9uIG1lbWJlcnNoaXBzLiBUaGlzIGlzIHVzZWZ1bCBmb3IgYWRtaW5pc3RyYXRpdmUgcHVycG9zZXMsIHVzZXIgYXVkaXRzLCBvciB3aGVuIHlvdSBuZWVkIHRvIHNlZSBhbGwgdXNlcnMgaW4geW91ciBTY2FsZWtpdCBlbnZpcm9ubWVudC4gU3VwcG9ydHMgcGFnaW5hdGlvbiBmb3IgbGFyZ2UgdXNlciBiYXNlcy5KQQoDMjAwEjoKDkxpc3Qgb2YgdXNlcnMuEigKJhokLnNjYWxla2l0LnYxLnVzZXJzLkxpc3RVc2Vyc1Jlc3BvbnNlgrUYAhhEgtPkkwIPEg0vYXBpL3YxL3VzZXJzEssDCgtTZWFyY2hVc2VycxIlLnNjYWxla2l0LnYxLnVzZXJzLlNlYXJjaFVzZXJzUmVxdWVzdBomLnNjYWxla2l0LnYxLnVzZXJzLlNlYXJjaFVzZXJzUmVzcG9uc2Ui7AKSQbcCCgVVc2VycxIMU2VhcmNoIHVzZXJzGoUBU2VhcmNoZXMgZm9yIHVzZXJzIGluIHRoZSBlbnZpcm9ubWVudCBieSBlbWFpbCwgdXNlciBJRCwgb3IgZXh0ZXJuYWwgSUQuIFJldHVybnMgYWxsIHVzZXJzIHRoYXQgbWF0Y2ggdGhlIHF1ZXJ5LiBTdXBwb3J0cyBwYWdpbmF0aW9uLkqXAQoDMjAwEo8BCmFSZXR1cm5zIGEgbGlzdCBvZiBtYXRjaGluZyB1c2VycyBhbmQgYSBwYWdlIHRva2VuIGZvciBwYWdpbmF0aW9uIGlmIHRoZXJlIGFyZSBhZGRpdGlvbmFsIHJlc3VsdHMuEioKKBomLnNjYWxla2l0LnYxLnVzZXJzLlNlYXJjaFVzZXJzUmVzcG9uc2WCtRgCGET60uSTAgkSB1BSRVZJRVeC0+STAhYSFC9hcGkvdjEvdXNlcnM6c2VhcmNoEuAEChdTZWFyY2hPcmdhbml6YXRpb25Vc2VycxIxLnNjYWxla2l0LnYxLnVzZXJzLlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVxdWVzdBoyLnNjYWxla2l0LnYxLnVzZXJzLlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2Ui3QOSQYgDCgVVc2VycxIZU2VhcmNoIG9yZ2FuaXphdGlvbiB1c2VycxqlAVNlYXJjaGVzIGZvciB1c2VycyB3aXRoaW4gYSBzcGVjaWZpYyBvcmdhbml6YXRpb24gYnkgZW1haWwsIHVzZXIgSUQsIG9yIGV4dGVybmFsIElELiBSZXR1cm5zIGFsbCB1c2VycyBpbiB0aGUgb3JnYW5pemF0aW9uIHRoYXQgbWF0Y2ggdGhlIHF1ZXJ5LiBTdXBwb3J0cyBwYWdpbmF0aW9uLkq7AQoDMjAwErMBCnlSZXR1cm5zIGEgbGlzdCBvZiBtYXRjaGluZyB1c2VycyB3aXRoaW4gdGhlIG9yZ2FuaXphdGlvbiBhbmQgYSBwYWdlIHRva2VuIGZvciBwYWdpbmF0aW9uIGlmIHRoZXJlIGFyZSBhZGRpdGlvbmFsIHJlc3VsdHMuEjYKNBoyLnNjYWxla2l0LnYxLnVzZXJzLlNlYXJjaE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2WCtRgCGET60uSTAgkSB1BSRVZJRVeC0+STAjYSNC9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS91c2VyczpzZWFyY2gSlgUKClVwZGF0ZVVzZXISJC5zY2FsZWtpdC52MS51c2Vycy5VcGRhdGVVc2VyUmVxdWVzdBolLnNjYWxla2l0LnYxLnVzZXJzLlVwZGF0ZVVzZXJSZXNwb25zZSK6BJJBkAQKBVVzZXJzEhdVcGRhdGUgdXNlciBpbmZvcm1hdGlvbhrhAk1vZGlmaWVzIHVzZXIgYWNjb3VudCBpbmZvcm1hdGlvbiBpbmNsdWRpbmcgcHJvZmlsZSBkZXRhaWxzLCBtZXRhZGF0YSwgYW5kIGV4dGVybmFsIElELiBVc2UgdGhpcyBlbmRwb2ludCB0byB1cGRhdGUgYSB1c2VyJ3MgcGVyc29uYWwgaW5mb3JtYXRpb24sIGNvbnRhY3QgZGV0YWlscywgb3IgY3VzdG9tIG1ldGFkYXRhLiBZb3UgY2FuIHVwZGF0ZSB0aGUgdXNlcidzIHByb2ZpbGUsIHBob25lIG51bWJlciwgYW5kIG1ldGFkYXRhIGZpZWxkcy4gTm90ZSB0aGF0IGZpZWxkcyBsaWtlIHVzZXIgSUQsIGVtYWlsIGFkZHJlc3MsIGVudmlyb25tZW50IElELCBhbmQgY3JlYXRpb24gdGltZSBjYW5ub3QgYmUgbW9kaWZpZWQuSokBCgMyMDASgQEKVFVzZXIgdXBkYXRlZCBzdWNjZXNzZnVsbHkuIFJldHVybnMgdGhlIG1vZGlmaWVkIHVzZXIgb2JqZWN0IHdpdGggdXBkYXRlZCB0aW1lc3RhbXBzLhIpCicaJS5zY2FsZWtpdC52MS51c2Vycy5VcGRhdGVVc2VyUmVzcG9uc2WCtRgCGESC0+STAho6BHVzZXIyEi9hcGkvdjEvdXNlcnMve2lkfRL9AwoKRGVsZXRlVXNlchIkLnNjYWxla2l0LnYxLnVzZXJzLkRlbGV0ZVVzZXJSZXF1ZXN0GhYuZ29vZ2xlLnByb3RvYnVmLkVtcHR5IrADkkGMAwoFVXNlcnMSF0RlbGV0ZSB1c2VyIHBlcm1hbmVudGx5GrACUGVybWFuZW50bHkgcmVtb3ZlcyBhIHVzZXIgZnJvbSB5b3VyIGVudmlyb25tZW50IGFuZCBkZWxldGVzIGFsbCBhc3NvY2lhdGVkIGRhdGEuIFVzZSB0aGlzIGVuZHBvaW50IHdoZW4geW91IG5lZWQgdG8gY29tcGxldGVseSByZW1vdmUgYSB1c2VyIGFjY291bnQuIFRoaXMgYWN0aW9uIGRlbGV0ZXMgdGhlIHVzZXIncyBwcm9maWxlLCBtZW1iZXJzaGlwcywgYW5kIGFsbCByZWxhdGVkIGRhdGEgYWNyb3NzIGFsbCBvcmdhbml6YXRpb25zLiBUaGlzIG9wZXJhdGlvbiBjYW5ub3QgYmUgdW5kb25lLCBzbyB1c2Ugd2l0aCBjYXV0aW9uLko3CgMyMDASMAouVXNlciBzdWNjZXNzZnVsbHkgZGVsZXRlZC4gTm8gY29udGVudCByZXR1cm5lZIK1GAIYRILT5JMCFCoSL2FwaS92MS91c2Vycy97aWR9EqgFChBDcmVhdGVNZW1iZXJzaGlwEiouc2NhbGVraXQudjEudXNlcnMuQ3JlYXRlTWVtYmVyc2hpcFJlcXVlc3QaKy5zY2FsZWtpdC52MS51c2Vycy5DcmVhdGVNZW1iZXJzaGlwUmVzcG9uc2UiugSSQd4DCgVVc2VycxIhQWRkIGV4aXN0aW5nIHVzZXIgdG8gb3JnYW5pemF0aW9uGpUCQWRkcyBhbiBleGlzdGluZyB1c2VyIHRvIGFuIG9yZ2FuaXphdGlvbiBhbmQgYXNzaWducyB0aGVtIHNwZWNpZmljIHJvbGVzIGFuZCBwZXJtaXNzaW9ucy4gVXNlIHRoaXMgZW5kcG9pbnQgd2hlbiB5b3Ugd2FudCB0byBncmFudCBhbiBleGlzdGluZyB1c2VyIGFjY2VzcyB0byBhIHBhcnRpY3VsYXIgb3JnYW5pemF0aW9uLiBZb3UgY2FuIHNwZWNpZnkgcm9sZXMsIG1ldGFkYXRhLCBhbmQgb3RoZXIgbWVtYmVyc2hpcCBkZXRhaWxzIGR1cmluZyB0aGUgaW52aXRhdGlvbiBwcm9jZXNzLkqZAQoDMjAxEpEBCl5Vc2VyIHN1Y2Nlc3NmdWxseSBhZGRlZCB0byB0aGUgb3JnYW5pemF0aW9uLiBSZXR1cm5zIGRldGFpbHMgb2YgdGhlIHVwZGF0ZWQgbWVtYmVyc2hpcCBkZXRhaWxzEi8KLRorLnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZU1lbWJlcnNoaXBSZXNwb25zZYK1GAIYRILT5JMCTDoKbWVtYmVyc2hpcCI+L2FwaS92MS9tZW1iZXJzaGlwcy9vcmdhbml6YXRpb25zL3tvcmdhbml6YXRpb25faWR9L3VzZXJzL3tpZH0S/QMKEERlbGV0ZU1lbWJlcnNoaXASKi5zY2FsZWtpdC52MS51c2Vycy5EZWxldGVNZW1iZXJzaGlwUmVxdWVzdBoWLmdvb2dsZS5wcm90b2J1Zi5FbXB0eSKkA5JB1AIKBVVzZXJzEidEZWxldGUgb3JnYW5pemF0aW9uIG1lbWJlcnNoaXAgZm9yIHVzZXIa3AFSZW1vdmVzIGEgdXNlciBmcm9tIGFuIG9yZ2FuaXphdGlvbiBieSB1c2VyIElEIG9yIGV4dGVybmFsIElELiBJZiB0aGUgdXNlciBoYXMgbm8gbWVtYmVyc2hpcHMgbGVmdCBhbmQgY2FzY2FkZSBpcyB0cnVlLCB0aGUgdXNlciBpcyBhbHNvIGRlbGV0ZWQuIFRoaXMgYWN0aW9uIGlzIGlycmV2ZXJzaWJsZSBhbmQgbWF5IGFsc28gcmVtb3ZlIHJlbGF0ZWQgZ3JvdXAgbWVtYmVyc2hpcHMuSkMKAzIwMBI8CjpVc2VyIHN1Y2Nlc3NmdWxseSBtYXJrZWQgZm9yIGRlbGV0aW9uLiBObyBjb250ZW50IHJldHVybmVkgrUYAhhEgtPkkwJAKj4vYXBpL3YxL21lbWJlcnNoaXBzL29yZ2FuaXphdGlvbnMve29yZ2FuaXphdGlvbl9pZH0vdXNlcnMve2lkfRL9AwoQVXBkYXRlTWVtYmVyc2hpcBIqLnNjYWxla2l0LnYxLnVzZXJzLlVwZGF0ZU1lbWJlcnNoaXBSZXF1ZXN0Gisuc2NhbGVraXQudjEudXNlcnMuVXBkYXRlTWVtYmVyc2hpcFJlc3BvbnNlIo8DkkGzAgoFVXNlcnMSJ1VwZGF0ZSBvcmdhbml6YXRpb24gbWVtYmVyc2hpcCBmb3IgdXNlchqDAVVwZGF0ZXMgYSB1c2VyJ3MgbWVtYmVyc2hpcCBkZXRhaWxzIHdpdGhpbiBhbiBvcmdhbml6YXRpb24gYnkgdXNlciBJRCBvciBleHRlcm5hbCBJRC4gWW91IGNhbiB1cGRhdGUgcm9sZXMgYW5kIG1lbWJlcnNoaXAgbWV0YWRhdGEuSnsKAzIwMBJ0CkFNZW1iZXJzaGlwIHVwZGF0ZWQgc3VjY2Vzc2Z1bGx5LiBSZXR1cm5zIHRoZSB1cGRhdGVkIHVzZXIgb2JqZWN0LhIvCi0aKy5zY2FsZWtpdC52MS51c2Vycy5VcGRhdGVNZW1iZXJzaGlwUmVzcG9uc2WCtRgCGESC0+STAkw6Cm1lbWJlcnNoaXAyPi9hcGkvdjEvbWVtYmVyc2hpcHMvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS91c2Vycy97aWR9EqwGChdDcmVhdGVVc2VyQW5kTWVtYmVyc2hpcBIxLnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZVVzZXJBbmRNZW1iZXJzaGlwUmVxdWVzdBoyLnNjYWxla2l0LnYxLnVzZXJzLkNyZWF0ZVVzZXJBbmRNZW1iZXJzaGlwUmVzcG9uc2UiqQWSQeQECgVVc2VycxIfQ3JlYXRlIG5ldyB1c2VyIGluIG9yZ2FuaXphdGlvbhqDA0NyZWF0ZXMgYSBuZXcgdXNlciBhY2NvdW50IGFuZCBpbW1lZGlhdGVseSBhZGRzIHRoZW0gdG8gdGhlIHNwZWNpZmllZCBvcmdhbml6YXRpb24uIFVzZSB0aGlzIGVuZHBvaW50IHdoZW4geW91IHdhbnQgdG8gY3JlYXRlIGEgdXNlciBhbmQgZ3JhbnQgdGhlbSBhY2Nlc3MgdG8gYW4gb3JnYW5pemF0aW9uIGluIGEgc2luZ2xlIG9wZXJhdGlvbi4gWW91IGNhbiBwcm92aWRlIHVzZXIgcHJvZmlsZSBpbmZvcm1hdGlvbiwgYXNzaWduIHJvbGVzLCBhbmQgY29uZmlndXJlIG1lbWJlcnNoaXAgbWV0YWRhdGEuIFRoZSB1c2VyIHJlY2VpdmVzIGFuIGFjdGl2YXRpb24gZW1haWwgdW5sZXNzIHRoaXMgZmVhdHVyZSBpcyBkaXNhYmxlZCBpbiB0aGUgb3JnYW5pemF0aW9uIHNldHRpbmdzLkqzAQoDMjAxEqsBCnFVc2VyIGNyZWF0ZWQgc3VjY2Vzc2Z1bGx5LiBSZXR1cm5zIHRoZSBjcmVhdGVkIHVzZXIgb2JqZWN0LCBpbmNsdWRpbmcgc3lzdGVtLWdlbmVyYXRlZCBpZGVudGlmaWVycyBhbmQgdGltZXN0YW1wcxI2CjQaMi5zY2FsZWtpdC52MS51c2Vycy5DcmVhdGVVc2VyQW5kTWVtYmVyc2hpcFJlc3BvbnNlgrUYAhhEgtPkkwI1OgR1c2VyIi0vYXBpL3YxL29yZ2FuaXphdGlvbnMve29yZ2FuaXphdGlvbl9pZH0vdXNlcnMS4wQKFUxpc3RPcmdhbml6YXRpb25Vc2VycxIvLnNjYWxla2l0LnYxLnVzZXJzLkxpc3RPcmdhbml6YXRpb25Vc2Vyc1JlcXVlc3QaMC5zY2FsZWtpdC52MS51c2Vycy5MaXN0T3JnYW5pemF0aW9uVXNlcnNSZXNwb25zZSLmA5JBpwMKBVVzZXJzEhdMaXN0IG9yZ2FuaXphdGlvbiB1c2VycxqHAlJldHJpZXZlcyBhIHBhZ2luYXRlZCBsaXN0IG9mIGFsbCB1c2VycyB3aG8gYXJlIG1lbWJlcnMgb2YgdGhlIHNwZWNpZmllZCBvcmdhbml6YXRpb24uIFVzZSB0aGlzIGVuZHBvaW50IHRvIHZpZXcgYWxsIHVzZXJzIHdpdGggYWNjZXNzIHRvIGEgcGFydGljdWxhciBvcmdhbml6YXRpb24sIGluY2x1ZGluZyB0aGVpciByb2xlcywgbWV0YWRhdGEsIGFuZCBtZW1iZXJzaGlwIGRldGFpbHMuIFN1cHBvcnRzIHBhZ2luYXRpb24gZm9yIGxhcmdlIHVzZXIgbGlzdHMuSnsKAzIwMBJ0CjxTdWNjZXNzZnVsbHkgcmV0cmlldmVkIHRoZSBsaXN0IG9mIHVzZXJzIGluIHRoZSBvcmdhbml6YXRpb24SNAoyGjAuc2NhbGVraXQudjEudXNlcnMuTGlzdE9yZ2FuaXphdGlvblVzZXJzUmVzcG9uc2WCtRgCGESC0+STAi8SLS9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS91c2VycxKSEAoMUmVzZW5kSW52aXRlEiYuc2NhbGVraXQudjEudXNlcnMuUmVzZW5kSW52aXRlUmVxdWVzdBonLnNjYWxla2l0LnYxLnVzZXJzLlJlc2VuZEludml0ZVJlc3BvbnNlIrAPkkHaDgoFVXNlcnMSHFJlc2VuZCB1c2VyIGludml0YXRpb24gZW1haWwa4QRSZXNlbmRzIGFuIGludml0YXRpb24gZW1haWwgdG8gYSB1c2VyIHdobyBoYXMgYSBwZW5kaW5nIG9yIGV4cGlyZWQgaW52aXRhdGlvbiBpbiB0aGUgc3BlY2lmaWVkIG9yZ2FuaXphdGlvbi4gSWYgdGhlIGludml0YXRpb24gaGFzIGV4cGlyZWQsIGEgbmV3IGludml0YXRpb24gd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYW5kIHNlbnQuIElmIHRoZSBpbnZpdGF0aW9uIGlzIHN0aWxsIHZhbGlkLCBhIHJlbWluZGVyIGVtYWlsIHdpbGwgYmUgc2VudCBpbnN0ZWFkLiBVc2UgdGhpcyBlbmRwb2ludCB3aGVuIGEgdXNlciBoYXNuJ3QgcmVzcG9uZGVkIHRvIHRoZWlyIGluaXRpYWwgaW52aXRhdGlvbiBhbmQgeW91IG5lZWQgdG8gc2VuZCB0aGVtIGEgcmVtaW5kZXIgb3Igd2hlbiB0aGUgb3JpZ2luYWwgaW52aXRhdGlvbiBoYXMgZXhwaXJlZC4gVGhlIGludml0YXRpb24gZW1haWwgaW5jbHVkZXMgYSBzZWN1cmUgbWFnaWMgbGluayB0aGF0IGFsbG93cyB0aGUgdXNlciB0byBjb21wbGV0ZSB0aGVpciBhY2NvdW50IHNldHVwIGFuZCBqb2luIHRoZSBvcmdhbml6YXRpb24uIEVhY2ggcmVzZW5kIG9wZXJhdGlvbiBpbmNyZW1lbnRzIHRoZSByZXNlbnQgY291bnRlci5KpwIKAzIwMBKfAgrvAVN1Y2Nlc3NmdWxseSByZXNlbnQgdGhlIGludml0YXRpb24gZW1haWwuIFJldHVybnMgdGhlIHVwZGF0ZWQgaW52aXRhdGlvbiBvYmplY3Qgd2l0aCBvcmdhbml6YXRpb24gSUQsIHVzZXIgSUQsIG1lbWJlcnNoaXAgc3RhdHVzLCB0aW1lc3RhbXBzLCBhbmQgcmVzZW50IGNvdW50LiBJZiBleHBpcmVkLCBhIG5ldyBpbnZpdGF0aW9uIGlzIGNyZWF0ZWQ7IG90aGVyd2lzZSwgdGhlIGV4aXN0aW5nIG9uZSBpcyByZXNlbnQuEisKKRonLnNjYWxla2l0LnYxLnVzZXJzLlJlc2VuZEludml0ZVJlc3BvbnNlSo8CCgM0MDAShwIK3QFJbnZhbGlkIHJlcXVlc3Qg4oCUIGNvbW1vbiBjYXVzZXMgaW5jbHVkZSB1c2VyIElEIG9yIG9yZ2FuaXphdGlvbiBJRCBpcyBpbnZhbGlkLCBmdWxsLXN0YWNrIGF1dGhlbnRpY2F0aW9uIGlzIGRpc2FibGVkLCB1c2VyIHByb2ZpbGUgaXMgbWlzc2luZywgaW52aXRlIGFscmVhZHkgYWNjZXB0ZWQsIG9yIG1pc3NpbmcgZXhwaXJ5IHRpbWUgaW4gdXNlciBtYW5hZ2VtZW50IHNldHRpbmdzLhIlCiMaIS5zY2FsZWtpdC52MS5lcnJkZXRhaWxzLkVycm9ySW5mb0qdAgoDNDA0EpUCCusBUmVzb3VyY2Ugbm90IGZvdW5kIOKAlCB0aGUgc3BlY2lmaWVkIHVzZXIsIG9yZ2FuaXphdGlvbiwgbWVtYmVyc2hpcCwgb3IgaW52aXRhdGlvbiBjb3VsZCBub3QgYmUgZm91bmQgaW4gdGhlIHNwZWNpZmllZCBlbnZpcm9ubWVudC4gVmVyaWZ5IHRoYXQgYWxsIElEcyBhcmUgY29ycmVjdCBhbmQgdGhhdCB0aGUgcmVzb3VyY2VzIGV4aXN0IGJlZm9yZSBhdHRlbXB0aW5nIHRvIHJlc2VuZCBhbiBpbnZpdGF0aW9uLhIlCiMaIS5zY2FsZWtpdC52MS5lcnJkZXRhaWxzLkVycm9ySW5mb0ryAgoDNTAwEuoCCsACSW50ZXJuYWwgc2VydmVyIGVycm9yIOKAlCBhbiB1bmV4cGVjdGVkIGVycm9yIG9jY3VycmVkIHdoaWxlIHByb2Nlc3NpbmcgdGhlIGludml0YXRpb24gcmVzZW5kIHJlcXVlc3QuIFRoaXMgbWF5IGJlIGR1ZSB0byBkYXRhYmFzZSBjb25uZWN0aXZpdHkgaXNzdWVzLCBwcm9ibGVtcyBnZW5lcmF0aW5nIHRoZSBzZWN1cmUgbWFnaWMgbGluaywgZW1haWwgZGVsaXZlcnkgc2VydmljZSBmYWlsdXJlcywgb3IgdHJhbnNhY3Rpb24gZXJyb3JzIGR1cmluZyBpbnZpdGF0aW9uIHByb2Nlc3NpbmcuIENvbnRhY3Qgc3VwcG9ydCBpZiB0aGUgcHJvYmxlbSBwZXJzaXN0cy4SJQojGiEuc2NhbGVraXQudjEuZXJyZGV0YWlscy5FcnJvckluZm+CtRgCGESC0+STAkY6ASoyQS9hcGkvdjEvaW52aXRlcy9vcmdhbml6YXRpb25zL3tvcmdhbml6YXRpb25faWR9L3VzZXJzL3tpZH0vcmVzZW5kEt8DCg1MaXN0VXNlclJvbGVzEicuc2NhbGVraXQudjEudXNlcnMuTGlzdFVzZXJSb2xlc1JlcXVlc3QaKC5zY2FsZWtpdC52MS51c2Vycy5MaXN0VXNlclJvbGVzUmVzcG9uc2Ui+gKSQasCCgVVc2VycxIPTGlzdCB1c2VyIHJvbGVzGpoBUmV0cmlldmVzIGFsbCByb2xlcyBhc3NpZ25lZCB0byBhIHVzZXIgd2l0aGluIGEgc3BlY2lmaWMgb3JnYW5pemF0aW9uLiBUaGlzIGluY2x1ZGVzIGJvdGggZGlyZWN0IHJvbGUgYXNzaWdubWVudHMgYW5kIGluaGVyaXRlZCByb2xlcyBmcm9tIHJvbGUgaGllcmFyY2h5Lkp0CgMyMDASbQo9U3VjY2Vzc2Z1bGx5IHJldHJpZXZlZCB0aGUgbGlzdCBvZiByb2xlcyBhc3NpZ25lZCB0byB0aGUgdXNlchIsCioaKC5zY2FsZWtpdC52MS51c2Vycy5MaXN0VXNlclJvbGVzUmVzcG9uc2WCtRgCGESC0+STAj8SPS9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS91c2Vycy97dXNlcl9pZH0vcm9sZXMS4gMKD0Fzc2lnblVzZXJSb2xlcxIpLnNjYWxla2l0LnYxLnVzZXJzLkFzc2lnblVzZXJSb2xlc1JlcXVlc3QaKi5zY2FsZWtpdC52MS51c2Vycy5Bc3NpZ25Vc2VyUm9sZXNSZXNwb25zZSL3ApJBkgIKBVVzZXJzEhRBc3NpZ24gcm9sZXMgdG8gdXNlchqQAUFzc2lnbnMgb25lIG9yIG1vcmUgcm9sZXMgdG8gYSB1c2VyIHdpdGhpbiBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbi4gVGhpcyBvcGVyYXRpb24gYWRkcyB0byBleGlzdGluZyByb2xlIGFzc2lnbm1lbnRzIHJhdGhlciB0aGFuIHJlcGxhY2luZyB0aGVtLkpgCgMyMDASWQonU3VjY2Vzc2Z1bGx5IGFzc2lnbmVkIHJvbGVzIHRvIHRoZSB1c2VyEi4KLBoqLnNjYWxla2l0LnYxLnVzZXJzLkFzc2lnblVzZXJSb2xlc1Jlc3BvbnNlgrUYAhhE+tLkkwIJEgdQUkVWSUVXgtPkkwJGOgVyb2xlcyI9L2FwaS92MS9vcmdhbml6YXRpb25zL3tvcmdhbml6YXRpb25faWR9L3VzZXJzL3t1c2VyX2lkfS9yb2xlcxKoAwoOUmVtb3ZlVXNlclJvbGUSKC5zY2FsZWtpdC52MS51c2Vycy5SZW1vdmVVc2VyUm9sZVJlcXVlc3QaFi5nb29nbGUucHJvdG9idWYuRW1wdHki0wKSQekBCgVVc2VycxIVUmVtb3ZlIHJvbGUgZnJvbSB1c2VyGpoBUmVtb3ZlcyBhIHNwZWNpZmljIHJvbGUgYXNzaWdubWVudCBmcm9tIGEgdXNlciB3aXRoaW4gYW4gb3JnYW5pemF0aW9uLiBUaGlzIG9ubHkgcmVtb3ZlcyBkaXJlY3Qgcm9sZSBhc3NpZ25tZW50cywgbm90IGluaGVyaXRlZCByb2xlcyBmcm9tIHJvbGUgaGllcmFyY2h5LkosCgMyMDASJQojUm9sZSBzdWNjZXNzZnVsbHkgcmVtb3ZlZCBmcm9tIHVzZXKCtRgCGET60uSTAgkSB1BSRVZJRVeC0+STAksqSS9hcGkvdjEvb3JnYW5pemF0aW9ucy97b3JnYW5pemF0aW9uX2lkfS91c2Vycy97dXNlcl9pZH0vcm9sZXMve3JvbGVfbmFtZX0SmwQKE0xpc3RVc2VyUGVybWlzc2lvbnMSLS5zY2FsZWtpdC52MS51c2Vycy5MaXN0VXNlclBlcm1pc3Npb25zUmVxdWVzdBouLnNjYWxla2l0LnYxLnVzZXJzLkxpc3RVc2VyUGVybWlzc2lvbnNSZXNwb25zZSKkA5JBzwIKBVVzZXJzEhVMaXN0IHVzZXIgcGVybWlzc2lvbnMatAFSZXRyaWV2ZXMgYWxsIHBlcm1pc3Npb25zIGEgdXNlciBoYXMgYWNjZXNzIHRvIHdpdGhpbiBhIHNwZWNpZmljIG9yZ2FuaXphdGlvbi4gVGhpcyBpbmNsdWRlcyBwZXJtaXNzaW9ucyBmcm9tIGRpcmVjdCByb2xlIGFzc2lnbm1lbnRzIGFuZCBpbmhlcml0ZWQgcGVybWlzc2lvbnMgZnJvbSByb2xlIGhpZXJhcmNoeS5KeAoDMjAwEnEKO1N1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgdGhlIGxpc3Qgb2YgcGVybWlzc2lvbnMgZm9yIHRoZSB1c2VyEjIKMBouLnNjYWxla2l0LnYxLnVzZXJzLkxpc3RVc2VyUGVybWlzc2lvbnNSZXNwb25zZYK1GAIYRILT5JMCRRJDL2FwaS92MS9vcmdhbml6YXRpb25zL3tvcmdhbml6YXRpb25faWR9L3VzZXJzL3t1c2VyX2lkfS9wZXJtaXNzaW9ucxrsA5JB6AMKBVVzZXJzEt4DQ29tcHJlaGVuc2l2ZSB1c2VyIG1hbmFnZW1lbnQgb3BlcmF0aW9ucyBpbmNsdWRpbmcgdXNlciBsaWZlY3ljbGUsIG9yZ2FuaXphdGlvbiBtZW1iZXJzaGlwcywgYW5kIGludml0YXRpb24gd29ya2Zsb3dzLiBUaGlzIHNlcnZpY2UgcHJvdmlkZXMgZW5kcG9pbnRzIGZvciBjcmVhdGluZywgcmV0cmlldmluZywgdXBkYXRpbmcsIGFuZCBkZWxldGluZyB1c2VyIGFjY291bnRzIGFjcm9zcyB5b3VyIFNjYWxla2l0IGVudmlyb25tZW50LiBJdCBzdXBwb3J0cyBib3RoIGluZGl2aWR1YWwgdXNlciBvcGVyYXRpb25zIGFuZCBidWxrIG9wZXJhdGlvbnMgZm9yIHVzZXIgYWRtaW5pc3RyYXRpb24sIGluY2x1ZGluZyB1c2VyIHNlYXJjaCwgcGFnaW5hdGlvbiwgYW5kIG1ldGFkYXRhIG1hbmFnZW1lbnQuIFRoZSBzZXJ2aWNlIGFsc28gaGFuZGxlcyB1c2VyIGludml0YXRpb25zIGFuZCBvcmdhbml6YXRpb24gbWVtYmVyc2hpcCBtYW5hZ2VtZW50LkIxWi9naXRodWIuY29tL3NjYWxla2l0LWluYy9zY2FsZWtpdC9wa2cvZ3JwYy91c2Vyc2IGcHJvdG8z", [file_buf_validate_validate, file_google_api_annotations, file_google_api_field_behavior, file_google_api_visibility, file_google_protobuf_empty, file_google_protobuf_timestamp, file_protoc_gen_openapiv2_options_annotations, file_scalekit_v1_commons_commons, file_scalekit_v1_options_options]);
9
24
 
10
25
  /**
11
26
  * @generated from message scalekit.v1.users.User
12
27
  */
13
- export class User extends Message<User> {
28
+ export type User = Message<"scalekit.v1.users.User"> & {
14
29
  /**
15
30
  * @generated from field: string id = 1;
16
31
  */
17
- id = "";
32
+ id: string;
18
33
 
19
34
  /**
20
35
  * @generated from field: string environment_id = 2;
21
36
  */
22
- environmentId = "";
37
+ environmentId: string;
23
38
 
24
39
  /**
25
40
  * @generated from field: google.protobuf.Timestamp create_time = 3;
@@ -34,7 +49,7 @@ export class User extends Message<User> {
34
49
  /**
35
50
  * @generated from field: string email = 5;
36
51
  */
37
- email = "";
52
+ email: string;
38
53
 
39
54
  /**
40
55
  * @generated from field: optional string external_id = 6;
@@ -44,7 +59,7 @@ export class User extends Message<User> {
44
59
  /**
45
60
  * @generated from field: repeated scalekit.v1.commons.OrganizationMembership memberships = 7;
46
61
  */
47
- memberships: OrganizationMembership[] = [];
62
+ memberships: OrganizationMembership[];
48
63
 
49
64
  /**
50
65
  * @generated from field: scalekit.v1.commons.UserProfile user_profile = 8;
@@ -54,58 +69,29 @@ export class User extends Message<User> {
54
69
  /**
55
70
  * @generated from field: map<string, string> metadata = 9;
56
71
  */
57
- metadata: { [key: string]: string } = {};
72
+ metadata: { [key: string]: string };
58
73
 
59
74
  /**
60
75
  * @generated from field: google.protobuf.Timestamp last_login_time = 10;
61
76
  */
62
77
  lastLoginTime?: Timestamp;
78
+ };
63
79
 
64
- constructor(data?: PartialMessage<User>) {
65
- super();
66
- proto3.util.initPartial(data, this);
67
- }
68
-
69
- static readonly runtime: typeof proto3 = proto3;
70
- static readonly typeName = "scalekit.v1.users.User";
71
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
72
- { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
73
- { no: 2, name: "environment_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
74
- { no: 3, name: "create_time", kind: "message", T: Timestamp },
75
- { no: 4, name: "update_time", kind: "message", T: Timestamp },
76
- { no: 5, name: "email", kind: "scalar", T: 9 /* ScalarType.STRING */ },
77
- { no: 6, name: "external_id", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
78
- { no: 7, name: "memberships", kind: "message", T: OrganizationMembership, repeated: true },
79
- { no: 8, name: "user_profile", kind: "message", T: UserProfile },
80
- { no: 9, name: "metadata", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} },
81
- { no: 10, name: "last_login_time", kind: "message", T: Timestamp },
82
- ]);
83
-
84
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): User {
85
- return new User().fromBinary(bytes, options);
86
- }
87
-
88
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): User {
89
- return new User().fromJson(jsonValue, options);
90
- }
91
-
92
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): User {
93
- return new User().fromJsonString(jsonString, options);
94
- }
95
-
96
- static equals(a: User | PlainMessage<User> | undefined, b: User | PlainMessage<User> | undefined): boolean {
97
- return proto3.util.equals(User, a, b);
98
- }
99
- }
80
+ /**
81
+ * Describes the message scalekit.v1.users.User.
82
+ * Use `create(UserSchema)` to create a new message.
83
+ */
84
+ export const UserSchema: GenMessage<User> = /*@__PURE__*/
85
+ messageDesc(file_scalekit_v1_users_users, 0);
100
86
 
101
87
  /**
102
88
  * @generated from message scalekit.v1.users.CreateUserAndMembershipRequest
103
89
  */
104
- export class CreateUserAndMembershipRequest extends Message<CreateUserAndMembershipRequest> {
90
+ export type CreateUserAndMembershipRequest = Message<"scalekit.v1.users.CreateUserAndMembershipRequest"> & {
105
91
  /**
106
92
  * @generated from field: string organization_id = 1;
107
93
  */
108
- organizationId = "";
94
+ organizationId: string;
109
95
 
110
96
  /**
111
97
  * @generated from field: scalekit.v1.users.CreateUser user = 2;
@@ -116,78 +102,36 @@ export class CreateUserAndMembershipRequest extends Message<CreateUserAndMembers
116
102
  * @generated from field: optional bool send_invitation_email = 3;
117
103
  */
118
104
  sendInvitationEmail?: boolean;
105
+ };
119
106
 
120
- constructor(data?: PartialMessage<CreateUserAndMembershipRequest>) {
121
- super();
122
- proto3.util.initPartial(data, this);
123
- }
124
-
125
- static readonly runtime: typeof proto3 = proto3;
126
- static readonly typeName = "scalekit.v1.users.CreateUserAndMembershipRequest";
127
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
128
- { no: 1, name: "organization_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
129
- { no: 2, name: "user", kind: "message", T: CreateUser },
130
- { no: 3, name: "send_invitation_email", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
131
- ]);
132
-
133
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateUserAndMembershipRequest {
134
- return new CreateUserAndMembershipRequest().fromBinary(bytes, options);
135
- }
136
-
137
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateUserAndMembershipRequest {
138
- return new CreateUserAndMembershipRequest().fromJson(jsonValue, options);
139
- }
140
-
141
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateUserAndMembershipRequest {
142
- return new CreateUserAndMembershipRequest().fromJsonString(jsonString, options);
143
- }
144
-
145
- static equals(a: CreateUserAndMembershipRequest | PlainMessage<CreateUserAndMembershipRequest> | undefined, b: CreateUserAndMembershipRequest | PlainMessage<CreateUserAndMembershipRequest> | undefined): boolean {
146
- return proto3.util.equals(CreateUserAndMembershipRequest, a, b);
147
- }
148
- }
107
+ /**
108
+ * Describes the message scalekit.v1.users.CreateUserAndMembershipRequest.
109
+ * Use `create(CreateUserAndMembershipRequestSchema)` to create a new message.
110
+ */
111
+ export const CreateUserAndMembershipRequestSchema: GenMessage<CreateUserAndMembershipRequest> = /*@__PURE__*/
112
+ messageDesc(file_scalekit_v1_users_users, 1);
149
113
 
150
114
  /**
151
115
  * @generated from message scalekit.v1.users.CreateUserAndMembershipResponse
152
116
  */
153
- export class CreateUserAndMembershipResponse extends Message<CreateUserAndMembershipResponse> {
117
+ export type CreateUserAndMembershipResponse = Message<"scalekit.v1.users.CreateUserAndMembershipResponse"> & {
154
118
  /**
155
119
  * @generated from field: scalekit.v1.users.User user = 1;
156
120
  */
157
121
  user?: User;
122
+ };
158
123
 
159
- constructor(data?: PartialMessage<CreateUserAndMembershipResponse>) {
160
- super();
161
- proto3.util.initPartial(data, this);
162
- }
163
-
164
- static readonly runtime: typeof proto3 = proto3;
165
- static readonly typeName = "scalekit.v1.users.CreateUserAndMembershipResponse";
166
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
167
- { no: 1, name: "user", kind: "message", T: User },
168
- ]);
169
-
170
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateUserAndMembershipResponse {
171
- return new CreateUserAndMembershipResponse().fromBinary(bytes, options);
172
- }
173
-
174
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateUserAndMembershipResponse {
175
- return new CreateUserAndMembershipResponse().fromJson(jsonValue, options);
176
- }
177
-
178
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateUserAndMembershipResponse {
179
- return new CreateUserAndMembershipResponse().fromJsonString(jsonString, options);
180
- }
181
-
182
- static equals(a: CreateUserAndMembershipResponse | PlainMessage<CreateUserAndMembershipResponse> | undefined, b: CreateUserAndMembershipResponse | PlainMessage<CreateUserAndMembershipResponse> | undefined): boolean {
183
- return proto3.util.equals(CreateUserAndMembershipResponse, a, b);
184
- }
185
- }
124
+ /**
125
+ * Describes the message scalekit.v1.users.CreateUserAndMembershipResponse.
126
+ * Use `create(CreateUserAndMembershipResponseSchema)` to create a new message.
127
+ */
128
+ export const CreateUserAndMembershipResponseSchema: GenMessage<CreateUserAndMembershipResponse> = /*@__PURE__*/
129
+ messageDesc(file_scalekit_v1_users_users, 2);
186
130
 
187
131
  /**
188
132
  * @generated from message scalekit.v1.users.UpdateUser
189
133
  */
190
- export class UpdateUser extends Message<UpdateUser> {
134
+ export type UpdateUser = Message<"scalekit.v1.users.UpdateUser"> & {
191
135
  /**
192
136
  * @generated from field: optional string external_id = 6;
193
137
  */
@@ -201,42 +145,20 @@ export class UpdateUser extends Message<UpdateUser> {
201
145
  /**
202
146
  * @generated from field: map<string, string> metadata = 9;
203
147
  */
204
- metadata: { [key: string]: string } = {};
205
-
206
- constructor(data?: PartialMessage<UpdateUser>) {
207
- super();
208
- proto3.util.initPartial(data, this);
209
- }
210
-
211
- static readonly runtime: typeof proto3 = proto3;
212
- static readonly typeName = "scalekit.v1.users.UpdateUser";
213
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
214
- { no: 6, name: "external_id", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
215
- { no: 8, name: "user_profile", kind: "message", T: UpdateUserProfile },
216
- { no: 9, name: "metadata", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} },
217
- ]);
218
-
219
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateUser {
220
- return new UpdateUser().fromBinary(bytes, options);
221
- }
222
-
223
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateUser {
224
- return new UpdateUser().fromJson(jsonValue, options);
225
- }
148
+ metadata: { [key: string]: string };
149
+ };
226
150
 
227
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateUser {
228
- return new UpdateUser().fromJsonString(jsonString, options);
229
- }
230
-
231
- static equals(a: UpdateUser | PlainMessage<UpdateUser> | undefined, b: UpdateUser | PlainMessage<UpdateUser> | undefined): boolean {
232
- return proto3.util.equals(UpdateUser, a, b);
233
- }
234
- }
151
+ /**
152
+ * Describes the message scalekit.v1.users.UpdateUser.
153
+ * Use `create(UpdateUserSchema)` to create a new message.
154
+ */
155
+ export const UpdateUserSchema: GenMessage<UpdateUser> = /*@__PURE__*/
156
+ messageDesc(file_scalekit_v1_users_users, 3);
235
157
 
236
158
  /**
237
159
  * @generated from message scalekit.v1.users.UpdateUserRequest
238
160
  */
239
- export class UpdateUserRequest extends Message<UpdateUserRequest> {
161
+ export type UpdateUserRequest = Message<"scalekit.v1.users.UpdateUserRequest"> & {
240
162
  /**
241
163
  * @generated from oneof scalekit.v1.users.UpdateUserRequest.identities
242
164
  */
@@ -252,84 +174,42 @@ export class UpdateUserRequest extends Message<UpdateUserRequest> {
252
174
  */
253
175
  value: string;
254
176
  case: "externalId";
255
- } | { case: undefined; value?: undefined } = { case: undefined };
177
+ } | { case: undefined; value?: undefined };
256
178
 
257
179
  /**
258
180
  * @generated from field: scalekit.v1.users.UpdateUser user = 3;
259
181
  */
260
182
  user?: UpdateUser;
183
+ };
261
184
 
262
- constructor(data?: PartialMessage<UpdateUserRequest>) {
263
- super();
264
- proto3.util.initPartial(data, this);
265
- }
266
-
267
- static readonly runtime: typeof proto3 = proto3;
268
- static readonly typeName = "scalekit.v1.users.UpdateUserRequest";
269
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
270
- { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "identities" },
271
- { no: 2, name: "external_id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "identities" },
272
- { no: 3, name: "user", kind: "message", T: UpdateUser },
273
- ]);
274
-
275
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateUserRequest {
276
- return new UpdateUserRequest().fromBinary(bytes, options);
277
- }
278
-
279
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateUserRequest {
280
- return new UpdateUserRequest().fromJson(jsonValue, options);
281
- }
282
-
283
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateUserRequest {
284
- return new UpdateUserRequest().fromJsonString(jsonString, options);
285
- }
286
-
287
- static equals(a: UpdateUserRequest | PlainMessage<UpdateUserRequest> | undefined, b: UpdateUserRequest | PlainMessage<UpdateUserRequest> | undefined): boolean {
288
- return proto3.util.equals(UpdateUserRequest, a, b);
289
- }
290
- }
185
+ /**
186
+ * Describes the message scalekit.v1.users.UpdateUserRequest.
187
+ * Use `create(UpdateUserRequestSchema)` to create a new message.
188
+ */
189
+ export const UpdateUserRequestSchema: GenMessage<UpdateUserRequest> = /*@__PURE__*/
190
+ messageDesc(file_scalekit_v1_users_users, 4);
291
191
 
292
192
  /**
293
193
  * @generated from message scalekit.v1.users.UpdateUserResponse
294
194
  */
295
- export class UpdateUserResponse extends Message<UpdateUserResponse> {
195
+ export type UpdateUserResponse = Message<"scalekit.v1.users.UpdateUserResponse"> & {
296
196
  /**
297
197
  * @generated from field: scalekit.v1.users.User user = 1;
298
198
  */
299
199
  user?: User;
200
+ };
300
201
 
301
- constructor(data?: PartialMessage<UpdateUserResponse>) {
302
- super();
303
- proto3.util.initPartial(data, this);
304
- }
305
-
306
- static readonly runtime: typeof proto3 = proto3;
307
- static readonly typeName = "scalekit.v1.users.UpdateUserResponse";
308
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
309
- { no: 1, name: "user", kind: "message", T: User },
310
- ]);
311
-
312
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateUserResponse {
313
- return new UpdateUserResponse().fromBinary(bytes, options);
314
- }
315
-
316
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateUserResponse {
317
- return new UpdateUserResponse().fromJson(jsonValue, options);
318
- }
319
-
320
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateUserResponse {
321
- return new UpdateUserResponse().fromJsonString(jsonString, options);
322
- }
323
-
324
- static equals(a: UpdateUserResponse | PlainMessage<UpdateUserResponse> | undefined, b: UpdateUserResponse | PlainMessage<UpdateUserResponse> | undefined): boolean {
325
- return proto3.util.equals(UpdateUserResponse, a, b);
326
- }
327
- }
202
+ /**
203
+ * Describes the message scalekit.v1.users.UpdateUserResponse.
204
+ * Use `create(UpdateUserResponseSchema)` to create a new message.
205
+ */
206
+ export const UpdateUserResponseSchema: GenMessage<UpdateUserResponse> = /*@__PURE__*/
207
+ messageDesc(file_scalekit_v1_users_users, 5);
328
208
 
329
209
  /**
330
210
  * @generated from message scalekit.v1.users.GetUserRequest
331
211
  */
332
- export class GetUserRequest extends Message<GetUserRequest> {
212
+ export type GetUserRequest = Message<"scalekit.v1.users.GetUserRequest"> & {
333
213
  /**
334
214
  * @generated from oneof scalekit.v1.users.GetUserRequest.identities
335
215
  */
@@ -345,78 +225,37 @@ export class GetUserRequest extends Message<GetUserRequest> {
345
225
  */
346
226
  value: string;
347
227
  case: "externalId";
348
- } | { case: undefined; value?: undefined } = { case: undefined };
349
-
350
- constructor(data?: PartialMessage<GetUserRequest>) {
351
- super();
352
- proto3.util.initPartial(data, this);
353
- }
354
-
355
- static readonly runtime: typeof proto3 = proto3;
356
- static readonly typeName = "scalekit.v1.users.GetUserRequest";
357
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
358
- { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "identities" },
359
- { no: 2, name: "external_id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "identities" },
360
- ]);
361
-
362
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUserRequest {
363
- return new GetUserRequest().fromBinary(bytes, options);
364
- }
365
-
366
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUserRequest {
367
- return new GetUserRequest().fromJson(jsonValue, options);
368
- }
228
+ } | { case: undefined; value?: undefined };
229
+ };
369
230
 
370
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUserRequest {
371
- return new GetUserRequest().fromJsonString(jsonString, options);
372
- }
373
-
374
- static equals(a: GetUserRequest | PlainMessage<GetUserRequest> | undefined, b: GetUserRequest | PlainMessage<GetUserRequest> | undefined): boolean {
375
- return proto3.util.equals(GetUserRequest, a, b);
376
- }
377
- }
231
+ /**
232
+ * Describes the message scalekit.v1.users.GetUserRequest.
233
+ * Use `create(GetUserRequestSchema)` to create a new message.
234
+ */
235
+ export const GetUserRequestSchema: GenMessage<GetUserRequest> = /*@__PURE__*/
236
+ messageDesc(file_scalekit_v1_users_users, 6);
378
237
 
379
238
  /**
380
239
  * @generated from message scalekit.v1.users.GetUserResponse
381
240
  */
382
- export class GetUserResponse extends Message<GetUserResponse> {
241
+ export type GetUserResponse = Message<"scalekit.v1.users.GetUserResponse"> & {
383
242
  /**
384
243
  * @generated from field: scalekit.v1.users.User user = 1;
385
244
  */
386
245
  user?: User;
246
+ };
387
247
 
388
- constructor(data?: PartialMessage<GetUserResponse>) {
389
- super();
390
- proto3.util.initPartial(data, this);
391
- }
392
-
393
- static readonly runtime: typeof proto3 = proto3;
394
- static readonly typeName = "scalekit.v1.users.GetUserResponse";
395
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
396
- { no: 1, name: "user", kind: "message", T: User },
397
- ]);
398
-
399
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetUserResponse {
400
- return new GetUserResponse().fromBinary(bytes, options);
401
- }
402
-
403
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetUserResponse {
404
- return new GetUserResponse().fromJson(jsonValue, options);
405
- }
406
-
407
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetUserResponse {
408
- return new GetUserResponse().fromJsonString(jsonString, options);
409
- }
410
-
411
- static equals(a: GetUserResponse | PlainMessage<GetUserResponse> | undefined, b: GetUserResponse | PlainMessage<GetUserResponse> | undefined): boolean {
412
- return proto3.util.equals(GetUserResponse, a, b);
413
- }
414
- }
248
+ /**
249
+ * Describes the message scalekit.v1.users.GetUserResponse.
250
+ * Use `create(GetUserResponseSchema)` to create a new message.
251
+ */
252
+ export const GetUserResponseSchema: GenMessage<GetUserResponse> = /*@__PURE__*/
253
+ messageDesc(file_scalekit_v1_users_users, 7);
415
254
 
416
255
  /**
417
256
  * @generated from message scalekit.v1.users.GetCurrentUserResponse
418
257
  */
419
- export class GetCurrentUserResponse extends Message<GetCurrentUserResponse> {
258
+ export type GetCurrentUserResponse = Message<"scalekit.v1.users.GetCurrentUserResponse"> & {
420
259
  /**
421
260
  * @generated from field: scalekit.v1.users.User user = 1;
422
261
  */
@@ -425,182 +264,98 @@ export class GetCurrentUserResponse extends Message<GetCurrentUserResponse> {
425
264
  /**
426
265
  * @generated from field: string current_session_id = 2;
427
266
  */
428
- currentSessionId = "";
429
-
430
- constructor(data?: PartialMessage<GetCurrentUserResponse>) {
431
- super();
432
- proto3.util.initPartial(data, this);
433
- }
434
-
435
- static readonly runtime: typeof proto3 = proto3;
436
- static readonly typeName = "scalekit.v1.users.GetCurrentUserResponse";
437
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
438
- { no: 1, name: "user", kind: "message", T: User },
439
- { no: 2, name: "current_session_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
440
- ]);
441
-
442
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetCurrentUserResponse {
443
- return new GetCurrentUserResponse().fromBinary(bytes, options);
444
- }
445
-
446
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetCurrentUserResponse {
447
- return new GetCurrentUserResponse().fromJson(jsonValue, options);
448
- }
267
+ currentSessionId: string;
268
+ };
449
269
 
450
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetCurrentUserResponse {
451
- return new GetCurrentUserResponse().fromJsonString(jsonString, options);
452
- }
453
-
454
- static equals(a: GetCurrentUserResponse | PlainMessage<GetCurrentUserResponse> | undefined, b: GetCurrentUserResponse | PlainMessage<GetCurrentUserResponse> | undefined): boolean {
455
- return proto3.util.equals(GetCurrentUserResponse, a, b);
456
- }
457
- }
270
+ /**
271
+ * Describes the message scalekit.v1.users.GetCurrentUserResponse.
272
+ * Use `create(GetCurrentUserResponseSchema)` to create a new message.
273
+ */
274
+ export const GetCurrentUserResponseSchema: GenMessage<GetCurrentUserResponse> = /*@__PURE__*/
275
+ messageDesc(file_scalekit_v1_users_users, 8);
458
276
 
459
277
  /**
460
278
  * Empty message - user ID extracted from authentication context
461
279
  *
462
280
  * @generated from message scalekit.v1.users.GetCurrentUserRequest
463
281
  */
464
- export class GetCurrentUserRequest extends Message<GetCurrentUserRequest> {
465
- constructor(data?: PartialMessage<GetCurrentUserRequest>) {
466
- super();
467
- proto3.util.initPartial(data, this);
468
- }
469
-
470
- static readonly runtime: typeof proto3 = proto3;
471
- static readonly typeName = "scalekit.v1.users.GetCurrentUserRequest";
472
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
473
- ]);
282
+ export type GetCurrentUserRequest = Message<"scalekit.v1.users.GetCurrentUserRequest"> & {
283
+ };
474
284
 
475
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): GetCurrentUserRequest {
476
- return new GetCurrentUserRequest().fromBinary(bytes, options);
477
- }
478
-
479
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): GetCurrentUserRequest {
480
- return new GetCurrentUserRequest().fromJson(jsonValue, options);
481
- }
482
-
483
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): GetCurrentUserRequest {
484
- return new GetCurrentUserRequest().fromJsonString(jsonString, options);
485
- }
486
-
487
- static equals(a: GetCurrentUserRequest | PlainMessage<GetCurrentUserRequest> | undefined, b: GetCurrentUserRequest | PlainMessage<GetCurrentUserRequest> | undefined): boolean {
488
- return proto3.util.equals(GetCurrentUserRequest, a, b);
489
- }
490
- }
285
+ /**
286
+ * Describes the message scalekit.v1.users.GetCurrentUserRequest.
287
+ * Use `create(GetCurrentUserRequestSchema)` to create a new message.
288
+ */
289
+ export const GetCurrentUserRequestSchema: GenMessage<GetCurrentUserRequest> = /*@__PURE__*/
290
+ messageDesc(file_scalekit_v1_users_users, 9);
491
291
 
492
292
  /**
493
293
  * @generated from message scalekit.v1.users.ListOrganizationUsersRequest
494
294
  */
495
- export class ListOrganizationUsersRequest extends Message<ListOrganizationUsersRequest> {
295
+ export type ListOrganizationUsersRequest = Message<"scalekit.v1.users.ListOrganizationUsersRequest"> & {
496
296
  /**
497
297
  * @generated from field: string organization_id = 1;
498
298
  */
499
- organizationId = "";
299
+ organizationId: string;
500
300
 
501
301
  /**
502
302
  * @generated from field: uint32 page_size = 2;
503
303
  */
504
- pageSize = 0;
304
+ pageSize: number;
505
305
 
506
306
  /**
507
307
  * @generated from field: string page_token = 3;
508
308
  */
509
- pageToken = "";
510
-
511
- constructor(data?: PartialMessage<ListOrganizationUsersRequest>) {
512
- super();
513
- proto3.util.initPartial(data, this);
514
- }
515
-
516
- static readonly runtime: typeof proto3 = proto3;
517
- static readonly typeName = "scalekit.v1.users.ListOrganizationUsersRequest";
518
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
519
- { no: 1, name: "organization_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
520
- { no: 2, name: "page_size", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
521
- { no: 3, name: "page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
522
- ]);
523
-
524
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListOrganizationUsersRequest {
525
- return new ListOrganizationUsersRequest().fromBinary(bytes, options);
526
- }
309
+ pageToken: string;
310
+ };
527
311
 
528
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListOrganizationUsersRequest {
529
- return new ListOrganizationUsersRequest().fromJson(jsonValue, options);
530
- }
531
-
532
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListOrganizationUsersRequest {
533
- return new ListOrganizationUsersRequest().fromJsonString(jsonString, options);
534
- }
535
-
536
- static equals(a: ListOrganizationUsersRequest | PlainMessage<ListOrganizationUsersRequest> | undefined, b: ListOrganizationUsersRequest | PlainMessage<ListOrganizationUsersRequest> | undefined): boolean {
537
- return proto3.util.equals(ListOrganizationUsersRequest, a, b);
538
- }
539
- }
312
+ /**
313
+ * Describes the message scalekit.v1.users.ListOrganizationUsersRequest.
314
+ * Use `create(ListOrganizationUsersRequestSchema)` to create a new message.
315
+ */
316
+ export const ListOrganizationUsersRequestSchema: GenMessage<ListOrganizationUsersRequest> = /*@__PURE__*/
317
+ messageDesc(file_scalekit_v1_users_users, 10);
540
318
 
541
319
  /**
542
320
  * @generated from message scalekit.v1.users.ListOrganizationUsersResponse
543
321
  */
544
- export class ListOrganizationUsersResponse extends Message<ListOrganizationUsersResponse> {
322
+ export type ListOrganizationUsersResponse = Message<"scalekit.v1.users.ListOrganizationUsersResponse"> & {
545
323
  /**
546
324
  * @generated from field: string next_page_token = 1;
547
325
  */
548
- nextPageToken = "";
326
+ nextPageToken: string;
549
327
 
550
328
  /**
551
329
  * @generated from field: uint32 total_size = 2;
552
330
  */
553
- totalSize = 0;
331
+ totalSize: number;
554
332
 
555
333
  /**
556
334
  * @generated from field: repeated scalekit.v1.users.User users = 3;
557
335
  */
558
- users: User[] = [];
336
+ users: User[];
559
337
 
560
338
  /**
561
339
  * @generated from field: string prev_page_token = 4;
562
340
  */
563
- prevPageToken = "";
564
-
565
- constructor(data?: PartialMessage<ListOrganizationUsersResponse>) {
566
- super();
567
- proto3.util.initPartial(data, this);
568
- }
569
-
570
- static readonly runtime: typeof proto3 = proto3;
571
- static readonly typeName = "scalekit.v1.users.ListOrganizationUsersResponse";
572
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
573
- { no: 1, name: "next_page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
574
- { no: 2, name: "total_size", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
575
- { no: 3, name: "users", kind: "message", T: User, repeated: true },
576
- { no: 4, name: "prev_page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
577
- ]);
578
-
579
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListOrganizationUsersResponse {
580
- return new ListOrganizationUsersResponse().fromBinary(bytes, options);
581
- }
582
-
583
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListOrganizationUsersResponse {
584
- return new ListOrganizationUsersResponse().fromJson(jsonValue, options);
585
- }
586
-
587
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListOrganizationUsersResponse {
588
- return new ListOrganizationUsersResponse().fromJsonString(jsonString, options);
589
- }
341
+ prevPageToken: string;
342
+ };
590
343
 
591
- static equals(a: ListOrganizationUsersResponse | PlainMessage<ListOrganizationUsersResponse> | undefined, b: ListOrganizationUsersResponse | PlainMessage<ListOrganizationUsersResponse> | undefined): boolean {
592
- return proto3.util.equals(ListOrganizationUsersResponse, a, b);
593
- }
594
- }
344
+ /**
345
+ * Describes the message scalekit.v1.users.ListOrganizationUsersResponse.
346
+ * Use `create(ListOrganizationUsersResponseSchema)` to create a new message.
347
+ */
348
+ export const ListOrganizationUsersResponseSchema: GenMessage<ListOrganizationUsersResponse> = /*@__PURE__*/
349
+ messageDesc(file_scalekit_v1_users_users, 11);
595
350
 
596
351
  /**
597
352
  * @generated from message scalekit.v1.users.DeleteMembershipRequest
598
353
  */
599
- export class DeleteMembershipRequest extends Message<DeleteMembershipRequest> {
354
+ export type DeleteMembershipRequest = Message<"scalekit.v1.users.DeleteMembershipRequest"> & {
600
355
  /**
601
356
  * @generated from field: string organization_id = 1;
602
357
  */
603
- organizationId = "";
358
+ organizationId: string;
604
359
 
605
360
  /**
606
361
  * @generated from oneof scalekit.v1.users.DeleteMembershipRequest.identities
@@ -617,52 +372,29 @@ export class DeleteMembershipRequest extends Message<DeleteMembershipRequest> {
617
372
  */
618
373
  value: string;
619
374
  case: "externalId";
620
- } | { case: undefined; value?: undefined } = { case: undefined };
375
+ } | { case: undefined; value?: undefined };
621
376
 
622
377
  /**
623
378
  * @generated from field: optional bool cascade = 5;
624
379
  */
625
380
  cascade?: boolean;
381
+ };
626
382
 
627
- constructor(data?: PartialMessage<DeleteMembershipRequest>) {
628
- super();
629
- proto3.util.initPartial(data, this);
630
- }
631
-
632
- static readonly runtime: typeof proto3 = proto3;
633
- static readonly typeName = "scalekit.v1.users.DeleteMembershipRequest";
634
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
635
- { no: 1, name: "organization_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
636
- { no: 2, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "identities" },
637
- { no: 3, name: "external_id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "identities" },
638
- { no: 5, name: "cascade", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
639
- ]);
640
-
641
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteMembershipRequest {
642
- return new DeleteMembershipRequest().fromBinary(bytes, options);
643
- }
644
-
645
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteMembershipRequest {
646
- return new DeleteMembershipRequest().fromJson(jsonValue, options);
647
- }
648
-
649
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteMembershipRequest {
650
- return new DeleteMembershipRequest().fromJsonString(jsonString, options);
651
- }
652
-
653
- static equals(a: DeleteMembershipRequest | PlainMessage<DeleteMembershipRequest> | undefined, b: DeleteMembershipRequest | PlainMessage<DeleteMembershipRequest> | undefined): boolean {
654
- return proto3.util.equals(DeleteMembershipRequest, a, b);
655
- }
656
- }
383
+ /**
384
+ * Describes the message scalekit.v1.users.DeleteMembershipRequest.
385
+ * Use `create(DeleteMembershipRequestSchema)` to create a new message.
386
+ */
387
+ export const DeleteMembershipRequestSchema: GenMessage<DeleteMembershipRequest> = /*@__PURE__*/
388
+ messageDesc(file_scalekit_v1_users_users, 12);
657
389
 
658
390
  /**
659
391
  * @generated from message scalekit.v1.users.CreateMembershipRequest
660
392
  */
661
- export class CreateMembershipRequest extends Message<CreateMembershipRequest> {
393
+ export type CreateMembershipRequest = Message<"scalekit.v1.users.CreateMembershipRequest"> & {
662
394
  /**
663
395
  * @generated from field: string organization_id = 1;
664
396
  */
665
- organizationId = "";
397
+ organizationId: string;
666
398
 
667
399
  /**
668
400
  * @generated from field: scalekit.v1.users.CreateMembership membership = 2;
@@ -684,288 +416,155 @@ export class CreateMembershipRequest extends Message<CreateMembershipRequest> {
684
416
  */
685
417
  value: string;
686
418
  case: "externalId";
687
- } | { case: undefined; value?: undefined } = { case: undefined };
419
+ } | { case: undefined; value?: undefined };
688
420
 
689
421
  /**
690
422
  * @generated from field: optional bool send_invitation_email = 5;
691
423
  */
692
424
  sendInvitationEmail?: boolean;
425
+ };
693
426
 
694
- constructor(data?: PartialMessage<CreateMembershipRequest>) {
695
- super();
696
- proto3.util.initPartial(data, this);
697
- }
698
-
699
- static readonly runtime: typeof proto3 = proto3;
700
- static readonly typeName = "scalekit.v1.users.CreateMembershipRequest";
701
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
702
- { no: 1, name: "organization_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
703
- { no: 2, name: "membership", kind: "message", T: CreateMembership },
704
- { no: 3, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "identities" },
705
- { no: 4, name: "external_id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "identities" },
706
- { no: 5, name: "send_invitation_email", kind: "scalar", T: 8 /* ScalarType.BOOL */, opt: true },
707
- ]);
708
-
709
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateMembershipRequest {
710
- return new CreateMembershipRequest().fromBinary(bytes, options);
711
- }
712
-
713
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateMembershipRequest {
714
- return new CreateMembershipRequest().fromJson(jsonValue, options);
715
- }
716
-
717
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateMembershipRequest {
718
- return new CreateMembershipRequest().fromJsonString(jsonString, options);
719
- }
720
-
721
- static equals(a: CreateMembershipRequest | PlainMessage<CreateMembershipRequest> | undefined, b: CreateMembershipRequest | PlainMessage<CreateMembershipRequest> | undefined): boolean {
722
- return proto3.util.equals(CreateMembershipRequest, a, b);
723
- }
724
- }
427
+ /**
428
+ * Describes the message scalekit.v1.users.CreateMembershipRequest.
429
+ * Use `create(CreateMembershipRequestSchema)` to create a new message.
430
+ */
431
+ export const CreateMembershipRequestSchema: GenMessage<CreateMembershipRequest> = /*@__PURE__*/
432
+ messageDesc(file_scalekit_v1_users_users, 13);
725
433
 
726
434
  /**
727
435
  * @generated from message scalekit.v1.users.CreateMembershipResponse
728
436
  */
729
- export class CreateMembershipResponse extends Message<CreateMembershipResponse> {
437
+ export type CreateMembershipResponse = Message<"scalekit.v1.users.CreateMembershipResponse"> & {
730
438
  /**
731
439
  * @generated from field: scalekit.v1.users.User user = 1;
732
440
  */
733
441
  user?: User;
442
+ };
734
443
 
735
- constructor(data?: PartialMessage<CreateMembershipResponse>) {
736
- super();
737
- proto3.util.initPartial(data, this);
738
- }
739
-
740
- static readonly runtime: typeof proto3 = proto3;
741
- static readonly typeName = "scalekit.v1.users.CreateMembershipResponse";
742
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
743
- { no: 1, name: "user", kind: "message", T: User },
744
- ]);
745
-
746
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateMembershipResponse {
747
- return new CreateMembershipResponse().fromBinary(bytes, options);
748
- }
749
-
750
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateMembershipResponse {
751
- return new CreateMembershipResponse().fromJson(jsonValue, options);
752
- }
753
-
754
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateMembershipResponse {
755
- return new CreateMembershipResponse().fromJsonString(jsonString, options);
756
- }
757
-
758
- static equals(a: CreateMembershipResponse | PlainMessage<CreateMembershipResponse> | undefined, b: CreateMembershipResponse | PlainMessage<CreateMembershipResponse> | undefined): boolean {
759
- return proto3.util.equals(CreateMembershipResponse, a, b);
760
- }
761
- }
444
+ /**
445
+ * Describes the message scalekit.v1.users.CreateMembershipResponse.
446
+ * Use `create(CreateMembershipResponseSchema)` to create a new message.
447
+ */
448
+ export const CreateMembershipResponseSchema: GenMessage<CreateMembershipResponse> = /*@__PURE__*/
449
+ messageDesc(file_scalekit_v1_users_users, 14);
762
450
 
763
451
  /**
764
452
  * @generated from message scalekit.v1.users.ListUsersRequest
765
453
  */
766
- export class ListUsersRequest extends Message<ListUsersRequest> {
454
+ export type ListUsersRequest = Message<"scalekit.v1.users.ListUsersRequest"> & {
767
455
  /**
768
456
  * @generated from field: uint32 page_size = 1;
769
457
  */
770
- pageSize = 0;
458
+ pageSize: number;
771
459
 
772
460
  /**
773
461
  * @generated from field: string page_token = 2;
774
462
  */
775
- pageToken = "";
776
-
777
- constructor(data?: PartialMessage<ListUsersRequest>) {
778
- super();
779
- proto3.util.initPartial(data, this);
780
- }
781
-
782
- static readonly runtime: typeof proto3 = proto3;
783
- static readonly typeName = "scalekit.v1.users.ListUsersRequest";
784
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
785
- { no: 1, name: "page_size", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
786
- { no: 2, name: "page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
787
- ]);
788
-
789
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListUsersRequest {
790
- return new ListUsersRequest().fromBinary(bytes, options);
791
- }
463
+ pageToken: string;
464
+ };
792
465
 
793
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListUsersRequest {
794
- return new ListUsersRequest().fromJson(jsonValue, options);
795
- }
796
-
797
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListUsersRequest {
798
- return new ListUsersRequest().fromJsonString(jsonString, options);
799
- }
800
-
801
- static equals(a: ListUsersRequest | PlainMessage<ListUsersRequest> | undefined, b: ListUsersRequest | PlainMessage<ListUsersRequest> | undefined): boolean {
802
- return proto3.util.equals(ListUsersRequest, a, b);
803
- }
804
- }
466
+ /**
467
+ * Describes the message scalekit.v1.users.ListUsersRequest.
468
+ * Use `create(ListUsersRequestSchema)` to create a new message.
469
+ */
470
+ export const ListUsersRequestSchema: GenMessage<ListUsersRequest> = /*@__PURE__*/
471
+ messageDesc(file_scalekit_v1_users_users, 15);
805
472
 
806
473
  /**
807
474
  * @generated from message scalekit.v1.users.ListUsersResponse
808
475
  */
809
- export class ListUsersResponse extends Message<ListUsersResponse> {
476
+ export type ListUsersResponse = Message<"scalekit.v1.users.ListUsersResponse"> & {
810
477
  /**
811
478
  * @generated from field: repeated scalekit.v1.users.User users = 1;
812
479
  */
813
- users: User[] = [];
480
+ users: User[];
814
481
 
815
482
  /**
816
483
  * @generated from field: string next_page_token = 2;
817
484
  */
818
- nextPageToken = "";
485
+ nextPageToken: string;
819
486
 
820
487
  /**
821
488
  * @generated from field: uint32 total_size = 3;
822
489
  */
823
- totalSize = 0;
490
+ totalSize: number;
824
491
 
825
492
  /**
826
493
  * @generated from field: string prev_page_token = 4;
827
494
  */
828
- prevPageToken = "";
829
-
830
- constructor(data?: PartialMessage<ListUsersResponse>) {
831
- super();
832
- proto3.util.initPartial(data, this);
833
- }
834
-
835
- static readonly runtime: typeof proto3 = proto3;
836
- static readonly typeName = "scalekit.v1.users.ListUsersResponse";
837
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
838
- { no: 1, name: "users", kind: "message", T: User, repeated: true },
839
- { no: 2, name: "next_page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
840
- { no: 3, name: "total_size", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
841
- { no: 4, name: "prev_page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
842
- ]);
843
-
844
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListUsersResponse {
845
- return new ListUsersResponse().fromBinary(bytes, options);
846
- }
847
-
848
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListUsersResponse {
849
- return new ListUsersResponse().fromJson(jsonValue, options);
850
- }
851
-
852
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListUsersResponse {
853
- return new ListUsersResponse().fromJsonString(jsonString, options);
854
- }
495
+ prevPageToken: string;
496
+ };
855
497
 
856
- static equals(a: ListUsersResponse | PlainMessage<ListUsersResponse> | undefined, b: ListUsersResponse | PlainMessage<ListUsersResponse> | undefined): boolean {
857
- return proto3.util.equals(ListUsersResponse, a, b);
858
- }
859
- }
498
+ /**
499
+ * Describes the message scalekit.v1.users.ListUsersResponse.
500
+ * Use `create(ListUsersResponseSchema)` to create a new message.
501
+ */
502
+ export const ListUsersResponseSchema: GenMessage<ListUsersResponse> = /*@__PURE__*/
503
+ messageDesc(file_scalekit_v1_users_users, 16);
860
504
 
861
505
  /**
862
506
  * @generated from message scalekit.v1.users.SearchUsersRequest
863
507
  */
864
- export class SearchUsersRequest extends Message<SearchUsersRequest> {
508
+ export type SearchUsersRequest = Message<"scalekit.v1.users.SearchUsersRequest"> & {
865
509
  /**
866
510
  * @generated from field: string query = 1;
867
511
  */
868
- query = "";
512
+ query: string;
869
513
 
870
514
  /**
871
515
  * @generated from field: uint32 page_size = 2;
872
516
  */
873
- pageSize = 0;
517
+ pageSize: number;
874
518
 
875
519
  /**
876
520
  * @generated from field: string page_token = 3;
877
521
  */
878
- pageToken = "";
879
-
880
- constructor(data?: PartialMessage<SearchUsersRequest>) {
881
- super();
882
- proto3.util.initPartial(data, this);
883
- }
884
-
885
- static readonly runtime: typeof proto3 = proto3;
886
- static readonly typeName = "scalekit.v1.users.SearchUsersRequest";
887
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
888
- { no: 1, name: "query", kind: "scalar", T: 9 /* ScalarType.STRING */ },
889
- { no: 2, name: "page_size", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
890
- { no: 3, name: "page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
891
- ]);
522
+ pageToken: string;
523
+ };
892
524
 
893
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SearchUsersRequest {
894
- return new SearchUsersRequest().fromBinary(bytes, options);
895
- }
896
-
897
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SearchUsersRequest {
898
- return new SearchUsersRequest().fromJson(jsonValue, options);
899
- }
900
-
901
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SearchUsersRequest {
902
- return new SearchUsersRequest().fromJsonString(jsonString, options);
903
- }
904
-
905
- static equals(a: SearchUsersRequest | PlainMessage<SearchUsersRequest> | undefined, b: SearchUsersRequest | PlainMessage<SearchUsersRequest> | undefined): boolean {
906
- return proto3.util.equals(SearchUsersRequest, a, b);
907
- }
908
- }
525
+ /**
526
+ * Describes the message scalekit.v1.users.SearchUsersRequest.
527
+ * Use `create(SearchUsersRequestSchema)` to create a new message.
528
+ */
529
+ export const SearchUsersRequestSchema: GenMessage<SearchUsersRequest> = /*@__PURE__*/
530
+ messageDesc(file_scalekit_v1_users_users, 17);
909
531
 
910
532
  /**
911
533
  * @generated from message scalekit.v1.users.SearchUsersResponse
912
534
  */
913
- export class SearchUsersResponse extends Message<SearchUsersResponse> {
535
+ export type SearchUsersResponse = Message<"scalekit.v1.users.SearchUsersResponse"> & {
914
536
  /**
915
537
  * @generated from field: string next_page_token = 1;
916
538
  */
917
- nextPageToken = "";
539
+ nextPageToken: string;
918
540
 
919
541
  /**
920
542
  * @generated from field: uint32 total_size = 2;
921
543
  */
922
- totalSize = 0;
544
+ totalSize: number;
923
545
 
924
546
  /**
925
547
  * @generated from field: repeated scalekit.v1.users.User users = 3;
926
548
  */
927
- users: User[] = [];
549
+ users: User[];
928
550
 
929
551
  /**
930
552
  * @generated from field: string prev_page_token = 4;
931
553
  */
932
- prevPageToken = "";
933
-
934
- constructor(data?: PartialMessage<SearchUsersResponse>) {
935
- super();
936
- proto3.util.initPartial(data, this);
937
- }
938
-
939
- static readonly runtime: typeof proto3 = proto3;
940
- static readonly typeName = "scalekit.v1.users.SearchUsersResponse";
941
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
942
- { no: 1, name: "next_page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
943
- { no: 2, name: "total_size", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
944
- { no: 3, name: "users", kind: "message", T: User, repeated: true },
945
- { no: 4, name: "prev_page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
946
- ]);
947
-
948
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SearchUsersResponse {
949
- return new SearchUsersResponse().fromBinary(bytes, options);
950
- }
951
-
952
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SearchUsersResponse {
953
- return new SearchUsersResponse().fromJson(jsonValue, options);
954
- }
554
+ prevPageToken: string;
555
+ };
955
556
 
956
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SearchUsersResponse {
957
- return new SearchUsersResponse().fromJsonString(jsonString, options);
958
- }
959
-
960
- static equals(a: SearchUsersResponse | PlainMessage<SearchUsersResponse> | undefined, b: SearchUsersResponse | PlainMessage<SearchUsersResponse> | undefined): boolean {
961
- return proto3.util.equals(SearchUsersResponse, a, b);
962
- }
963
- }
557
+ /**
558
+ * Describes the message scalekit.v1.users.SearchUsersResponse.
559
+ * Use `create(SearchUsersResponseSchema)` to create a new message.
560
+ */
561
+ export const SearchUsersResponseSchema: GenMessage<SearchUsersResponse> = /*@__PURE__*/
562
+ messageDesc(file_scalekit_v1_users_users, 18);
964
563
 
965
564
  /**
966
565
  * @generated from message scalekit.v1.users.DeleteUserRequest
967
566
  */
968
- export class DeleteUserRequest extends Message<DeleteUserRequest> {
567
+ export type DeleteUserRequest = Message<"scalekit.v1.users.DeleteUserRequest"> & {
969
568
  /**
970
569
  * @generated from oneof scalekit.v1.users.DeleteUserRequest.identities
971
570
  */
@@ -981,45 +580,24 @@ export class DeleteUserRequest extends Message<DeleteUserRequest> {
981
580
  */
982
581
  value: string;
983
582
  case: "externalId";
984
- } | { case: undefined; value?: undefined } = { case: undefined };
985
-
986
- constructor(data?: PartialMessage<DeleteUserRequest>) {
987
- super();
988
- proto3.util.initPartial(data, this);
989
- }
583
+ } | { case: undefined; value?: undefined };
584
+ };
990
585
 
991
- static readonly runtime: typeof proto3 = proto3;
992
- static readonly typeName = "scalekit.v1.users.DeleteUserRequest";
993
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
994
- { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "identities" },
995
- { no: 2, name: "external_id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "identities" },
996
- ]);
997
-
998
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): DeleteUserRequest {
999
- return new DeleteUserRequest().fromBinary(bytes, options);
1000
- }
1001
-
1002
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): DeleteUserRequest {
1003
- return new DeleteUserRequest().fromJson(jsonValue, options);
1004
- }
1005
-
1006
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): DeleteUserRequest {
1007
- return new DeleteUserRequest().fromJsonString(jsonString, options);
1008
- }
1009
-
1010
- static equals(a: DeleteUserRequest | PlainMessage<DeleteUserRequest> | undefined, b: DeleteUserRequest | PlainMessage<DeleteUserRequest> | undefined): boolean {
1011
- return proto3.util.equals(DeleteUserRequest, a, b);
1012
- }
1013
- }
586
+ /**
587
+ * Describes the message scalekit.v1.users.DeleteUserRequest.
588
+ * Use `create(DeleteUserRequestSchema)` to create a new message.
589
+ */
590
+ export const DeleteUserRequestSchema: GenMessage<DeleteUserRequest> = /*@__PURE__*/
591
+ messageDesc(file_scalekit_v1_users_users, 19);
1014
592
 
1015
593
  /**
1016
594
  * @generated from message scalekit.v1.users.UpdateMembershipRequest
1017
595
  */
1018
- export class UpdateMembershipRequest extends Message<UpdateMembershipRequest> {
596
+ export type UpdateMembershipRequest = Message<"scalekit.v1.users.UpdateMembershipRequest"> & {
1019
597
  /**
1020
598
  * @generated from field: string organization_id = 1;
1021
599
  */
1022
- organizationId = "";
600
+ organizationId: string;
1023
601
 
1024
602
  /**
1025
603
  * @generated from oneof scalekit.v1.users.UpdateMembershipRequest.identities
@@ -1036,291 +614,159 @@ export class UpdateMembershipRequest extends Message<UpdateMembershipRequest> {
1036
614
  */
1037
615
  value: string;
1038
616
  case: "externalId";
1039
- } | { case: undefined; value?: undefined } = { case: undefined };
617
+ } | { case: undefined; value?: undefined };
1040
618
 
1041
619
  /**
1042
620
  * @generated from field: scalekit.v1.users.UpdateMembership membership = 5;
1043
621
  */
1044
622
  membership?: UpdateMembership;
623
+ };
1045
624
 
1046
- constructor(data?: PartialMessage<UpdateMembershipRequest>) {
1047
- super();
1048
- proto3.util.initPartial(data, this);
1049
- }
1050
-
1051
- static readonly runtime: typeof proto3 = proto3;
1052
- static readonly typeName = "scalekit.v1.users.UpdateMembershipRequest";
1053
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1054
- { no: 1, name: "organization_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1055
- { no: 2, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "identities" },
1056
- { no: 3, name: "external_id", kind: "scalar", T: 9 /* ScalarType.STRING */, oneof: "identities" },
1057
- { no: 5, name: "membership", kind: "message", T: UpdateMembership },
1058
- ]);
1059
-
1060
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateMembershipRequest {
1061
- return new UpdateMembershipRequest().fromBinary(bytes, options);
1062
- }
1063
-
1064
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateMembershipRequest {
1065
- return new UpdateMembershipRequest().fromJson(jsonValue, options);
1066
- }
1067
-
1068
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateMembershipRequest {
1069
- return new UpdateMembershipRequest().fromJsonString(jsonString, options);
1070
- }
1071
-
1072
- static equals(a: UpdateMembershipRequest | PlainMessage<UpdateMembershipRequest> | undefined, b: UpdateMembershipRequest | PlainMessage<UpdateMembershipRequest> | undefined): boolean {
1073
- return proto3.util.equals(UpdateMembershipRequest, a, b);
1074
- }
1075
- }
625
+ /**
626
+ * Describes the message scalekit.v1.users.UpdateMembershipRequest.
627
+ * Use `create(UpdateMembershipRequestSchema)` to create a new message.
628
+ */
629
+ export const UpdateMembershipRequestSchema: GenMessage<UpdateMembershipRequest> = /*@__PURE__*/
630
+ messageDesc(file_scalekit_v1_users_users, 20);
1076
631
 
1077
632
  /**
1078
633
  * @generated from message scalekit.v1.users.UpdateMembership
1079
634
  */
1080
- export class UpdateMembership extends Message<UpdateMembership> {
635
+ export type UpdateMembership = Message<"scalekit.v1.users.UpdateMembership"> & {
1081
636
  /**
1082
637
  * @generated from field: repeated scalekit.v1.commons.Role roles = 4;
1083
638
  */
1084
- roles: Role[] = [];
639
+ roles: Role[];
1085
640
 
1086
641
  /**
1087
642
  * @generated from field: map<string, string> metadata = 7;
1088
643
  */
1089
- metadata: { [key: string]: string } = {};
1090
-
1091
- constructor(data?: PartialMessage<UpdateMembership>) {
1092
- super();
1093
- proto3.util.initPartial(data, this);
1094
- }
1095
-
1096
- static readonly runtime: typeof proto3 = proto3;
1097
- static readonly typeName = "scalekit.v1.users.UpdateMembership";
1098
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1099
- { no: 4, name: "roles", kind: "message", T: Role, repeated: true },
1100
- { no: 7, name: "metadata", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} },
1101
- ]);
1102
-
1103
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateMembership {
1104
- return new UpdateMembership().fromBinary(bytes, options);
1105
- }
1106
-
1107
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateMembership {
1108
- return new UpdateMembership().fromJson(jsonValue, options);
1109
- }
644
+ metadata: { [key: string]: string };
645
+ };
1110
646
 
1111
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateMembership {
1112
- return new UpdateMembership().fromJsonString(jsonString, options);
1113
- }
1114
-
1115
- static equals(a: UpdateMembership | PlainMessage<UpdateMembership> | undefined, b: UpdateMembership | PlainMessage<UpdateMembership> | undefined): boolean {
1116
- return proto3.util.equals(UpdateMembership, a, b);
1117
- }
1118
- }
647
+ /**
648
+ * Describes the message scalekit.v1.users.UpdateMembership.
649
+ * Use `create(UpdateMembershipSchema)` to create a new message.
650
+ */
651
+ export const UpdateMembershipSchema: GenMessage<UpdateMembership> = /*@__PURE__*/
652
+ messageDesc(file_scalekit_v1_users_users, 21);
1119
653
 
1120
654
  /**
1121
655
  * @generated from message scalekit.v1.users.CreateMembership
1122
656
  */
1123
- export class CreateMembership extends Message<CreateMembership> {
657
+ export type CreateMembership = Message<"scalekit.v1.users.CreateMembership"> & {
1124
658
  /**
1125
659
  * @generated from field: repeated scalekit.v1.commons.Role roles = 4;
1126
660
  */
1127
- roles: Role[] = [];
661
+ roles: Role[];
1128
662
 
1129
663
  /**
1130
664
  * @generated from field: map<string, string> metadata = 7;
1131
665
  */
1132
- metadata: { [key: string]: string } = {};
666
+ metadata: { [key: string]: string };
1133
667
 
1134
668
  /**
1135
669
  * @generated from field: optional string inviter_email = 8;
1136
670
  */
1137
671
  inviterEmail?: string;
672
+ };
1138
673
 
1139
- constructor(data?: PartialMessage<CreateMembership>) {
1140
- super();
1141
- proto3.util.initPartial(data, this);
1142
- }
1143
-
1144
- static readonly runtime: typeof proto3 = proto3;
1145
- static readonly typeName = "scalekit.v1.users.CreateMembership";
1146
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1147
- { no: 4, name: "roles", kind: "message", T: Role, repeated: true },
1148
- { no: 7, name: "metadata", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} },
1149
- { no: 8, name: "inviter_email", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1150
- ]);
1151
-
1152
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateMembership {
1153
- return new CreateMembership().fromBinary(bytes, options);
1154
- }
1155
-
1156
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateMembership {
1157
- return new CreateMembership().fromJson(jsonValue, options);
1158
- }
1159
-
1160
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateMembership {
1161
- return new CreateMembership().fromJsonString(jsonString, options);
1162
- }
1163
-
1164
- static equals(a: CreateMembership | PlainMessage<CreateMembership> | undefined, b: CreateMembership | PlainMessage<CreateMembership> | undefined): boolean {
1165
- return proto3.util.equals(CreateMembership, a, b);
1166
- }
1167
- }
674
+ /**
675
+ * Describes the message scalekit.v1.users.CreateMembership.
676
+ * Use `create(CreateMembershipSchema)` to create a new message.
677
+ */
678
+ export const CreateMembershipSchema: GenMessage<CreateMembership> = /*@__PURE__*/
679
+ messageDesc(file_scalekit_v1_users_users, 22);
1168
680
 
1169
681
  /**
1170
682
  * @generated from message scalekit.v1.users.UpdateMembershipResponse
1171
683
  */
1172
- export class UpdateMembershipResponse extends Message<UpdateMembershipResponse> {
684
+ export type UpdateMembershipResponse = Message<"scalekit.v1.users.UpdateMembershipResponse"> & {
1173
685
  /**
1174
686
  * @generated from field: scalekit.v1.users.User user = 1;
1175
687
  */
1176
688
  user?: User;
689
+ };
1177
690
 
1178
- constructor(data?: PartialMessage<UpdateMembershipResponse>) {
1179
- super();
1180
- proto3.util.initPartial(data, this);
1181
- }
1182
-
1183
- static readonly runtime: typeof proto3 = proto3;
1184
- static readonly typeName = "scalekit.v1.users.UpdateMembershipResponse";
1185
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1186
- { no: 1, name: "user", kind: "message", T: User },
1187
- ]);
1188
-
1189
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateMembershipResponse {
1190
- return new UpdateMembershipResponse().fromBinary(bytes, options);
1191
- }
1192
-
1193
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateMembershipResponse {
1194
- return new UpdateMembershipResponse().fromJson(jsonValue, options);
1195
- }
1196
-
1197
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateMembershipResponse {
1198
- return new UpdateMembershipResponse().fromJsonString(jsonString, options);
1199
- }
1200
-
1201
- static equals(a: UpdateMembershipResponse | PlainMessage<UpdateMembershipResponse> | undefined, b: UpdateMembershipResponse | PlainMessage<UpdateMembershipResponse> | undefined): boolean {
1202
- return proto3.util.equals(UpdateMembershipResponse, a, b);
1203
- }
1204
- }
691
+ /**
692
+ * Describes the message scalekit.v1.users.UpdateMembershipResponse.
693
+ * Use `create(UpdateMembershipResponseSchema)` to create a new message.
694
+ */
695
+ export const UpdateMembershipResponseSchema: GenMessage<UpdateMembershipResponse> = /*@__PURE__*/
696
+ messageDesc(file_scalekit_v1_users_users, 23);
1205
697
 
1206
698
  /**
1207
699
  * @generated from message scalekit.v1.users.SearchOrganizationUsersRequest
1208
700
  */
1209
- export class SearchOrganizationUsersRequest extends Message<SearchOrganizationUsersRequest> {
701
+ export type SearchOrganizationUsersRequest = Message<"scalekit.v1.users.SearchOrganizationUsersRequest"> & {
1210
702
  /**
1211
703
  * @generated from field: string organization_id = 1;
1212
704
  */
1213
- organizationId = "";
705
+ organizationId: string;
1214
706
 
1215
707
  /**
1216
708
  * @generated from field: string query = 2;
1217
709
  */
1218
- query = "";
710
+ query: string;
1219
711
 
1220
712
  /**
1221
713
  * @generated from field: uint32 page_size = 3;
1222
714
  */
1223
- pageSize = 0;
715
+ pageSize: number;
1224
716
 
1225
717
  /**
1226
718
  * @generated from field: string page_token = 4;
1227
719
  */
1228
- pageToken = "";
1229
-
1230
- constructor(data?: PartialMessage<SearchOrganizationUsersRequest>) {
1231
- super();
1232
- proto3.util.initPartial(data, this);
1233
- }
720
+ pageToken: string;
721
+ };
1234
722
 
1235
- static readonly runtime: typeof proto3 = proto3;
1236
- static readonly typeName = "scalekit.v1.users.SearchOrganizationUsersRequest";
1237
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1238
- { no: 1, name: "organization_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1239
- { no: 2, name: "query", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1240
- { no: 3, name: "page_size", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1241
- { no: 4, name: "page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1242
- ]);
1243
-
1244
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SearchOrganizationUsersRequest {
1245
- return new SearchOrganizationUsersRequest().fromBinary(bytes, options);
1246
- }
1247
-
1248
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SearchOrganizationUsersRequest {
1249
- return new SearchOrganizationUsersRequest().fromJson(jsonValue, options);
1250
- }
1251
-
1252
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SearchOrganizationUsersRequest {
1253
- return new SearchOrganizationUsersRequest().fromJsonString(jsonString, options);
1254
- }
1255
-
1256
- static equals(a: SearchOrganizationUsersRequest | PlainMessage<SearchOrganizationUsersRequest> | undefined, b: SearchOrganizationUsersRequest | PlainMessage<SearchOrganizationUsersRequest> | undefined): boolean {
1257
- return proto3.util.equals(SearchOrganizationUsersRequest, a, b);
1258
- }
1259
- }
723
+ /**
724
+ * Describes the message scalekit.v1.users.SearchOrganizationUsersRequest.
725
+ * Use `create(SearchOrganizationUsersRequestSchema)` to create a new message.
726
+ */
727
+ export const SearchOrganizationUsersRequestSchema: GenMessage<SearchOrganizationUsersRequest> = /*@__PURE__*/
728
+ messageDesc(file_scalekit_v1_users_users, 24);
1260
729
 
1261
730
  /**
1262
731
  * @generated from message scalekit.v1.users.SearchOrganizationUsersResponse
1263
732
  */
1264
- export class SearchOrganizationUsersResponse extends Message<SearchOrganizationUsersResponse> {
733
+ export type SearchOrganizationUsersResponse = Message<"scalekit.v1.users.SearchOrganizationUsersResponse"> & {
1265
734
  /**
1266
735
  * @generated from field: string next_page_token = 1;
1267
736
  */
1268
- nextPageToken = "";
737
+ nextPageToken: string;
1269
738
 
1270
739
  /**
1271
740
  * @generated from field: uint32 total_size = 2;
1272
741
  */
1273
- totalSize = 0;
742
+ totalSize: number;
1274
743
 
1275
744
  /**
1276
745
  * @generated from field: repeated scalekit.v1.users.User users = 3;
1277
746
  */
1278
- users: User[] = [];
747
+ users: User[];
1279
748
 
1280
749
  /**
1281
750
  * @generated from field: string prev_page_token = 4;
1282
751
  */
1283
- prevPageToken = "";
1284
-
1285
- constructor(data?: PartialMessage<SearchOrganizationUsersResponse>) {
1286
- super();
1287
- proto3.util.initPartial(data, this);
1288
- }
1289
-
1290
- static readonly runtime: typeof proto3 = proto3;
1291
- static readonly typeName = "scalekit.v1.users.SearchOrganizationUsersResponse";
1292
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1293
- { no: 1, name: "next_page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1294
- { no: 2, name: "total_size", kind: "scalar", T: 13 /* ScalarType.UINT32 */ },
1295
- { no: 3, name: "users", kind: "message", T: User, repeated: true },
1296
- { no: 4, name: "prev_page_token", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1297
- ]);
752
+ prevPageToken: string;
753
+ };
1298
754
 
1299
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): SearchOrganizationUsersResponse {
1300
- return new SearchOrganizationUsersResponse().fromBinary(bytes, options);
1301
- }
1302
-
1303
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): SearchOrganizationUsersResponse {
1304
- return new SearchOrganizationUsersResponse().fromJson(jsonValue, options);
1305
- }
1306
-
1307
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): SearchOrganizationUsersResponse {
1308
- return new SearchOrganizationUsersResponse().fromJsonString(jsonString, options);
1309
- }
1310
-
1311
- static equals(a: SearchOrganizationUsersResponse | PlainMessage<SearchOrganizationUsersResponse> | undefined, b: SearchOrganizationUsersResponse | PlainMessage<SearchOrganizationUsersResponse> | undefined): boolean {
1312
- return proto3.util.equals(SearchOrganizationUsersResponse, a, b);
1313
- }
1314
- }
755
+ /**
756
+ * Describes the message scalekit.v1.users.SearchOrganizationUsersResponse.
757
+ * Use `create(SearchOrganizationUsersResponseSchema)` to create a new message.
758
+ */
759
+ export const SearchOrganizationUsersResponseSchema: GenMessage<SearchOrganizationUsersResponse> = /*@__PURE__*/
760
+ messageDesc(file_scalekit_v1_users_users, 25);
1315
761
 
1316
762
  /**
1317
763
  * @generated from message scalekit.v1.users.CreateUser
1318
764
  */
1319
- export class CreateUser extends Message<CreateUser> {
765
+ export type CreateUser = Message<"scalekit.v1.users.CreateUser"> & {
1320
766
  /**
1321
767
  * @generated from field: string email = 5;
1322
768
  */
1323
- email = "";
769
+ email: string;
1324
770
 
1325
771
  /**
1326
772
  * @generated from field: optional string external_id = 6;
@@ -1340,83 +786,59 @@ export class CreateUser extends Message<CreateUser> {
1340
786
  /**
1341
787
  * @generated from field: map<string, string> metadata = 9;
1342
788
  */
1343
- metadata: { [key: string]: string } = {};
1344
-
1345
- constructor(data?: PartialMessage<CreateUser>) {
1346
- super();
1347
- proto3.util.initPartial(data, this);
1348
- }
1349
-
1350
- static readonly runtime: typeof proto3 = proto3;
1351
- static readonly typeName = "scalekit.v1.users.CreateUser";
1352
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1353
- { no: 5, name: "email", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1354
- { no: 6, name: "external_id", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1355
- { no: 7, name: "membership", kind: "message", T: CreateMembership },
1356
- { no: 8, name: "user_profile", kind: "message", T: CreateUserProfile },
1357
- { no: 9, name: "metadata", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} },
1358
- ]);
1359
-
1360
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateUser {
1361
- return new CreateUser().fromBinary(bytes, options);
1362
- }
1363
-
1364
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateUser {
1365
- return new CreateUser().fromJson(jsonValue, options);
1366
- }
789
+ metadata: { [key: string]: string };
790
+ };
1367
791
 
1368
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateUser {
1369
- return new CreateUser().fromJsonString(jsonString, options);
1370
- }
1371
-
1372
- static equals(a: CreateUser | PlainMessage<CreateUser> | undefined, b: CreateUser | PlainMessage<CreateUser> | undefined): boolean {
1373
- return proto3.util.equals(CreateUser, a, b);
1374
- }
1375
- }
792
+ /**
793
+ * Describes the message scalekit.v1.users.CreateUser.
794
+ * Use `create(CreateUserSchema)` to create a new message.
795
+ */
796
+ export const CreateUserSchema: GenMessage<CreateUser> = /*@__PURE__*/
797
+ messageDesc(file_scalekit_v1_users_users, 26);
1376
798
 
1377
799
  /**
1378
800
  * @generated from message scalekit.v1.users.CreateUserProfile
1379
801
  */
1380
- export class CreateUserProfile extends Message<CreateUserProfile> {
802
+ export type CreateUserProfile = Message<"scalekit.v1.users.CreateUserProfile"> & {
1381
803
  /**
1382
804
  * @generated from field: string given_name = 2;
1383
805
  */
1384
- givenName = "";
806
+ givenName: string;
1385
807
 
1386
808
  /**
1387
809
  * @generated from field: string family_name = 3;
1388
810
  */
1389
- familyName = "";
811
+ familyName: string;
1390
812
 
1391
813
  /**
1392
814
  * @generated from field: string name = 4;
1393
815
  */
1394
- name = "";
816
+ name: string;
1395
817
 
1396
818
  /**
1397
819
  * @generated from field: string locale = 5;
1398
820
  */
1399
- locale = "";
821
+ locale: string;
1400
822
 
1401
823
  /**
1402
824
  * @generated from field: string phone_number = 7;
1403
825
  */
1404
- phoneNumber = "";
826
+ phoneNumber: string;
1405
827
 
1406
828
  /**
1407
829
  * @generated from field: map<string, string> metadata = 8;
1408
830
  */
1409
- metadata: { [key: string]: string } = {};
831
+ metadata: { [key: string]: string };
1410
832
 
1411
833
  /**
1412
834
  * @generated from field: map<string, string> custom_attributes = 9;
1413
835
  */
1414
- customAttributes: { [key: string]: string } = {};
836
+ customAttributes: { [key: string]: string };
1415
837
 
1416
838
  /**
1417
839
  * @generated from field: string preferred_username = 10;
1418
840
  */
1419
- preferredUsername = "";
841
+ preferredUsername: string;
1420
842
 
1421
843
  /**
1422
844
  * @generated from field: optional string picture = 11;
@@ -1431,64 +853,32 @@ export class CreateUserProfile extends Message<CreateUserProfile> {
1431
853
  /**
1432
854
  * @generated from field: repeated string groups = 13;
1433
855
  */
1434
- groups: string[] = [];
856
+ groups: string[];
1435
857
 
1436
858
  /**
1437
859
  * @generated from field: string first_name = 21 [deprecated = true];
1438
860
  * @deprecated
1439
861
  */
1440
- firstName = "";
862
+ firstName: string;
1441
863
 
1442
864
  /**
1443
865
  * @generated from field: string last_name = 22 [deprecated = true];
1444
866
  * @deprecated
1445
867
  */
1446
- lastName = "";
1447
-
1448
- constructor(data?: PartialMessage<CreateUserProfile>) {
1449
- super();
1450
- proto3.util.initPartial(data, this);
1451
- }
1452
-
1453
- static readonly runtime: typeof proto3 = proto3;
1454
- static readonly typeName = "scalekit.v1.users.CreateUserProfile";
1455
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1456
- { no: 2, name: "given_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1457
- { no: 3, name: "family_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1458
- { no: 4, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1459
- { no: 5, name: "locale", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1460
- { no: 7, name: "phone_number", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1461
- { no: 8, name: "metadata", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} },
1462
- { no: 9, name: "custom_attributes", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} },
1463
- { no: 10, name: "preferred_username", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1464
- { no: 11, name: "picture", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1465
- { no: 12, name: "gender", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1466
- { no: 13, name: "groups", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
1467
- { no: 21, name: "first_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1468
- { no: 22, name: "last_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1469
- ]);
1470
-
1471
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): CreateUserProfile {
1472
- return new CreateUserProfile().fromBinary(bytes, options);
1473
- }
1474
-
1475
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): CreateUserProfile {
1476
- return new CreateUserProfile().fromJson(jsonValue, options);
1477
- }
1478
-
1479
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): CreateUserProfile {
1480
- return new CreateUserProfile().fromJsonString(jsonString, options);
1481
- }
1482
-
1483
- static equals(a: CreateUserProfile | PlainMessage<CreateUserProfile> | undefined, b: CreateUserProfile | PlainMessage<CreateUserProfile> | undefined): boolean {
1484
- return proto3.util.equals(CreateUserProfile, a, b);
1485
- }
1486
- }
868
+ lastName: string;
869
+ };
870
+
871
+ /**
872
+ * Describes the message scalekit.v1.users.CreateUserProfile.
873
+ * Use `create(CreateUserProfileSchema)` to create a new message.
874
+ */
875
+ export const CreateUserProfileSchema: GenMessage<CreateUserProfile> = /*@__PURE__*/
876
+ messageDesc(file_scalekit_v1_users_users, 27);
1487
877
 
1488
878
  /**
1489
879
  * @generated from message scalekit.v1.users.UpdateUserProfile
1490
880
  */
1491
- export class UpdateUserProfile extends Message<UpdateUserProfile> {
881
+ export type UpdateUserProfile = Message<"scalekit.v1.users.UpdateUserProfile"> & {
1492
882
  /**
1493
883
  * @generated from field: optional string given_name = 2;
1494
884
  */
@@ -1517,12 +907,12 @@ export class UpdateUserProfile extends Message<UpdateUserProfile> {
1517
907
  /**
1518
908
  * @generated from field: map<string, string> metadata = 8;
1519
909
  */
1520
- metadata: { [key: string]: string } = {};
910
+ metadata: { [key: string]: string };
1521
911
 
1522
912
  /**
1523
913
  * @generated from field: map<string, string> custom_attributes = 9;
1524
914
  */
1525
- customAttributes: { [key: string]: string } = {};
915
+ customAttributes: { [key: string]: string };
1526
916
 
1527
917
  /**
1528
918
  * @generated from field: optional string first_name = 21 [deprecated = true];
@@ -1554,61 +944,29 @@ export class UpdateUserProfile extends Message<UpdateUserProfile> {
1554
944
  /**
1555
945
  * @generated from field: repeated string groups = 13;
1556
946
  */
1557
- groups: string[] = [];
1558
-
1559
- constructor(data?: PartialMessage<UpdateUserProfile>) {
1560
- super();
1561
- proto3.util.initPartial(data, this);
1562
- }
1563
-
1564
- static readonly runtime: typeof proto3 = proto3;
1565
- static readonly typeName = "scalekit.v1.users.UpdateUserProfile";
1566
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1567
- { no: 2, name: "given_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1568
- { no: 3, name: "family_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1569
- { no: 4, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1570
- { no: 5, name: "locale", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1571
- { no: 7, name: "phone_number", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1572
- { no: 8, name: "metadata", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} },
1573
- { no: 9, name: "custom_attributes", kind: "map", K: 9 /* ScalarType.STRING */, V: {kind: "scalar", T: 9 /* ScalarType.STRING */} },
1574
- { no: 21, name: "first_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1575
- { no: 22, name: "last_name", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1576
- { no: 10, name: "preferred_username", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1577
- { no: 11, name: "picture", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1578
- { no: 12, name: "gender", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1579
- { no: 13, name: "groups", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
1580
- ]);
1581
-
1582
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): UpdateUserProfile {
1583
- return new UpdateUserProfile().fromBinary(bytes, options);
1584
- }
1585
-
1586
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): UpdateUserProfile {
1587
- return new UpdateUserProfile().fromJson(jsonValue, options);
1588
- }
1589
-
1590
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): UpdateUserProfile {
1591
- return new UpdateUserProfile().fromJsonString(jsonString, options);
1592
- }
1593
-
1594
- static equals(a: UpdateUserProfile | PlainMessage<UpdateUserProfile> | undefined, b: UpdateUserProfile | PlainMessage<UpdateUserProfile> | undefined): boolean {
1595
- return proto3.util.equals(UpdateUserProfile, a, b);
1596
- }
1597
- }
947
+ groups: string[];
948
+ };
949
+
950
+ /**
951
+ * Describes the message scalekit.v1.users.UpdateUserProfile.
952
+ * Use `create(UpdateUserProfileSchema)` to create a new message.
953
+ */
954
+ export const UpdateUserProfileSchema: GenMessage<UpdateUserProfile> = /*@__PURE__*/
955
+ messageDesc(file_scalekit_v1_users_users, 28);
1598
956
 
1599
957
  /**
1600
958
  * @generated from message scalekit.v1.users.Invite
1601
959
  */
1602
- export class Invite extends Message<Invite> {
960
+ export type Invite = Message<"scalekit.v1.users.Invite"> & {
1603
961
  /**
1604
962
  * @generated from field: string organization_id = 1;
1605
963
  */
1606
- organizationId = "";
964
+ organizationId: string;
1607
965
 
1608
966
  /**
1609
967
  * @generated from field: string user_id = 2;
1610
968
  */
1611
- userId = "";
969
+ userId: string;
1612
970
 
1613
971
  /**
1614
972
  * @generated from field: optional string inviter_email = 3;
@@ -1618,7 +976,7 @@ export class Invite extends Message<Invite> {
1618
976
  /**
1619
977
  * @generated from field: string status = 4;
1620
978
  */
1621
- status = "";
979
+ status: string;
1622
980
 
1623
981
  /**
1624
982
  * @generated from field: google.protobuf.Timestamp created_at = 5;
@@ -1638,514 +996,409 @@ export class Invite extends Message<Invite> {
1638
996
  /**
1639
997
  * @generated from field: int32 resent_count = 8;
1640
998
  */
1641
- resentCount = 0;
1642
-
1643
- constructor(data?: PartialMessage<Invite>) {
1644
- super();
1645
- proto3.util.initPartial(data, this);
1646
- }
1647
-
1648
- static readonly runtime: typeof proto3 = proto3;
1649
- static readonly typeName = "scalekit.v1.users.Invite";
1650
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1651
- { no: 1, name: "organization_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1652
- { no: 2, name: "user_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1653
- { no: 3, name: "inviter_email", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true },
1654
- { no: 4, name: "status", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1655
- { no: 5, name: "created_at", kind: "message", T: Timestamp },
1656
- { no: 6, name: "expires_at", kind: "message", T: Timestamp },
1657
- { no: 7, name: "resent_at", kind: "message", T: Timestamp },
1658
- { no: 8, name: "resent_count", kind: "scalar", T: 5 /* ScalarType.INT32 */ },
1659
- ]);
1660
-
1661
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Invite {
1662
- return new Invite().fromBinary(bytes, options);
1663
- }
1664
-
1665
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Invite {
1666
- return new Invite().fromJson(jsonValue, options);
1667
- }
999
+ resentCount: number;
1000
+ };
1668
1001
 
1669
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Invite {
1670
- return new Invite().fromJsonString(jsonString, options);
1671
- }
1672
-
1673
- static equals(a: Invite | PlainMessage<Invite> | undefined, b: Invite | PlainMessage<Invite> | undefined): boolean {
1674
- return proto3.util.equals(Invite, a, b);
1675
- }
1676
- }
1002
+ /**
1003
+ * Describes the message scalekit.v1.users.Invite.
1004
+ * Use `create(InviteSchema)` to create a new message.
1005
+ */
1006
+ export const InviteSchema: GenMessage<Invite> = /*@__PURE__*/
1007
+ messageDesc(file_scalekit_v1_users_users, 29);
1677
1008
 
1678
1009
  /**
1679
1010
  * @generated from message scalekit.v1.users.ResendInviteRequest
1680
1011
  */
1681
- export class ResendInviteRequest extends Message<ResendInviteRequest> {
1012
+ export type ResendInviteRequest = Message<"scalekit.v1.users.ResendInviteRequest"> & {
1682
1013
  /**
1683
1014
  * @generated from field: string organization_id = 1;
1684
1015
  */
1685
- organizationId = "";
1016
+ organizationId: string;
1686
1017
 
1687
1018
  /**
1688
1019
  * @generated from field: string id = 2;
1689
1020
  */
1690
- id = "";
1691
-
1692
- constructor(data?: PartialMessage<ResendInviteRequest>) {
1693
- super();
1694
- proto3.util.initPartial(data, this);
1695
- }
1021
+ id: string;
1022
+ };
1696
1023
 
1697
- static readonly runtime: typeof proto3 = proto3;
1698
- static readonly typeName = "scalekit.v1.users.ResendInviteRequest";
1699
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1700
- { no: 1, name: "organization_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1701
- { no: 2, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1702
- ]);
1703
-
1704
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ResendInviteRequest {
1705
- return new ResendInviteRequest().fromBinary(bytes, options);
1706
- }
1707
-
1708
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ResendInviteRequest {
1709
- return new ResendInviteRequest().fromJson(jsonValue, options);
1710
- }
1711
-
1712
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ResendInviteRequest {
1713
- return new ResendInviteRequest().fromJsonString(jsonString, options);
1714
- }
1715
-
1716
- static equals(a: ResendInviteRequest | PlainMessage<ResendInviteRequest> | undefined, b: ResendInviteRequest | PlainMessage<ResendInviteRequest> | undefined): boolean {
1717
- return proto3.util.equals(ResendInviteRequest, a, b);
1718
- }
1719
- }
1024
+ /**
1025
+ * Describes the message scalekit.v1.users.ResendInviteRequest.
1026
+ * Use `create(ResendInviteRequestSchema)` to create a new message.
1027
+ */
1028
+ export const ResendInviteRequestSchema: GenMessage<ResendInviteRequest> = /*@__PURE__*/
1029
+ messageDesc(file_scalekit_v1_users_users, 30);
1720
1030
 
1721
1031
  /**
1722
1032
  * @generated from message scalekit.v1.users.ResendInviteResponse
1723
1033
  */
1724
- export class ResendInviteResponse extends Message<ResendInviteResponse> {
1034
+ export type ResendInviteResponse = Message<"scalekit.v1.users.ResendInviteResponse"> & {
1725
1035
  /**
1726
1036
  * @generated from field: scalekit.v1.users.Invite invite = 1;
1727
1037
  */
1728
1038
  invite?: Invite;
1039
+ };
1729
1040
 
1730
- constructor(data?: PartialMessage<ResendInviteResponse>) {
1731
- super();
1732
- proto3.util.initPartial(data, this);
1733
- }
1734
-
1735
- static readonly runtime: typeof proto3 = proto3;
1736
- static readonly typeName = "scalekit.v1.users.ResendInviteResponse";
1737
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1738
- { no: 1, name: "invite", kind: "message", T: Invite },
1739
- ]);
1740
-
1741
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ResendInviteResponse {
1742
- return new ResendInviteResponse().fromBinary(bytes, options);
1743
- }
1744
-
1745
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ResendInviteResponse {
1746
- return new ResendInviteResponse().fromJson(jsonValue, options);
1747
- }
1748
-
1749
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ResendInviteResponse {
1750
- return new ResendInviteResponse().fromJsonString(jsonString, options);
1751
- }
1752
-
1753
- static equals(a: ResendInviteResponse | PlainMessage<ResendInviteResponse> | undefined, b: ResendInviteResponse | PlainMessage<ResendInviteResponse> | undefined): boolean {
1754
- return proto3.util.equals(ResendInviteResponse, a, b);
1755
- }
1756
- }
1041
+ /**
1042
+ * Describes the message scalekit.v1.users.ResendInviteResponse.
1043
+ * Use `create(ResendInviteResponseSchema)` to create a new message.
1044
+ */
1045
+ export const ResendInviteResponseSchema: GenMessage<ResendInviteResponse> = /*@__PURE__*/
1046
+ messageDesc(file_scalekit_v1_users_users, 31);
1757
1047
 
1758
1048
  /**
1759
1049
  * @generated from message scalekit.v1.users.ListUserRolesRequest
1760
1050
  */
1761
- export class ListUserRolesRequest extends Message<ListUserRolesRequest> {
1051
+ export type ListUserRolesRequest = Message<"scalekit.v1.users.ListUserRolesRequest"> & {
1762
1052
  /**
1763
1053
  * @generated from field: string organization_id = 1;
1764
1054
  */
1765
- organizationId = "";
1055
+ organizationId: string;
1766
1056
 
1767
1057
  /**
1768
1058
  * @generated from field: string user_id = 2;
1769
1059
  */
1770
- userId = "";
1771
-
1772
- constructor(data?: PartialMessage<ListUserRolesRequest>) {
1773
- super();
1774
- proto3.util.initPartial(data, this);
1775
- }
1776
-
1777
- static readonly runtime: typeof proto3 = proto3;
1778
- static readonly typeName = "scalekit.v1.users.ListUserRolesRequest";
1779
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1780
- { no: 1, name: "organization_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1781
- { no: 2, name: "user_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1782
- ]);
1783
-
1784
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListUserRolesRequest {
1785
- return new ListUserRolesRequest().fromBinary(bytes, options);
1786
- }
1787
-
1788
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListUserRolesRequest {
1789
- return new ListUserRolesRequest().fromJson(jsonValue, options);
1790
- }
1060
+ userId: string;
1061
+ };
1791
1062
 
1792
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListUserRolesRequest {
1793
- return new ListUserRolesRequest().fromJsonString(jsonString, options);
1794
- }
1795
-
1796
- static equals(a: ListUserRolesRequest | PlainMessage<ListUserRolesRequest> | undefined, b: ListUserRolesRequest | PlainMessage<ListUserRolesRequest> | undefined): boolean {
1797
- return proto3.util.equals(ListUserRolesRequest, a, b);
1798
- }
1799
- }
1063
+ /**
1064
+ * Describes the message scalekit.v1.users.ListUserRolesRequest.
1065
+ * Use `create(ListUserRolesRequestSchema)` to create a new message.
1066
+ */
1067
+ export const ListUserRolesRequestSchema: GenMessage<ListUserRolesRequest> = /*@__PURE__*/
1068
+ messageDesc(file_scalekit_v1_users_users, 32);
1800
1069
 
1801
1070
  /**
1802
1071
  * @generated from message scalekit.v1.users.ListUserRolesResponse
1803
1072
  */
1804
- export class ListUserRolesResponse extends Message<ListUserRolesResponse> {
1073
+ export type ListUserRolesResponse = Message<"scalekit.v1.users.ListUserRolesResponse"> & {
1805
1074
  /**
1806
1075
  * @generated from field: repeated scalekit.v1.commons.Role roles = 1;
1807
1076
  */
1808
- roles: Role[] = [];
1809
-
1810
- constructor(data?: PartialMessage<ListUserRolesResponse>) {
1811
- super();
1812
- proto3.util.initPartial(data, this);
1813
- }
1814
-
1815
- static readonly runtime: typeof proto3 = proto3;
1816
- static readonly typeName = "scalekit.v1.users.ListUserRolesResponse";
1817
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1818
- { no: 1, name: "roles", kind: "message", T: Role, repeated: true },
1819
- ]);
1077
+ roles: Role[];
1078
+ };
1820
1079
 
1821
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListUserRolesResponse {
1822
- return new ListUserRolesResponse().fromBinary(bytes, options);
1823
- }
1824
-
1825
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListUserRolesResponse {
1826
- return new ListUserRolesResponse().fromJson(jsonValue, options);
1827
- }
1828
-
1829
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListUserRolesResponse {
1830
- return new ListUserRolesResponse().fromJsonString(jsonString, options);
1831
- }
1832
-
1833
- static equals(a: ListUserRolesResponse | PlainMessage<ListUserRolesResponse> | undefined, b: ListUserRolesResponse | PlainMessage<ListUserRolesResponse> | undefined): boolean {
1834
- return proto3.util.equals(ListUserRolesResponse, a, b);
1835
- }
1836
- }
1080
+ /**
1081
+ * Describes the message scalekit.v1.users.ListUserRolesResponse.
1082
+ * Use `create(ListUserRolesResponseSchema)` to create a new message.
1083
+ */
1084
+ export const ListUserRolesResponseSchema: GenMessage<ListUserRolesResponse> = /*@__PURE__*/
1085
+ messageDesc(file_scalekit_v1_users_users, 33);
1837
1086
 
1838
1087
  /**
1839
1088
  * @generated from message scalekit.v1.users.AssignUserRolesRequest
1840
1089
  */
1841
- export class AssignUserRolesRequest extends Message<AssignUserRolesRequest> {
1090
+ export type AssignUserRolesRequest = Message<"scalekit.v1.users.AssignUserRolesRequest"> & {
1842
1091
  /**
1843
1092
  * @generated from field: string organization_id = 1;
1844
1093
  */
1845
- organizationId = "";
1094
+ organizationId: string;
1846
1095
 
1847
1096
  /**
1848
1097
  * @generated from field: string user_id = 2;
1849
1098
  */
1850
- userId = "";
1099
+ userId: string;
1851
1100
 
1852
1101
  /**
1853
1102
  * @generated from field: repeated scalekit.v1.users.AssignRoleRequest roles = 3;
1854
1103
  */
1855
- roles: AssignRoleRequest[] = [];
1856
-
1857
- constructor(data?: PartialMessage<AssignUserRolesRequest>) {
1858
- super();
1859
- proto3.util.initPartial(data, this);
1860
- }
1861
-
1862
- static readonly runtime: typeof proto3 = proto3;
1863
- static readonly typeName = "scalekit.v1.users.AssignUserRolesRequest";
1864
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1865
- { no: 1, name: "organization_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1866
- { no: 2, name: "user_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1867
- { no: 3, name: "roles", kind: "message", T: AssignRoleRequest, repeated: true },
1868
- ]);
1869
-
1870
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AssignUserRolesRequest {
1871
- return new AssignUserRolesRequest().fromBinary(bytes, options);
1872
- }
1873
-
1874
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AssignUserRolesRequest {
1875
- return new AssignUserRolesRequest().fromJson(jsonValue, options);
1876
- }
1104
+ roles: AssignRoleRequest[];
1105
+ };
1877
1106
 
1878
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AssignUserRolesRequest {
1879
- return new AssignUserRolesRequest().fromJsonString(jsonString, options);
1880
- }
1881
-
1882
- static equals(a: AssignUserRolesRequest | PlainMessage<AssignUserRolesRequest> | undefined, b: AssignUserRolesRequest | PlainMessage<AssignUserRolesRequest> | undefined): boolean {
1883
- return proto3.util.equals(AssignUserRolesRequest, a, b);
1884
- }
1885
- }
1107
+ /**
1108
+ * Describes the message scalekit.v1.users.AssignUserRolesRequest.
1109
+ * Use `create(AssignUserRolesRequestSchema)` to create a new message.
1110
+ */
1111
+ export const AssignUserRolesRequestSchema: GenMessage<AssignUserRolesRequest> = /*@__PURE__*/
1112
+ messageDesc(file_scalekit_v1_users_users, 34);
1886
1113
 
1887
1114
  /**
1888
1115
  * @generated from message scalekit.v1.users.AssignRoleRequest
1889
1116
  */
1890
- export class AssignRoleRequest extends Message<AssignRoleRequest> {
1117
+ export type AssignRoleRequest = Message<"scalekit.v1.users.AssignRoleRequest"> & {
1891
1118
  /**
1892
1119
  * @generated from field: string id = 1 [deprecated = true];
1893
1120
  * @deprecated
1894
1121
  */
1895
- id = "";
1122
+ id: string;
1896
1123
 
1897
1124
  /**
1898
1125
  * @generated from field: string role_name = 2;
1899
1126
  */
1900
- roleName = "";
1901
-
1902
- constructor(data?: PartialMessage<AssignRoleRequest>) {
1903
- super();
1904
- proto3.util.initPartial(data, this);
1905
- }
1127
+ roleName: string;
1128
+ };
1906
1129
 
1907
- static readonly runtime: typeof proto3 = proto3;
1908
- static readonly typeName = "scalekit.v1.users.AssignRoleRequest";
1909
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1910
- { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1911
- { no: 2, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1912
- ]);
1913
-
1914
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AssignRoleRequest {
1915
- return new AssignRoleRequest().fromBinary(bytes, options);
1916
- }
1917
-
1918
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AssignRoleRequest {
1919
- return new AssignRoleRequest().fromJson(jsonValue, options);
1920
- }
1921
-
1922
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AssignRoleRequest {
1923
- return new AssignRoleRequest().fromJsonString(jsonString, options);
1924
- }
1925
-
1926
- static equals(a: AssignRoleRequest | PlainMessage<AssignRoleRequest> | undefined, b: AssignRoleRequest | PlainMessage<AssignRoleRequest> | undefined): boolean {
1927
- return proto3.util.equals(AssignRoleRequest, a, b);
1928
- }
1929
- }
1130
+ /**
1131
+ * Describes the message scalekit.v1.users.AssignRoleRequest.
1132
+ * Use `create(AssignRoleRequestSchema)` to create a new message.
1133
+ */
1134
+ export const AssignRoleRequestSchema: GenMessage<AssignRoleRequest> = /*@__PURE__*/
1135
+ messageDesc(file_scalekit_v1_users_users, 35);
1930
1136
 
1931
1137
  /**
1932
1138
  * @generated from message scalekit.v1.users.AssignUserRolesResponse
1933
1139
  */
1934
- export class AssignUserRolesResponse extends Message<AssignUserRolesResponse> {
1140
+ export type AssignUserRolesResponse = Message<"scalekit.v1.users.AssignUserRolesResponse"> & {
1935
1141
  /**
1936
1142
  * @generated from field: repeated scalekit.v1.commons.Role roles = 1;
1937
1143
  */
1938
- roles: Role[] = [];
1939
-
1940
- constructor(data?: PartialMessage<AssignUserRolesResponse>) {
1941
- super();
1942
- proto3.util.initPartial(data, this);
1943
- }
1944
-
1945
- static readonly runtime: typeof proto3 = proto3;
1946
- static readonly typeName = "scalekit.v1.users.AssignUserRolesResponse";
1947
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1948
- { no: 1, name: "roles", kind: "message", T: Role, repeated: true },
1949
- ]);
1144
+ roles: Role[];
1145
+ };
1950
1146
 
1951
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): AssignUserRolesResponse {
1952
- return new AssignUserRolesResponse().fromBinary(bytes, options);
1953
- }
1954
-
1955
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): AssignUserRolesResponse {
1956
- return new AssignUserRolesResponse().fromJson(jsonValue, options);
1957
- }
1958
-
1959
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): AssignUserRolesResponse {
1960
- return new AssignUserRolesResponse().fromJsonString(jsonString, options);
1961
- }
1962
-
1963
- static equals(a: AssignUserRolesResponse | PlainMessage<AssignUserRolesResponse> | undefined, b: AssignUserRolesResponse | PlainMessage<AssignUserRolesResponse> | undefined): boolean {
1964
- return proto3.util.equals(AssignUserRolesResponse, a, b);
1965
- }
1966
- }
1147
+ /**
1148
+ * Describes the message scalekit.v1.users.AssignUserRolesResponse.
1149
+ * Use `create(AssignUserRolesResponseSchema)` to create a new message.
1150
+ */
1151
+ export const AssignUserRolesResponseSchema: GenMessage<AssignUserRolesResponse> = /*@__PURE__*/
1152
+ messageDesc(file_scalekit_v1_users_users, 36);
1967
1153
 
1968
1154
  /**
1969
1155
  * @generated from message scalekit.v1.users.RemoveUserRoleRequest
1970
1156
  */
1971
- export class RemoveUserRoleRequest extends Message<RemoveUserRoleRequest> {
1157
+ export type RemoveUserRoleRequest = Message<"scalekit.v1.users.RemoveUserRoleRequest"> & {
1972
1158
  /**
1973
1159
  * @generated from field: string organization_id = 1;
1974
1160
  */
1975
- organizationId = "";
1161
+ organizationId: string;
1976
1162
 
1977
1163
  /**
1978
1164
  * @generated from field: string user_id = 2;
1979
1165
  */
1980
- userId = "";
1166
+ userId: string;
1981
1167
 
1982
1168
  /**
1983
1169
  * @generated from field: string role_name = 3;
1984
1170
  */
1985
- roleName = "";
1986
-
1987
- constructor(data?: PartialMessage<RemoveUserRoleRequest>) {
1988
- super();
1989
- proto3.util.initPartial(data, this);
1990
- }
1991
-
1992
- static readonly runtime: typeof proto3 = proto3;
1993
- static readonly typeName = "scalekit.v1.users.RemoveUserRoleRequest";
1994
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
1995
- { no: 1, name: "organization_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1996
- { no: 2, name: "user_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1997
- { no: 3, name: "role_name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
1998
- ]);
1999
-
2000
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): RemoveUserRoleRequest {
2001
- return new RemoveUserRoleRequest().fromBinary(bytes, options);
2002
- }
2003
-
2004
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): RemoveUserRoleRequest {
2005
- return new RemoveUserRoleRequest().fromJson(jsonValue, options);
2006
- }
1171
+ roleName: string;
1172
+ };
2007
1173
 
2008
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): RemoveUserRoleRequest {
2009
- return new RemoveUserRoleRequest().fromJsonString(jsonString, options);
2010
- }
2011
-
2012
- static equals(a: RemoveUserRoleRequest | PlainMessage<RemoveUserRoleRequest> | undefined, b: RemoveUserRoleRequest | PlainMessage<RemoveUserRoleRequest> | undefined): boolean {
2013
- return proto3.util.equals(RemoveUserRoleRequest, a, b);
2014
- }
2015
- }
1174
+ /**
1175
+ * Describes the message scalekit.v1.users.RemoveUserRoleRequest.
1176
+ * Use `create(RemoveUserRoleRequestSchema)` to create a new message.
1177
+ */
1178
+ export const RemoveUserRoleRequestSchema: GenMessage<RemoveUserRoleRequest> = /*@__PURE__*/
1179
+ messageDesc(file_scalekit_v1_users_users, 37);
2016
1180
 
2017
1181
  /**
2018
1182
  * @generated from message scalekit.v1.users.ListUserPermissionsRequest
2019
1183
  */
2020
- export class ListUserPermissionsRequest extends Message<ListUserPermissionsRequest> {
1184
+ export type ListUserPermissionsRequest = Message<"scalekit.v1.users.ListUserPermissionsRequest"> & {
2021
1185
  /**
2022
1186
  * @generated from field: string organization_id = 1;
2023
1187
  */
2024
- organizationId = "";
1188
+ organizationId: string;
2025
1189
 
2026
1190
  /**
2027
1191
  * @generated from field: string user_id = 2;
2028
1192
  */
2029
- userId = "";
2030
-
2031
- constructor(data?: PartialMessage<ListUserPermissionsRequest>) {
2032
- super();
2033
- proto3.util.initPartial(data, this);
2034
- }
2035
-
2036
- static readonly runtime: typeof proto3 = proto3;
2037
- static readonly typeName = "scalekit.v1.users.ListUserPermissionsRequest";
2038
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2039
- { no: 1, name: "organization_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2040
- { no: 2, name: "user_id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2041
- ]);
2042
-
2043
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListUserPermissionsRequest {
2044
- return new ListUserPermissionsRequest().fromBinary(bytes, options);
2045
- }
2046
-
2047
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListUserPermissionsRequest {
2048
- return new ListUserPermissionsRequest().fromJson(jsonValue, options);
2049
- }
2050
-
2051
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListUserPermissionsRequest {
2052
- return new ListUserPermissionsRequest().fromJsonString(jsonString, options);
2053
- }
1193
+ userId: string;
1194
+ };
2054
1195
 
2055
- static equals(a: ListUserPermissionsRequest | PlainMessage<ListUserPermissionsRequest> | undefined, b: ListUserPermissionsRequest | PlainMessage<ListUserPermissionsRequest> | undefined): boolean {
2056
- return proto3.util.equals(ListUserPermissionsRequest, a, b);
2057
- }
2058
- }
1196
+ /**
1197
+ * Describes the message scalekit.v1.users.ListUserPermissionsRequest.
1198
+ * Use `create(ListUserPermissionsRequestSchema)` to create a new message.
1199
+ */
1200
+ export const ListUserPermissionsRequestSchema: GenMessage<ListUserPermissionsRequest> = /*@__PURE__*/
1201
+ messageDesc(file_scalekit_v1_users_users, 38);
2059
1202
 
2060
1203
  /**
2061
1204
  * @generated from message scalekit.v1.users.Permission
2062
1205
  */
2063
- export class Permission extends Message<Permission> {
1206
+ export type Permission = Message<"scalekit.v1.users.Permission"> & {
2064
1207
  /**
2065
1208
  * @generated from field: string id = 1;
2066
1209
  */
2067
- id = "";
1210
+ id: string;
2068
1211
 
2069
1212
  /**
2070
1213
  * @generated from field: string name = 2;
2071
1214
  */
2072
- name = "";
1215
+ name: string;
2073
1216
 
2074
1217
  /**
2075
1218
  * @generated from field: string description = 3;
2076
1219
  */
2077
- description = "";
1220
+ description: string;
2078
1221
 
2079
1222
  /**
2080
1223
  * @generated from field: repeated string tags = 4;
2081
1224
  */
2082
- tags: string[] = [];
2083
-
2084
- constructor(data?: PartialMessage<Permission>) {
2085
- super();
2086
- proto3.util.initPartial(data, this);
2087
- }
2088
-
2089
- static readonly runtime: typeof proto3 = proto3;
2090
- static readonly typeName = "scalekit.v1.users.Permission";
2091
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2092
- { no: 1, name: "id", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2093
- { no: 2, name: "name", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2094
- { no: 3, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ },
2095
- { no: 4, name: "tags", kind: "scalar", T: 9 /* ScalarType.STRING */, repeated: true },
2096
- ]);
2097
-
2098
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): Permission {
2099
- return new Permission().fromBinary(bytes, options);
2100
- }
1225
+ tags: string[];
1226
+ };
2101
1227
 
2102
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): Permission {
2103
- return new Permission().fromJson(jsonValue, options);
2104
- }
2105
-
2106
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): Permission {
2107
- return new Permission().fromJsonString(jsonString, options);
2108
- }
2109
-
2110
- static equals(a: Permission | PlainMessage<Permission> | undefined, b: Permission | PlainMessage<Permission> | undefined): boolean {
2111
- return proto3.util.equals(Permission, a, b);
2112
- }
2113
- }
1228
+ /**
1229
+ * Describes the message scalekit.v1.users.Permission.
1230
+ * Use `create(PermissionSchema)` to create a new message.
1231
+ */
1232
+ export const PermissionSchema: GenMessage<Permission> = /*@__PURE__*/
1233
+ messageDesc(file_scalekit_v1_users_users, 39);
2114
1234
 
2115
1235
  /**
2116
1236
  * @generated from message scalekit.v1.users.ListUserPermissionsResponse
2117
1237
  */
2118
- export class ListUserPermissionsResponse extends Message<ListUserPermissionsResponse> {
1238
+ export type ListUserPermissionsResponse = Message<"scalekit.v1.users.ListUserPermissionsResponse"> & {
2119
1239
  /**
2120
1240
  * @generated from field: repeated scalekit.v1.users.Permission permissions = 1;
2121
1241
  */
2122
- permissions: Permission[] = [];
1242
+ permissions: Permission[];
1243
+ };
2123
1244
 
2124
- constructor(data?: PartialMessage<ListUserPermissionsResponse>) {
2125
- super();
2126
- proto3.util.initPartial(data, this);
2127
- }
2128
-
2129
- static readonly runtime: typeof proto3 = proto3;
2130
- static readonly typeName = "scalekit.v1.users.ListUserPermissionsResponse";
2131
- static readonly fields: FieldList = proto3.util.newFieldList(() => [
2132
- { no: 1, name: "permissions", kind: "message", T: Permission, repeated: true },
2133
- ]);
2134
-
2135
- static fromBinary(bytes: Uint8Array, options?: Partial<BinaryReadOptions>): ListUserPermissionsResponse {
2136
- return new ListUserPermissionsResponse().fromBinary(bytes, options);
2137
- }
2138
-
2139
- static fromJson(jsonValue: JsonValue, options?: Partial<JsonReadOptions>): ListUserPermissionsResponse {
2140
- return new ListUserPermissionsResponse().fromJson(jsonValue, options);
2141
- }
2142
-
2143
- static fromJsonString(jsonString: string, options?: Partial<JsonReadOptions>): ListUserPermissionsResponse {
2144
- return new ListUserPermissionsResponse().fromJsonString(jsonString, options);
2145
- }
1245
+ /**
1246
+ * Describes the message scalekit.v1.users.ListUserPermissionsResponse.
1247
+ * Use `create(ListUserPermissionsResponseSchema)` to create a new message.
1248
+ */
1249
+ export const ListUserPermissionsResponseSchema: GenMessage<ListUserPermissionsResponse> = /*@__PURE__*/
1250
+ messageDesc(file_scalekit_v1_users_users, 40);
2146
1251
 
2147
- static equals(a: ListUserPermissionsResponse | PlainMessage<ListUserPermissionsResponse> | undefined, b: ListUserPermissionsResponse | PlainMessage<ListUserPermissionsResponse> | undefined): boolean {
2148
- return proto3.util.equals(ListUserPermissionsResponse, a, b);
2149
- }
2150
- }
1252
+ /**
1253
+ * @generated from service scalekit.v1.users.UserService
1254
+ */
1255
+ export const UserService: GenService<{
1256
+ /**
1257
+ * Users
1258
+ *
1259
+ * @generated from rpc scalekit.v1.users.UserService.GetUser
1260
+ */
1261
+ getUser: {
1262
+ methodKind: "unary";
1263
+ input: typeof GetUserRequestSchema;
1264
+ output: typeof GetUserResponseSchema;
1265
+ },
1266
+ /**
1267
+ * @generated from rpc scalekit.v1.users.UserService.GetCurrentUser
1268
+ */
1269
+ getCurrentUser: {
1270
+ methodKind: "unary";
1271
+ input: typeof GetCurrentUserRequestSchema;
1272
+ output: typeof GetCurrentUserResponseSchema;
1273
+ },
1274
+ /**
1275
+ * @generated from rpc scalekit.v1.users.UserService.ListUsers
1276
+ */
1277
+ listUsers: {
1278
+ methodKind: "unary";
1279
+ input: typeof ListUsersRequestSchema;
1280
+ output: typeof ListUsersResponseSchema;
1281
+ },
1282
+ /**
1283
+ * @generated from rpc scalekit.v1.users.UserService.SearchUsers
1284
+ */
1285
+ searchUsers: {
1286
+ methodKind: "unary";
1287
+ input: typeof SearchUsersRequestSchema;
1288
+ output: typeof SearchUsersResponseSchema;
1289
+ },
1290
+ /**
1291
+ * @generated from rpc scalekit.v1.users.UserService.SearchOrganizationUsers
1292
+ */
1293
+ searchOrganizationUsers: {
1294
+ methodKind: "unary";
1295
+ input: typeof SearchOrganizationUsersRequestSchema;
1296
+ output: typeof SearchOrganizationUsersResponseSchema;
1297
+ },
1298
+ /**
1299
+ * @generated from rpc scalekit.v1.users.UserService.UpdateUser
1300
+ */
1301
+ updateUser: {
1302
+ methodKind: "unary";
1303
+ input: typeof UpdateUserRequestSchema;
1304
+ output: typeof UpdateUserResponseSchema;
1305
+ },
1306
+ /**
1307
+ * @generated from rpc scalekit.v1.users.UserService.DeleteUser
1308
+ */
1309
+ deleteUser: {
1310
+ methodKind: "unary";
1311
+ input: typeof DeleteUserRequestSchema;
1312
+ output: typeof EmptySchema;
1313
+ },
1314
+ /**
1315
+ * Memberships
1316
+ *
1317
+ * @generated from rpc scalekit.v1.users.UserService.CreateMembership
1318
+ */
1319
+ createMembership: {
1320
+ methodKind: "unary";
1321
+ input: typeof CreateMembershipRequestSchema;
1322
+ output: typeof CreateMembershipResponseSchema;
1323
+ },
1324
+ /**
1325
+ * TODO Check cascade behaviour currently its ignored
1326
+ *
1327
+ * @generated from rpc scalekit.v1.users.UserService.DeleteMembership
1328
+ */
1329
+ deleteMembership: {
1330
+ methodKind: "unary";
1331
+ input: typeof DeleteMembershipRequestSchema;
1332
+ output: typeof EmptySchema;
1333
+ },
1334
+ /**
1335
+ * @generated from rpc scalekit.v1.users.UserService.UpdateMembership
1336
+ */
1337
+ updateMembership: {
1338
+ methodKind: "unary";
1339
+ input: typeof UpdateMembershipRequestSchema;
1340
+ output: typeof UpdateMembershipResponseSchema;
1341
+ },
1342
+ /**
1343
+ * @generated from rpc scalekit.v1.users.UserService.CreateUserAndMembership
1344
+ */
1345
+ createUserAndMembership: {
1346
+ methodKind: "unary";
1347
+ input: typeof CreateUserAndMembershipRequestSchema;
1348
+ output: typeof CreateUserAndMembershipResponseSchema;
1349
+ },
1350
+ /**
1351
+ * only memberships of the organization
1352
+ *
1353
+ * @generated from rpc scalekit.v1.users.UserService.ListOrganizationUsers
1354
+ */
1355
+ listOrganizationUsers: {
1356
+ methodKind: "unary";
1357
+ input: typeof ListOrganizationUsersRequestSchema;
1358
+ output: typeof ListOrganizationUsersResponseSchema;
1359
+ },
1360
+ /**
1361
+ * @generated from rpc scalekit.v1.users.UserService.ResendInvite
1362
+ */
1363
+ resendInvite: {
1364
+ methodKind: "unary";
1365
+ input: typeof ResendInviteRequestSchema;
1366
+ output: typeof ResendInviteResponseSchema;
1367
+ },
1368
+ /**
1369
+ * User Role Management
1370
+ *
1371
+ * @generated from rpc scalekit.v1.users.UserService.ListUserRoles
1372
+ */
1373
+ listUserRoles: {
1374
+ methodKind: "unary";
1375
+ input: typeof ListUserRolesRequestSchema;
1376
+ output: typeof ListUserRolesResponseSchema;
1377
+ },
1378
+ /**
1379
+ * @generated from rpc scalekit.v1.users.UserService.AssignUserRoles
1380
+ */
1381
+ assignUserRoles: {
1382
+ methodKind: "unary";
1383
+ input: typeof AssignUserRolesRequestSchema;
1384
+ output: typeof AssignUserRolesResponseSchema;
1385
+ },
1386
+ /**
1387
+ * @generated from rpc scalekit.v1.users.UserService.RemoveUserRole
1388
+ */
1389
+ removeUserRole: {
1390
+ methodKind: "unary";
1391
+ input: typeof RemoveUserRoleRequestSchema;
1392
+ output: typeof EmptySchema;
1393
+ },
1394
+ /**
1395
+ * @generated from rpc scalekit.v1.users.UserService.ListUserPermissions
1396
+ */
1397
+ listUserPermissions: {
1398
+ methodKind: "unary";
1399
+ input: typeof ListUserPermissionsRequestSchema;
1400
+ output: typeof ListUserPermissionsResponseSchema;
1401
+ },
1402
+ }> = /*@__PURE__*/
1403
+ serviceDesc(file_scalekit_v1_users_users, 0);
2151
1404