metal-stack-api 0.3.1__tar.gz → 0.4.0__tar.gz

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 (154) hide show
  1. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/PKG-INFO +1 -1
  2. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metal_stack_api.egg-info/PKG-INFO +1 -1
  3. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/project_pb2.py +7 -9
  4. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/project_pb2.pyi +0 -2
  5. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/predefined_rules_pb2.py +9 -3
  6. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/predefined_rules_pb2.pyi +6 -0
  7. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/token_pb2.py +68 -32
  8. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/token_pb2.pyi +70 -4
  9. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/event_pb2.py +9 -11
  10. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/event_pb2.pyi +0 -2
  11. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/README.md +0 -0
  12. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/buf/__init__.py +0 -0
  13. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/buf/validate/__init__.py +0 -0
  14. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/buf/validate/validate_pb2.py +0 -0
  15. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metal_stack_api.egg-info/SOURCES.txt +0 -0
  16. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metal_stack_api.egg-info/dependency_links.txt +0 -0
  17. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metal_stack_api.egg-info/requires.txt +0 -0
  18. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metal_stack_api.egg-info/top_level.txt +0 -0
  19. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/__init__.py +0 -0
  20. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/__init__.py +0 -0
  21. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/__init__.py +0 -0
  22. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/audit_connect.py +0 -0
  23. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/audit_pb2.py +0 -0
  24. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/audit_pb2.pyi +0 -0
  25. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/component_connect.py +0 -0
  26. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/component_pb2.py +0 -0
  27. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/component_pb2.pyi +0 -0
  28. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/filesystem_connect.py +0 -0
  29. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/filesystem_pb2.py +0 -0
  30. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/filesystem_pb2.pyi +0 -0
  31. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/image_connect.py +0 -0
  32. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/image_pb2.py +0 -0
  33. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/image_pb2.pyi +0 -0
  34. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/ip_connect.py +0 -0
  35. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/ip_pb2.py +0 -0
  36. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/ip_pb2.pyi +0 -0
  37. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/machine_connect.py +0 -0
  38. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/machine_pb2.py +0 -0
  39. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/machine_pb2.pyi +0 -0
  40. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/network_connect.py +0 -0
  41. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/network_pb2.py +0 -0
  42. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/network_pb2.pyi +0 -0
  43. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/partition_connect.py +0 -0
  44. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/partition_pb2.py +0 -0
  45. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/partition_pb2.pyi +0 -0
  46. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/project_connect.py +0 -0
  47. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/size_connect.py +0 -0
  48. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/size_imageconstraint_connect.py +0 -0
  49. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/size_imageconstraint_pb2.py +0 -0
  50. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/size_imageconstraint_pb2.pyi +0 -0
  51. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/size_pb2.py +0 -0
  52. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/size_pb2.pyi +0 -0
  53. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/size_reservation_connect.py +0 -0
  54. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/size_reservation_pb2.py +0 -0
  55. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/size_reservation_pb2.pyi +0 -0
  56. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/switch_connect.py +0 -0
  57. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/switch_pb2.py +0 -0
  58. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/switch_pb2.pyi +0 -0
  59. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/task_connect.py +0 -0
  60. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/task_pb2.py +0 -0
  61. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/task_pb2.pyi +0 -0
  62. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/tenant_connect.py +0 -0
  63. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/tenant_pb2.py +0 -0
  64. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/tenant_pb2.pyi +0 -0
  65. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/token_connect.py +0 -0
  66. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/token_pb2.py +0 -0
  67. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/token_pb2.pyi +0 -0
  68. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/vpn_connect.py +0 -0
  69. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/vpn_pb2.py +0 -0
  70. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/admin/v2/vpn_pb2.pyi +0 -0
  71. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/__init__.py +0 -0
  72. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/__init__.py +0 -0
  73. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/audit_connect.py +0 -0
  74. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/audit_pb2.py +0 -0
  75. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/audit_pb2.pyi +0 -0
  76. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/common_pb2.py +0 -0
  77. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/common_pb2.pyi +0 -0
  78. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/component_pb2.py +0 -0
  79. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/component_pb2.pyi +0 -0
  80. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/filesystem_connect.py +0 -0
  81. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/filesystem_pb2.py +0 -0
  82. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/filesystem_pb2.pyi +0 -0
  83. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/health_connect.py +0 -0
  84. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/health_pb2.py +0 -0
  85. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/health_pb2.pyi +0 -0
  86. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/image_connect.py +0 -0
  87. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/image_pb2.py +0 -0
  88. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/image_pb2.pyi +0 -0
  89. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/ip_connect.py +0 -0
  90. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/ip_pb2.py +0 -0
  91. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/ip_pb2.pyi +0 -0
  92. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/machine_connect.py +0 -0
  93. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/machine_pb2.py +0 -0
  94. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/machine_pb2.pyi +0 -0
  95. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/method_connect.py +0 -0
  96. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/method_pb2.py +0 -0
  97. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/method_pb2.pyi +0 -0
  98. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/network_connect.py +0 -0
  99. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/network_pb2.py +0 -0
  100. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/network_pb2.pyi +0 -0
  101. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/partition_connect.py +0 -0
  102. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/partition_pb2.py +0 -0
  103. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/partition_pb2.pyi +0 -0
  104. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/project_connect.py +0 -0
  105. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/project_pb2.py +0 -0
  106. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/project_pb2.pyi +0 -0
  107. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/size_connect.py +0 -0
  108. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/size_imageconstraint_connect.py +0 -0
  109. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/size_imageconstraint_pb2.py +0 -0
  110. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/size_imageconstraint_pb2.pyi +0 -0
  111. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/size_pb2.py +0 -0
  112. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/size_pb2.pyi +0 -0
  113. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/size_reservation_connect.py +0 -0
  114. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/size_reservation_pb2.py +0 -0
  115. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/size_reservation_pb2.pyi +0 -0
  116. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/switch_pb2.py +0 -0
  117. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/switch_pb2.pyi +0 -0
  118. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/tenant_connect.py +0 -0
  119. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/tenant_pb2.py +0 -0
  120. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/tenant_pb2.pyi +0 -0
  121. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/token_connect.py +0 -0
  122. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/user_connect.py +0 -0
  123. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/user_pb2.py +0 -0
  124. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/user_pb2.pyi +0 -0
  125. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/version_connect.py +0 -0
  126. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/version_pb2.py +0 -0
  127. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/version_pb2.pyi +0 -0
  128. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/vpn_pb2.py +0 -0
  129. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/api/v2/vpn_pb2.pyi +0 -0
  130. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/client/__init__.py +0 -0
  131. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/client/client.py +0 -0
  132. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/client/tests/__init__.py +0 -0
  133. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/client/tests/conftest.py +0 -0
  134. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/client/tests/test_client.py +0 -0
  135. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/client/tests/test_interceptor.py +0 -0
  136. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/client/tests/test_ping.py +0 -0
  137. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/client/tests/test_token_persistent.py +0 -0
  138. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/__init__.py +0 -0
  139. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/__init__.py +0 -0
  140. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/bmc_connect.py +0 -0
  141. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/bmc_pb2.py +0 -0
  142. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/bmc_pb2.pyi +0 -0
  143. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/boot_connect.py +0 -0
  144. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/boot_pb2.py +0 -0
  145. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/boot_pb2.pyi +0 -0
  146. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/component_connect.py +0 -0
  147. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/component_pb2.py +0 -0
  148. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/component_pb2.pyi +0 -0
  149. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/event_connect.py +0 -0
  150. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/switch_connect.py +0 -0
  151. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/switch_pb2.py +0 -0
  152. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/metalstack/infra/v2/switch_pb2.pyi +0 -0
  153. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/setup.cfg +0 -0
  154. {metal_stack_api-0.3.1 → metal_stack_api-0.4.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metal-stack-api
3
- Version: 0.3.1
3
+ Version: 0.4.0
4
4
  Summary: Python API client for metal-stack api
5
5
  Home-page: https://github.com/metal-stack/api
6
6
  Author: metal-stack authors
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metal-stack-api
3
- Version: 0.3.1
3
+ Version: 0.4.0
4
4
  Summary: Python API client for metal-stack api
5
5
  Home-page: https://github.com/metal-stack/api
6
6
  Author: metal-stack authors
@@ -22,13 +22,11 @@ _runtime_version.ValidateProtobufRuntimeVersion(
22
22
  _sym_db = _symbol_database.Default()
23
23
 
24
24
 
25
- from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
26
25
  from metalstack.api.v2 import common_pb2 as metalstack_dot_api_dot_v2_dot_common__pb2
27
- from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2
28
26
  from metalstack.api.v2 import project_pb2 as metalstack_dot_api_dot_v2_dot_project__pb2
29
27
 
30
28
 
31
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!metalstack/admin/v2/project.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1fmetalstack/api/v2/project.proto\"a\n\x19ProjectServiceListRequest\x12:\n\x05query\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.ProjectQueryH\x00R\x05query\x88\x01\x01\x42\x08\n\x06_query\"T\n\x1aProjectServiceListResponse\x12\x36\n\x08projects\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.ProjectR\x08projects2\x85\x01\n\x0eProjectService\x12s\n\x04List\x12..metalstack.admin.v2.ProjectServiceListRequest\x1a/.metalstack.admin.v2.ProjectServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x42\xd0\x01\n\x17\x63om.metalstack.admin.v2B\x0cProjectProtoP\x01Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\xa2\x02\x03MAX\xaa\x02\x13Metalstack.Admin.V2\xca\x02\x13Metalstack\\Admin\\V2\xe2\x02\x1fMetalstack\\Admin\\V2\\GPBMetadata\xea\x02\x15Metalstack::Admin::V2b\x06proto3')
29
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n!metalstack/admin/v2/project.proto\x12\x13metalstack.admin.v2\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/project.proto\"a\n\x19ProjectServiceListRequest\x12:\n\x05query\x18\x01 \x01(\x0b\x32\x1f.metalstack.api.v2.ProjectQueryH\x00R\x05query\x88\x01\x01\x42\x08\n\x06_query\"T\n\x1aProjectServiceListResponse\x12\x36\n\x08projects\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.ProjectR\x08projects2\x85\x01\n\x0eProjectService\x12s\n\x04List\x12..metalstack.admin.v2.ProjectServiceListRequest\x1a/.metalstack.admin.v2.ProjectServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x42\xd0\x01\n\x17\x63om.metalstack.admin.v2B\x0cProjectProtoP\x01Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\xa2\x02\x03MAX\xaa\x02\x13Metalstack.Admin.V2\xca\x02\x13Metalstack\\Admin\\V2\xe2\x02\x1fMetalstack\\Admin\\V2\\GPBMetadata\xea\x02\x15Metalstack::Admin::V2b\x06proto3')
32
30
 
33
31
  _globals = globals()
34
32
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -38,10 +36,10 @@ if not _descriptor._USE_C_DESCRIPTORS:
38
36
  _globals['DESCRIPTOR']._serialized_options = b'\n\027com.metalstack.admin.v2B\014ProjectProtoP\001Z9github.com/metal-stack/api/go/metalstack/admin/v2;adminv2\242\002\003MAX\252\002\023Metalstack.Admin.V2\312\002\023Metalstack\\Admin\\V2\342\002\037Metalstack\\Admin\\V2\\GPBMetadata\352\002\025Metalstack::Admin::V2'
39
37
  _globals['_PROJECTSERVICE'].methods_by_name['List']._loaded_options = None
40
38
  _globals['_PROJECTSERVICE'].methods_by_name['List']._serialized_options = b'\322\363\030\002\001\002\340\363\030\002'
41
- _globals['_PROJECTSERVICELISTREQUEST']._serialized_start=194
42
- _globals['_PROJECTSERVICELISTREQUEST']._serialized_end=291
43
- _globals['_PROJECTSERVICELISTRESPONSE']._serialized_start=293
44
- _globals['_PROJECTSERVICELISTRESPONSE']._serialized_end=377
45
- _globals['_PROJECTSERVICE']._serialized_start=380
46
- _globals['_PROJECTSERVICE']._serialized_end=513
39
+ _globals['_PROJECTSERVICELISTREQUEST']._serialized_start=123
40
+ _globals['_PROJECTSERVICELISTREQUEST']._serialized_end=220
41
+ _globals['_PROJECTSERVICELISTRESPONSE']._serialized_start=222
42
+ _globals['_PROJECTSERVICELISTRESPONSE']._serialized_end=306
43
+ _globals['_PROJECTSERVICE']._serialized_start=309
44
+ _globals['_PROJECTSERVICE']._serialized_end=442
47
45
  # @@protoc_insertion_point(module_scope)
@@ -1,6 +1,4 @@
1
- from buf.validate import validate_pb2 as _validate_pb2
2
1
  from metalstack.api.v2 import common_pb2 as _common_pb2
3
- from metalstack.api.v2 import predefined_rules_pb2 as _predefined_rules_pb2
4
2
  from metalstack.api.v2 import project_pb2 as _project_pb2
5
3
  from google.protobuf.internal import containers as _containers
6
4
  from google.protobuf import descriptor as _descriptor
@@ -25,7 +25,7 @@ _sym_db = _symbol_database.Default()
25
25
  from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
26
26
 
27
27
 
28
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(metalstack/api/v2/predefined_rules.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto:\xb8\x01\n\nmacaddress\x12\x19.buf.validate.StringRules\x18\xb7\xe6\x95& \x01(\x08\x42z\xc2Hw\nu\n\x11string.macaddress\x12&this string must be a valid macaddress\x1a\x38this.matches(\'^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$\')R\nmacaddress:\x99\x01\n\x07is_name\x12\x19.buf.validate.StringRules\x18\xb8\xe6\x95& \x01(\x08\x42\x62\xc2H_\n]\n\x0estring.is_name\x12#must be within 2 and 128 characters\x1a&this.size() >= 2 && this.size() <= 128R\x06isName:\x9a\x01\n\x0eis_description\x12\x19.buf.validate.StringRules\x18\xb9\xe6\x95& \x01(\x08\x42U\xc2HR\nP\n\x15string.is_description\x12#must be shorter than 256 characters\x1a\x12this.size() <= 256R\risDescription:\xa8\x01\n\x0cis_partition\x12\x19.buf.validate.StringRules\x18\xba\xe6\x95& \x01(\x08\x42g\xc2Hd\nb\n\x13string.is_partition\x12#must be within 2 and 128 characters\x1a&this.size() >= 2 && this.size() <= 128R\x0bisPartition:\x82\x01\n\tis_prefix\x12\x19.buf.validate.StringRules\x18\xbb\xe6\x95& \x01(\x08\x42G\xc2HD\nB\n\x0fstring.prefixes\x12\x1cgiven prefixes must be valid\x1a\x11this.isIpPrefix()R\x08isPrefix:m\n\x06is_uri\x12\x19.buf.validate.StringRules\x18\xbc\xe6\x95& \x01(\x08\x42\x38\xc2H5\n3\n\nstring.uri\x12\x17given uri must be valid\x1a\x0cthis.isUri()R\x05isUri:\xa7\x01\n\x11is_ip_or_hostname\x12\x19.buf.validate.StringRules\x18\xbd\xe6\x95& \x01(\x08\x42^\xc2H[\nY\n\rvalid_address\x12&must be a valid IP address or hostname\x1a this.isIp() || this.isHostname()R\x0eisIpOrHostname:\x9d\x01\n\x07trimmed\x12\x19.buf.validate.StringRules\x18\xbe\xe6\x95& \x01(\x08\x42\x65\xc2Hb\n`\n\x0estring.trimmed\x12+value must not start or end with whitespace\x1a!this.trim().size() == this.size()R\x07trimmed:\x99\x01\n\x07is_user\x12\x19.buf.validate.StringRules\x18\xbf\xe6\x95& \x01(\x08\x42\x62\xc2H_\n]\n\x0estring.is_user\x12#must be within 2 and 512 characters\x1a&this.size() >= 2 && this.size() <= 512R\x06isUser:\x9f\x01\n\tis_option\x12\x19.buf.validate.StringRules\x18\xc0\xe6\x95& \x01(\x08\x42\x64\xc2Ha\n_\n\x10string.is_option\x12#must be within 1 and 128 characters\x1a&this.size() >= 1 && this.size() <= 128R\x08isOption:\x98\x01\n\x06is_key\x12\x19.buf.validate.StringRules\x18\xc1\xe6\x95& \x01(\x08\x42\x63\xc2H`\n^\n\rstring.is_key\x12$must be within 1 and 8192 characters\x1a\'this.size() >= 1 && this.size() <= 8192R\x05isKey:\xb0\x01\n\x0fis_tenant_login\x12\x19.buf.validate.StringRules\x18\xc2\xe6\x95& \x01(\x08\x42j\xc2Hg\ne\n\x16string.is_tenant_login\x12#must be within 2 and 256 characters\x1a&this.size() >= 2 && this.size() <= 256R\risTenantLogin:\x8f\x01\n\x08prefixes\x12\x1b.buf.validate.RepeatedRules\x18\xc7\xb4\x96& \x01(\x08\x42S\xc2HP\nN\n\x11repeated.prefixes\x12\x1cgiven prefixes must be valid\x1a\x1bthis.all(m, m.isIpPrefix())R\x08prefixes:u\n\x03ips\x12\x1b.buf.validate.RepeatedRules\x18\xc8\xb4\x96& \x01(\x08\x42\x43\xc2H@\n>\n\x0crepeated.ips\x12\x17given ips must be valid\x1a\x15this.all(m, m.isIp())R\x03ips:\xe6\x01\n\x11\x61re_host_and_port\x12\x1b.buf.validate.RepeatedRules\x18\xc9\xb4\x96& \x01(\x08\x42\x9a\x01\xc2H\x96\x01\n\x93\x01\n\x1arepeated.are_host_and_port\x12Pgiven entries must all be in the form of <ip | host>:<port> but port is optional\x1a#this.all(m, m.isHostAndPort(false))R\x0e\x61reHostAndPort:\xba\x01\n\x0b\x61ll_trimmed\x12\x1b.buf.validate.RepeatedRules\x18\xca\xb4\x96& \x01(\x08\x42y\xc2Hv\nt\n\x14repeated.all_trimmed\x12\x32given values must not start or end with whitespace\x1a(this.all(m, m.trim().size() == m.size())R\nallTrimmed:\x84\x02\n\x17keys_and_values_trimmed\x12\x16.buf.validate.MapRules\x18\xd7\x82\x97& \x01(\x08\x42\xb1\x01\xc2H\xad\x01\n\xaa\x01\n\x1bmap.keys_and_values_trimmed\x12\x35keys and values must not start or end with whitespace\x1aTthis.all(k, k.trim().size() == k.size()) && this.all(v, v.trim().size() == v.size())R\x14keysAndValuesTrimmed:\xab\x01\n\x0ckeys_trimmed\x12\x16.buf.validate.MapRules\x18\xd8\x82\x97& \x01(\x08\x42m\xc2Hj\nh\n\x10map.keys_trimmed\x12*keys must not start or end with whitespace\x1a(this.all(k, k.trim().size() == k.size())R\x0bkeysTrimmed:\x92\x02\n\x18project_roles_keys_valid\x12\x16.buf.validate.MapRules\x18\xd9\x82\x97& \x01(\x08\x42\xbd\x01\xc2H\xb9\x01\n\xb6\x01\n\x17project_roles.key.valid\x12&subject must be a \'*\', or a valid UUID\x1asthis.all(k, k == \'*\' || k.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\'))R\x15projectRolesKeysValid:\xe8\x01\n\x17tenant_roles_keys_valid\x12\x16.buf.validate.MapRules\x18\xda\x82\x97& \x01(\x08\x42\x95\x01\xc2H\x91\x01\n\x8e\x01\n\x16tenant_roles.key.valid\x12\x33subject must be \'*\' or between 2 and 128 characters\x1a?this.all(k, k == \'*\' || this.size() >= 2 || this.size() <=128 )R\x14tenantRolesKeysValid:\xa9\x02\n\x18machine_roles_keys_valid\x12\x16.buf.validate.MapRules\x18\xdb\x82\x97& \x01(\x08\x42\xd4\x01\xc2H\xd0\x01\n\xcd\x01\n\x17machine_roles.key.valid\x12\x32subject must be empty string, \'*\', or a valid UUID\x1a~this.all(k, k == \'\' || k == \'*\' || k.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\'))R\x15machineRolesKeysValidB\xca\x01\n\x15\x63om.metalstack.api.v2B\x14PredefinedRulesProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2')
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n(metalstack/api/v2/predefined_rules.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto:\xb8\x01\n\nmacaddress\x12\x19.buf.validate.StringRules\x18\xb7\xe6\x95& \x01(\x08\x42z\xc2Hw\nu\n\x11string.macaddress\x12&this string must be a valid macaddress\x1a\x38this.matches(\'^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$\')R\nmacaddress:\x99\x01\n\x07is_name\x12\x19.buf.validate.StringRules\x18\xb8\xe6\x95& \x01(\x08\x42\x62\xc2H_\n]\n\x0estring.is_name\x12#must be within 2 and 128 characters\x1a&this.size() >= 2 && this.size() <= 128R\x06isName:\x9a\x01\n\x0eis_description\x12\x19.buf.validate.StringRules\x18\xb9\xe6\x95& \x01(\x08\x42U\xc2HR\nP\n\x15string.is_description\x12#must be shorter than 256 characters\x1a\x12this.size() <= 256R\risDescription:\xa8\x01\n\x0cis_partition\x12\x19.buf.validate.StringRules\x18\xba\xe6\x95& \x01(\x08\x42g\xc2Hd\nb\n\x13string.is_partition\x12#must be within 2 and 128 characters\x1a&this.size() >= 2 && this.size() <= 128R\x0bisPartition:\x82\x01\n\tis_prefix\x12\x19.buf.validate.StringRules\x18\xbb\xe6\x95& \x01(\x08\x42G\xc2HD\nB\n\x0fstring.prefixes\x12\x1cgiven prefixes must be valid\x1a\x11this.isIpPrefix()R\x08isPrefix:m\n\x06is_uri\x12\x19.buf.validate.StringRules\x18\xbc\xe6\x95& \x01(\x08\x42\x38\xc2H5\n3\n\nstring.uri\x12\x17given uri must be valid\x1a\x0cthis.isUri()R\x05isUri:\xa7\x01\n\x11is_ip_or_hostname\x12\x19.buf.validate.StringRules\x18\xbd\xe6\x95& \x01(\x08\x42^\xc2H[\nY\n\rvalid_address\x12&must be a valid IP address or hostname\x1a this.isIp() || this.isHostname()R\x0eisIpOrHostname:\x9d\x01\n\x07trimmed\x12\x19.buf.validate.StringRules\x18\xbe\xe6\x95& \x01(\x08\x42\x65\xc2Hb\n`\n\x0estring.trimmed\x12+value must not start or end with whitespace\x1a!this.trim().size() == this.size()R\x07trimmed:\x99\x01\n\x07is_user\x12\x19.buf.validate.StringRules\x18\xbf\xe6\x95& \x01(\x08\x42\x62\xc2H_\n]\n\x0estring.is_user\x12#must be within 2 and 512 characters\x1a&this.size() >= 2 && this.size() <= 512R\x06isUser:\x9f\x01\n\tis_option\x12\x19.buf.validate.StringRules\x18\xc0\xe6\x95& \x01(\x08\x42\x64\xc2Ha\n_\n\x10string.is_option\x12#must be within 1 and 128 characters\x1a&this.size() >= 1 && this.size() <= 128R\x08isOption:\x98\x01\n\x06is_key\x12\x19.buf.validate.StringRules\x18\xc1\xe6\x95& \x01(\x08\x42\x63\xc2H`\n^\n\rstring.is_key\x12$must be within 1 and 8192 characters\x1a\'this.size() >= 1 && this.size() <= 8192R\x05isKey:\xb0\x01\n\x0fis_tenant_login\x12\x19.buf.validate.StringRules\x18\xc2\xe6\x95& \x01(\x08\x42j\xc2Hg\ne\n\x16string.is_tenant_login\x12#must be within 2 and 128 characters\x1a&this.size() >= 2 && this.size() <= 128R\risTenantLogin:\xef\x01\n\x1cis_tenant_subject_permission\x12\x19.buf.validate.StringRules\x18\xc3\xe6\x95& \x01(\x08\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n#string.is_tenant_subject_permission\x12*must be \'*\' or within 2 and 128 characters\x1a\x35this == \'*\' || this.size() >= 2 && this.size() <= 128R\x19isTenantSubjectPermission:\x94\x02\n\x1dis_project_subject_permission\x12\x19.buf.validate.StringRules\x18\xc4\xe6\x95& \x01(\x08\x42\xb2\x01\xc2H\xae\x01\n\xab\x01\n$string.is_project_subject_permission\x12\x15must be \'*\' or a uuid\x1althis == \'*\' || this.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\')R\x1aisProjectSubjectPermission:\x94\x02\n\x1dis_machine_subject_permission\x12\x19.buf.validate.StringRules\x18\xc5\xe6\x95& \x01(\x08\x42\xb2\x01\xc2H\xae\x01\n\xab\x01\n$string.is_machine_subject_permission\x12\x15must be \'*\' or a uuid\x1althis == \'*\' || this.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\')R\x1aisMachineSubjectPermission:\x8f\x01\n\x08prefixes\x12\x1b.buf.validate.RepeatedRules\x18\xc7\xb4\x96& \x01(\x08\x42S\xc2HP\nN\n\x11repeated.prefixes\x12\x1cgiven prefixes must be valid\x1a\x1bthis.all(m, m.isIpPrefix())R\x08prefixes:u\n\x03ips\x12\x1b.buf.validate.RepeatedRules\x18\xc8\xb4\x96& \x01(\x08\x42\x43\xc2H@\n>\n\x0crepeated.ips\x12\x17given ips must be valid\x1a\x15this.all(m, m.isIp())R\x03ips:\xe6\x01\n\x11\x61re_host_and_port\x12\x1b.buf.validate.RepeatedRules\x18\xc9\xb4\x96& \x01(\x08\x42\x9a\x01\xc2H\x96\x01\n\x93\x01\n\x1arepeated.are_host_and_port\x12Pgiven entries must all be in the form of <ip | host>:<port> but port is optional\x1a#this.all(m, m.isHostAndPort(false))R\x0e\x61reHostAndPort:\xba\x01\n\x0b\x61ll_trimmed\x12\x1b.buf.validate.RepeatedRules\x18\xca\xb4\x96& \x01(\x08\x42y\xc2Hv\nt\n\x14repeated.all_trimmed\x12\x32given values must not start or end with whitespace\x1a(this.all(m, m.trim().size() == m.size())R\nallTrimmed:\x84\x02\n\x17keys_and_values_trimmed\x12\x16.buf.validate.MapRules\x18\xd7\x82\x97& \x01(\x08\x42\xb1\x01\xc2H\xad\x01\n\xaa\x01\n\x1bmap.keys_and_values_trimmed\x12\x35keys and values must not start or end with whitespace\x1aTthis.all(k, k.trim().size() == k.size()) && this.all(v, v.trim().size() == v.size())R\x14keysAndValuesTrimmed:\xab\x01\n\x0ckeys_trimmed\x12\x16.buf.validate.MapRules\x18\xd8\x82\x97& \x01(\x08\x42m\xc2Hj\nh\n\x10map.keys_trimmed\x12*keys must not start or end with whitespace\x1a(this.all(k, k.trim().size() == k.size())R\x0bkeysTrimmed:\x92\x02\n\x18project_roles_keys_valid\x12\x16.buf.validate.MapRules\x18\xd9\x82\x97& \x01(\x08\x42\xbd\x01\xc2H\xb9\x01\n\xb6\x01\n\x17project_roles.key.valid\x12&subject must be a \'*\', or a valid UUID\x1asthis.all(k, k == \'*\' || k.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\'))R\x15projectRolesKeysValid:\xe8\x01\n\x17tenant_roles_keys_valid\x12\x16.buf.validate.MapRules\x18\xda\x82\x97& \x01(\x08\x42\x95\x01\xc2H\x91\x01\n\x8e\x01\n\x16tenant_roles.key.valid\x12\x33subject must be \'*\' or between 2 and 128 characters\x1a?this.all(k, k == \'*\' || this.size() >= 2 || this.size() <=128 )R\x14tenantRolesKeysValid:\x9e\x02\n\x18machine_roles_keys_valid\x12\x16.buf.validate.MapRules\x18\xdb\x82\x97& \x01(\x08\x42\xc9\x01\xc2H\xc5\x01\n\xc2\x01\n\x17machine_roles.key.valid\x12\x32subject must be empty string, \'*\', or a valid UUID\x1asthis.all(k, k == \'*\' || k.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\'))R\x15machineRolesKeysValidB\xca\x01\n\x15\x63om.metalstack.api.v2B\x14PredefinedRulesProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2')
29
29
 
30
30
  _globals = globals()
31
31
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -56,7 +56,13 @@ if not _descriptor._USE_C_DESCRIPTORS:
56
56
  _globals['is_key']._loaded_options = None
57
57
  _globals['is_key']._serialized_options = b'\302H`\n^\n\rstring.is_key\022$must be within 1 and 8192 characters\032\'this.size() >= 1 && this.size() <= 8192'
58
58
  _globals['is_tenant_login']._loaded_options = None
59
- _globals['is_tenant_login']._serialized_options = b'\302Hg\ne\n\026string.is_tenant_login\022#must be within 2 and 256 characters\032&this.size() >= 2 && this.size() <= 256'
59
+ _globals['is_tenant_login']._serialized_options = b'\302Hg\ne\n\026string.is_tenant_login\022#must be within 2 and 128 characters\032&this.size() >= 2 && this.size() <= 128'
60
+ _globals['is_tenant_subject_permission']._loaded_options = None
61
+ _globals['is_tenant_subject_permission']._serialized_options = b'\302H\213\001\n\210\001\n#string.is_tenant_subject_permission\022*must be \'*\' or within 2 and 128 characters\0325this == \'*\' || this.size() >= 2 && this.size() <= 128'
62
+ _globals['is_project_subject_permission']._loaded_options = None
63
+ _globals['is_project_subject_permission']._serialized_options = b'\302H\256\001\n\253\001\n$string.is_project_subject_permission\022\025must be \'*\' or a uuid\032lthis == \'*\' || this.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\')'
64
+ _globals['is_machine_subject_permission']._loaded_options = None
65
+ _globals['is_machine_subject_permission']._serialized_options = b'\302H\256\001\n\253\001\n$string.is_machine_subject_permission\022\025must be \'*\' or a uuid\032lthis == \'*\' || this.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\')'
60
66
  _globals['prefixes']._loaded_options = None
61
67
  _globals['prefixes']._serialized_options = b'\302HP\nN\n\021repeated.prefixes\022\034given prefixes must be valid\032\033this.all(m, m.isIpPrefix())'
62
68
  _globals['ips']._loaded_options = None
@@ -74,5 +80,5 @@ if not _descriptor._USE_C_DESCRIPTORS:
74
80
  _globals['tenant_roles_keys_valid']._loaded_options = None
75
81
  _globals['tenant_roles_keys_valid']._serialized_options = b'\302H\221\001\n\216\001\n\026tenant_roles.key.valid\0223subject must be \'*\' or between 2 and 128 characters\032?this.all(k, k == \'*\' || this.size() >= 2 || this.size() <=128 )'
76
82
  _globals['machine_roles_keys_valid']._loaded_options = None
77
- _globals['machine_roles_keys_valid']._serialized_options = b'\302H\320\001\n\315\001\n\027machine_roles.key.valid\0222subject must be empty string, \'*\', or a valid UUID\032~this.all(k, k == \'\' || k == \'*\' || k.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\'))'
83
+ _globals['machine_roles_keys_valid']._serialized_options = b'\302H\305\001\n\302\001\n\027machine_roles.key.valid\0222subject must be empty string, \'*\', or a valid UUID\032sthis.all(k, k == \'*\' || k.matches(\'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$\'))'
78
84
  # @@protoc_insertion_point(module_scope)
@@ -27,6 +27,12 @@ IS_KEY_FIELD_NUMBER: _ClassVar[int]
27
27
  is_key: _descriptor.FieldDescriptor
28
28
  IS_TENANT_LOGIN_FIELD_NUMBER: _ClassVar[int]
29
29
  is_tenant_login: _descriptor.FieldDescriptor
30
+ IS_TENANT_SUBJECT_PERMISSION_FIELD_NUMBER: _ClassVar[int]
31
+ is_tenant_subject_permission: _descriptor.FieldDescriptor
32
+ IS_PROJECT_SUBJECT_PERMISSION_FIELD_NUMBER: _ClassVar[int]
33
+ is_project_subject_permission: _descriptor.FieldDescriptor
34
+ IS_MACHINE_SUBJECT_PERMISSION_FIELD_NUMBER: _ClassVar[int]
35
+ is_machine_subject_permission: _descriptor.FieldDescriptor
30
36
  PREFIXES_FIELD_NUMBER: _ClassVar[int]
31
37
  prefixes: _descriptor.FieldDescriptor
32
38
  IPS_FIELD_NUMBER: _ClassVar[int]
@@ -29,7 +29,7 @@ from metalstack.api.v2 import common_pb2 as metalstack_dot_api_dot_v2_dot_common
29
29
  from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2
30
30
 
31
31
 
32
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dmetalstack/api/v2/token.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xc2\t\n\x05Token\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\x1f\n\x04user\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xf8\xb3\xae\xb1\x02\x01R\x04user\x12+\n\x04meta\x18\x03 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12-\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12P\n\x0bpermissions\x18\x05 \x03(\x0b\x32#.metalstack.api.v2.MethodPermissionB\t\xbaH\x06\x92\x01\x03\x10\xf4\x03R\x0bpermissions\x12\x34\n\x07\x65xpires\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x07\x65xpires\x12\x37\n\tissued_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x08issuedAt\x12\x45\n\ntoken_type\x18\x08 \x01(\x0e\x32\x1c.metalstack.api.v2.TokenTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\ttokenType\x12j\n\rproject_roles\x18\t \x03(\x0b\x32*.metalstack.api.v2.Token.ProjectRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xc8\x95\xb8\xb1\x02\x01R\x0cprojectRoles\x12g\n\x0ctenant_roles\x18\n \x03(\x0b\x32).metalstack.api.v2.Token.TenantRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xd0\x95\xb8\xb1\x02\x01R\x0btenantRoles\x12J\n\nadmin_role\x18\x0b \x01(\x0e\x32\x1c.metalstack.api.v2.AdminRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\tadminRole\x88\x01\x01\x12J\n\ninfra_role\x18\x0c \x01(\x0e\x32\x1c.metalstack.api.v2.InfraRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x01R\tinfraRole\x88\x01\x01\x12j\n\rmachine_roles\x18\r \x03(\x0b\x32*.metalstack.api.v2.Token.MachineRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xd8\x95\xb8\xb1\x02\x01R\x0cmachineRoles\x1a_\n\x11ProjectRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleR\x05value:\x02\x38\x01\x1a]\n\x10TenantRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x33\n\x05value\x18\x02 \x01(\x0e\x32\x1d.metalstack.api.v2.TenantRoleR\x05value:\x02\x38\x01\x1a_\n\x11MachineRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.MachineRoleR\x05value:\x02\x38\x01\x42\r\n\x0b_admin_roleB\r\n\x0b_infra_role\"\xeb\x08\n\x19TokenServiceCreateRequest\x12-\n\x0b\x64\x65scription\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12O\n\x0bpermissions\x18\x02 \x03(\x0b\x32#.metalstack.api.v2.MethodPermissionB\x08\xbaH\x05\x92\x01\x02\x10\x64R\x0bpermissions\x12G\n\x07\x65xpires\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x12\xbaH\x0f\xaa\x01\x0c\x1a\x05\x08\x81\xe7\x84\x0f\x32\x03\x08\xd8\x04R\x07\x65xpires\x12~\n\rproject_roles\x18\x04 \x03(\x0b\x32>.metalstack.api.v2.TokenServiceCreateRequest.ProjectRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xc8\x95\xb8\xb1\x02\x01R\x0cprojectRoles\x12{\n\x0ctenant_roles\x18\x05 \x03(\x0b\x32=.metalstack.api.v2.TokenServiceCreateRequest.TenantRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xd0\x95\xb8\xb1\x02\x01R\x0btenantRoles\x12J\n\nadmin_role\x18\x06 \x01(\x0e\x32\x1c.metalstack.api.v2.AdminRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\tadminRole\x88\x01\x01\x12J\n\ninfra_role\x18\x07 \x01(\x0e\x32\x1c.metalstack.api.v2.InfraRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x01R\tinfraRole\x88\x01\x01\x12~\n\rmachine_roles\x18\x08 \x03(\x0b\x32>.metalstack.api.v2.TokenServiceCreateRequest.MachineRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xd8\x95\xb8\xb1\x02\x01R\x0cmachineRoles\x12\x31\n\x06labels\x18\t \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labels\x1a_\n\x11ProjectRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleR\x05value:\x02\x38\x01\x1a]\n\x10TenantRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x33\n\x05value\x18\x02 \x01(\x0e\x32\x1d.metalstack.api.v2.TenantRoleR\x05value:\x02\x38\x01\x1a_\n\x11MachineRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.MachineRoleR\x05value:\x02\x38\x01\x42\r\n\x0b_admin_roleB\r\n\x0b_infra_role\"[\n\x10MethodPermission\x12\"\n\x07subject\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x07subject\x12#\n\x07methods\x18\x02 \x03(\tB\t\xbaH\x06\x92\x01\x03\x10\xf4\x03R\x07methods\"d\n\x1aTokenServiceCreateResponse\x12.\n\x05token\x18\x01 \x01(\x0b\x32\x18.metalstack.api.v2.TokenR\x05token\x12\x16\n\x06secret\x18\x02 \x01(\tR\x06secret\"N\n\x17TokenServiceListRequest\x12\x33\n\x05query\x18\x01 \x01(\x0b\x32\x1d.metalstack.api.v2.TokenQueryR\x05query\"L\n\x18TokenServiceListResponse\x12\x30\n\x06tokens\x18\x01 \x03(\x0b\x32\x18.metalstack.api.v2.TokenR\x06tokens\"9\n\x19TokenServiceRevokeRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\"\x1c\n\x1aTokenServiceRevokeResponse\"\x99\t\n\x19TokenServiceUpdateRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x00R\nupdateMeta\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12\x45\n\x0bpermissions\x18\x04 \x03(\x0b\x32#.metalstack.api.v2.MethodPermissionR\x0bpermissions\x12~\n\rproject_roles\x18\x05 \x03(\x0b\x32>.metalstack.api.v2.TokenServiceUpdateRequest.ProjectRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xc8\x95\xb8\xb1\x02\x01R\x0cprojectRoles\x12{\n\x0ctenant_roles\x18\x06 \x03(\x0b\x32=.metalstack.api.v2.TokenServiceUpdateRequest.TenantRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xd0\x95\xb8\xb1\x02\x01R\x0btenantRoles\x12J\n\nadmin_role\x18\x07 \x01(\x0e\x32\x1c.metalstack.api.v2.AdminRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x01R\tadminRole\x88\x01\x01\x12J\n\ninfra_role\x18\x08 \x01(\x0e\x32\x1c.metalstack.api.v2.InfraRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x02R\tinfraRole\x88\x01\x01\x12~\n\rmachine_roles\x18\t \x03(\x0b\x32>.metalstack.api.v2.TokenServiceUpdateRequest.MachineRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xd8\x95\xb8\xb1\x02\x01R\x0cmachineRoles\x12\x37\n\x06labels\x18\n \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsR\x06labels\x1a_\n\x11ProjectRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleR\x05value:\x02\x38\x01\x1a]\n\x10TenantRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x33\n\x05value\x18\x02 \x01(\x0e\x32\x1d.metalstack.api.v2.TenantRoleR\x05value:\x02\x38\x01\x1a_\n\x11MachineRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.MachineRoleR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\r\n\x0b_admin_roleB\r\n\x0b_infra_role\"L\n\x1aTokenServiceUpdateResponse\x12.\n\x05token\x18\x01 \x01(\x0b\x32\x18.metalstack.api.v2.TokenR\x05token\"6\n\x16TokenServiceGetRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\"I\n\x17TokenServiceGetResponse\x12.\n\x05token\x18\x01 \x01(\x0b\x32\x18.metalstack.api.v2.TokenR\x05token\"\x1c\n\x1aTokenServiceRefreshRequest\"e\n\x1bTokenServiceRefreshResponse\x12.\n\x05token\x18\x01 \x01(\x0b\x32\x18.metalstack.api.v2.TokenR\x05token\x12\x16\n\x06secret\x18\x02 \x01(\tR\x06secret\"\xc9\x02\n\nTokenQuery\x12!\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12$\n\x04user\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xf8\xb3\xae\xb1\x02\x01H\x01R\x04user\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x02R\x0b\x64\x65scription\x88\x01\x01\x12\x36\n\x06labels\x18\x04 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x03R\x06labels\x88\x01\x01\x12J\n\ntoken_type\x18\x05 \x01(\x0e\x32\x1c.metalstack.api.v2.TokenTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x04R\ttokenType\x88\x01\x01\x42\x07\n\x05_uuidB\x07\n\x05_userB\x0e\n\x0c_descriptionB\t\n\x07_labelsB\r\n\x0b_token_type*P\n\tTokenType\x12\x1a\n\x16TOKEN_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0eTOKEN_TYPE_API\x10\x01\x12\x13\n\x0fTOKEN_TYPE_USER\x10\x02\x32\xa8\x05\n\x0cTokenService\x12\x66\n\x03Get\x12).metalstack.api.v2.TokenServiceGetRequest\x1a*.metalstack.api.v2.TokenServiceGetResponse\"\x08\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12o\n\x06\x43reate\x12,.metalstack.api.v2.TokenServiceCreateRequest\x1a-.metalstack.api.v2.TokenServiceCreateResponse\"\x08\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12o\n\x06Update\x12,.metalstack.api.v2.TokenServiceUpdateRequest\x1a-.metalstack.api.v2.TokenServiceUpdateResponse\"\x08\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12i\n\x04List\x12*.metalstack.api.v2.TokenServiceListRequest\x1a+.metalstack.api.v2.TokenServiceListResponse\"\x08\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12o\n\x06Revoke\x12,.metalstack.api.v2.TokenServiceRevokeRequest\x1a-.metalstack.api.v2.TokenServiceRevokeResponse\"\x08\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12r\n\x07Refresh\x12-.metalstack.api.v2.TokenServiceRefreshRequest\x1a..metalstack.api.v2.TokenServiceRefreshResponse\"\x08\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x42\xc0\x01\n\x15\x63om.metalstack.api.v2B\nTokenProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3')
32
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dmetalstack/api/v2/token.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a(metalstack/api/v2/predefined_rules.proto\"\xc2\t\n\x05Token\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\x1f\n\x04user\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xf8\xb3\xae\xb1\x02\x01R\x04user\x12+\n\x04meta\x18\x03 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12-\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12P\n\x0bpermissions\x18\x05 \x03(\x0b\x32#.metalstack.api.v2.MethodPermissionB\t\xbaH\x06\x92\x01\x03\x10\xf4\x03R\x0bpermissions\x12\x34\n\x07\x65xpires\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x07\x65xpires\x12\x37\n\tissued_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x08issuedAt\x12\x45\n\ntoken_type\x18\x08 \x01(\x0e\x32\x1c.metalstack.api.v2.TokenTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\ttokenType\x12j\n\rproject_roles\x18\t \x03(\x0b\x32*.metalstack.api.v2.Token.ProjectRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xc8\x95\xb8\xb1\x02\x01R\x0cprojectRoles\x12g\n\x0ctenant_roles\x18\n \x03(\x0b\x32).metalstack.api.v2.Token.TenantRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xd0\x95\xb8\xb1\x02\x01R\x0btenantRoles\x12J\n\nadmin_role\x18\x0b \x01(\x0e\x32\x1c.metalstack.api.v2.AdminRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\tadminRole\x88\x01\x01\x12J\n\ninfra_role\x18\x0c \x01(\x0e\x32\x1c.metalstack.api.v2.InfraRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x01R\tinfraRole\x88\x01\x01\x12j\n\rmachine_roles\x18\r \x03(\x0b\x32*.metalstack.api.v2.Token.MachineRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xd8\x95\xb8\xb1\x02\x01R\x0cmachineRoles\x1a_\n\x11ProjectRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleR\x05value:\x02\x38\x01\x1a]\n\x10TenantRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x33\n\x05value\x18\x02 \x01(\x0e\x32\x1d.metalstack.api.v2.TenantRoleR\x05value:\x02\x38\x01\x1a_\n\x11MachineRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.MachineRoleR\x05value:\x02\x38\x01\x42\r\n\x0b_admin_roleB\r\n\x0b_infra_role\"\xf2\x08\n\x19TokenServiceCreateRequest\x12-\n\x0b\x64\x65scription\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12V\n\x0bpermissions\x18\x02 \x03(\x0b\x32*.metalstack.api.v2.PermissionsByVisibilityB\x08\xbaH\x05\x92\x01\x02\x10\x64R\x0bpermissions\x12G\n\x07\x65xpires\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x12\xbaH\x0f\xaa\x01\x0c\x1a\x05\x08\x81\xe7\x84\x0f\x32\x03\x08\xd8\x04R\x07\x65xpires\x12~\n\rproject_roles\x18\x04 \x03(\x0b\x32>.metalstack.api.v2.TokenServiceCreateRequest.ProjectRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xc8\x95\xb8\xb1\x02\x01R\x0cprojectRoles\x12{\n\x0ctenant_roles\x18\x05 \x03(\x0b\x32=.metalstack.api.v2.TokenServiceCreateRequest.TenantRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xd0\x95\xb8\xb1\x02\x01R\x0btenantRoles\x12J\n\nadmin_role\x18\x06 \x01(\x0e\x32\x1c.metalstack.api.v2.AdminRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\tadminRole\x88\x01\x01\x12J\n\ninfra_role\x18\x07 \x01(\x0e\x32\x1c.metalstack.api.v2.InfraRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x01R\tinfraRole\x88\x01\x01\x12~\n\rmachine_roles\x18\x08 \x03(\x0b\x32>.metalstack.api.v2.TokenServiceCreateRequest.MachineRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xd8\x95\xb8\xb1\x02\x01R\x0cmachineRoles\x12\x31\n\x06labels\x18\t \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labels\x1a_\n\x11ProjectRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleR\x05value:\x02\x38\x01\x1a]\n\x10TenantRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x33\n\x05value\x18\x02 \x01(\x0e\x32\x1d.metalstack.api.v2.TenantRoleR\x05value:\x02\x38\x01\x1a_\n\x11MachineRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.MachineRoleR\x05value:\x02\x38\x01\x42\r\n\x0b_admin_roleB\r\n\x0b_infra_role\"[\n\x10MethodPermission\x12\"\n\x07subject\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x07subject\x12#\n\x07methods\x18\x02 \x03(\tB\t\xbaH\x06\x92\x01\x03\x10\xf4\x03R\x07methods\"\xe1\x03\n\x17PermissionsByVisibility\x12>\n\x06public\x18\x01 \x01(\x0b\x32$.metalstack.api.v2.PublicPermissionsH\x00R\x06public\x12\x38\n\x04self\x18\x02 \x01(\x0b\x32\".metalstack.api.v2.SelfPermissionsH\x00R\x04self\x12\x41\n\x07project\x18\x03 \x01(\x0b\x32%.metalstack.api.v2.ProjectPermissionsH\x00R\x07project\x12>\n\x06tenant\x18\x04 \x01(\x0b\x32$.metalstack.api.v2.TenantPermissionsH\x00R\x06tenant\x12;\n\x05\x61\x64min\x18\x05 \x01(\x0b\x32#.metalstack.api.v2.AdminPermissionsH\x00R\x05\x61\x64min\x12\x41\n\x07machine\x18\x06 \x01(\x0b\x32%.metalstack.api.v2.MachinePermissionsH\x00R\x07machine\x12;\n\x05infra\x18\x07 \x01(\x0b\x32#.metalstack.api.v2.InfraPermissionsH\x00R\x05infraB\x0c\n\nvisibility\"8\n\x11PublicPermissions\x12#\n\x07methods\x18\x02 \x03(\tB\t\xbaH\x06\x92\x01\x03\x10\xf4\x03R\x07methods\"6\n\x0fSelfPermissions\x12#\n\x07methods\x18\x02 \x03(\tB\t\xbaH\x06\x92\x01\x03\x10\xf4\x03R\x07methods\"`\n\x12ProjectPermissions\x12%\n\x07project\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xa0\xb4\xae\xb1\x02\x01R\x07project\x12#\n\x07methods\x18\x02 \x03(\tB\t\xbaH\x06\x92\x01\x03\x10\xf4\x03R\x07methods\"[\n\x11TenantPermissions\x12!\n\x05login\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\x98\xb4\xae\xb1\x02\x01R\x05login\x12#\n\x07methods\x18\x02 \x03(\tB\t\xbaH\x06\x92\x01\x03\x10\xf4\x03R\x07methods\"7\n\x10\x41\x64minPermissions\x12#\n\x07methods\x18\x02 \x03(\tB\t\xbaH\x06\x92\x01\x03\x10\xf4\x03R\x07methods\"Z\n\x12MachinePermissions\x12\x1f\n\x04uuid\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xa8\xb4\xae\xb1\x02\x01R\x04uuid\x12#\n\x07methods\x18\x02 \x03(\tB\t\xbaH\x06\x92\x01\x03\x10\xf4\x03R\x07methods\"7\n\x10InfraPermissions\x12#\n\x07methods\x18\x02 \x03(\tB\t\xbaH\x06\x92\x01\x03\x10\xf4\x03R\x07methods\"d\n\x1aTokenServiceCreateResponse\x12.\n\x05token\x18\x01 \x01(\x0b\x32\x18.metalstack.api.v2.TokenR\x05token\x12\x16\n\x06secret\x18\x02 \x01(\tR\x06secret\"N\n\x17TokenServiceListRequest\x12\x33\n\x05query\x18\x01 \x01(\x0b\x32\x1d.metalstack.api.v2.TokenQueryR\x05query\"L\n\x18TokenServiceListResponse\x12\x30\n\x06tokens\x18\x01 \x03(\x0b\x32\x18.metalstack.api.v2.TokenR\x06tokens\"9\n\x19TokenServiceRevokeRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\"\x1c\n\x1aTokenServiceRevokeResponse\"\xa0\t\n\x19TokenServiceUpdateRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x00R\nupdateMeta\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12L\n\x0bpermissions\x18\x04 \x03(\x0b\x32*.metalstack.api.v2.PermissionsByVisibilityR\x0bpermissions\x12~\n\rproject_roles\x18\x05 \x03(\x0b\x32>.metalstack.api.v2.TokenServiceUpdateRequest.ProjectRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xc8\x95\xb8\xb1\x02\x01R\x0cprojectRoles\x12{\n\x0ctenant_roles\x18\x06 \x03(\x0b\x32=.metalstack.api.v2.TokenServiceUpdateRequest.TenantRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xd0\x95\xb8\xb1\x02\x01R\x0btenantRoles\x12J\n\nadmin_role\x18\x07 \x01(\x0e\x32\x1c.metalstack.api.v2.AdminRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x01R\tadminRole\x88\x01\x01\x12J\n\ninfra_role\x18\x08 \x01(\x0e\x32\x1c.metalstack.api.v2.InfraRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x02R\tinfraRole\x88\x01\x01\x12~\n\rmachine_roles\x18\t \x03(\x0b\x32>.metalstack.api.v2.TokenServiceUpdateRequest.MachineRolesEntryB\x19\xbaH\x16\x9a\x01\x13*\x05\x82\x01\x02\x10\x01\xc0\x95\xb8\xb1\x02\x01\xd8\x95\xb8\xb1\x02\x01R\x0cmachineRoles\x12\x37\n\x06labels\x18\n \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsR\x06labels\x1a_\n\x11ProjectRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.ProjectRoleR\x05value:\x02\x38\x01\x1a]\n\x10TenantRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x33\n\x05value\x18\x02 \x01(\x0e\x32\x1d.metalstack.api.v2.TenantRoleR\x05value:\x02\x38\x01\x1a_\n\x11MachineRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x34\n\x05value\x18\x02 \x01(\x0e\x32\x1e.metalstack.api.v2.MachineRoleR\x05value:\x02\x38\x01\x42\x0e\n\x0c_descriptionB\r\n\x0b_admin_roleB\r\n\x0b_infra_role\"L\n\x1aTokenServiceUpdateResponse\x12.\n\x05token\x18\x01 \x01(\x0b\x32\x18.metalstack.api.v2.TokenR\x05token\"6\n\x16TokenServiceGetRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\"I\n\x17TokenServiceGetResponse\x12.\n\x05token\x18\x01 \x01(\x0b\x32\x18.metalstack.api.v2.TokenR\x05token\"\x1c\n\x1aTokenServiceRefreshRequest\"e\n\x1bTokenServiceRefreshResponse\x12.\n\x05token\x18\x01 \x01(\x0b\x32\x18.metalstack.api.v2.TokenR\x05token\x12\x16\n\x06secret\x18\x02 \x01(\tR\x06secret\"\xc9\x02\n\nTokenQuery\x12!\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12$\n\x04user\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xf8\xb3\xae\xb1\x02\x01H\x01R\x04user\x88\x01\x01\x12\x32\n\x0b\x64\x65scription\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x02R\x0b\x64\x65scription\x88\x01\x01\x12\x36\n\x06labels\x18\x04 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x03R\x06labels\x88\x01\x01\x12J\n\ntoken_type\x18\x05 \x01(\x0e\x32\x1c.metalstack.api.v2.TokenTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x04R\ttokenType\x88\x01\x01\x42\x07\n\x05_uuidB\x07\n\x05_userB\x0e\n\x0c_descriptionB\t\n\x07_labelsB\r\n\x0b_token_type*P\n\tTokenType\x12\x1a\n\x16TOKEN_TYPE_UNSPECIFIED\x10\x00\x12\x12\n\x0eTOKEN_TYPE_API\x10\x01\x12\x13\n\x0fTOKEN_TYPE_USER\x10\x02\x32\xa8\x05\n\x0cTokenService\x12\x66\n\x03Get\x12).metalstack.api.v2.TokenServiceGetRequest\x1a*.metalstack.api.v2.TokenServiceGetResponse\"\x08\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12o\n\x06\x43reate\x12,.metalstack.api.v2.TokenServiceCreateRequest\x1a-.metalstack.api.v2.TokenServiceCreateResponse\"\x08\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12o\n\x06Update\x12,.metalstack.api.v2.TokenServiceUpdateRequest\x1a-.metalstack.api.v2.TokenServiceUpdateResponse\"\x08\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12i\n\x04List\x12*.metalstack.api.v2.TokenServiceListRequest\x1a+.metalstack.api.v2.TokenServiceListResponse\"\x08\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12o\n\x06Revoke\x12,.metalstack.api.v2.TokenServiceRevokeRequest\x1a-.metalstack.api.v2.TokenServiceRevokeResponse\"\x08\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x12r\n\x07Refresh\x12-.metalstack.api.v2.TokenServiceRefreshRequest\x1a..metalstack.api.v2.TokenServiceRefreshResponse\"\x08\xd8\xf3\x18\x02\xe0\xf3\x18\x01\x42\xc0\x01\n\x15\x63om.metalstack.api.v2B\nTokenProtoP\x01Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\xa2\x02\x03MAX\xaa\x02\x11Metalstack.Api.V2\xca\x02\x11Metalstack\\Api\\V2\xe2\x02\x1dMetalstack\\Api\\V2\\GPBMetadata\xea\x02\x13Metalstack::Api::V2b\x06proto3')
33
33
 
34
34
  _globals = globals()
35
35
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -89,6 +89,26 @@ if not _descriptor._USE_C_DESCRIPTORS:
89
89
  _globals['_METHODPERMISSION'].fields_by_name['subject']._serialized_options = b'\272H\005r\003\030\200\002'
90
90
  _globals['_METHODPERMISSION'].fields_by_name['methods']._loaded_options = None
91
91
  _globals['_METHODPERMISSION'].fields_by_name['methods']._serialized_options = b'\272H\006\222\001\003\020\364\003'
92
+ _globals['_PUBLICPERMISSIONS'].fields_by_name['methods']._loaded_options = None
93
+ _globals['_PUBLICPERMISSIONS'].fields_by_name['methods']._serialized_options = b'\272H\006\222\001\003\020\364\003'
94
+ _globals['_SELFPERMISSIONS'].fields_by_name['methods']._loaded_options = None
95
+ _globals['_SELFPERMISSIONS'].fields_by_name['methods']._serialized_options = b'\272H\006\222\001\003\020\364\003'
96
+ _globals['_PROJECTPERMISSIONS'].fields_by_name['project']._loaded_options = None
97
+ _globals['_PROJECTPERMISSIONS'].fields_by_name['project']._serialized_options = b'\272H\010r\006\240\264\256\261\002\001'
98
+ _globals['_PROJECTPERMISSIONS'].fields_by_name['methods']._loaded_options = None
99
+ _globals['_PROJECTPERMISSIONS'].fields_by_name['methods']._serialized_options = b'\272H\006\222\001\003\020\364\003'
100
+ _globals['_TENANTPERMISSIONS'].fields_by_name['login']._loaded_options = None
101
+ _globals['_TENANTPERMISSIONS'].fields_by_name['login']._serialized_options = b'\272H\010r\006\230\264\256\261\002\001'
102
+ _globals['_TENANTPERMISSIONS'].fields_by_name['methods']._loaded_options = None
103
+ _globals['_TENANTPERMISSIONS'].fields_by_name['methods']._serialized_options = b'\272H\006\222\001\003\020\364\003'
104
+ _globals['_ADMINPERMISSIONS'].fields_by_name['methods']._loaded_options = None
105
+ _globals['_ADMINPERMISSIONS'].fields_by_name['methods']._serialized_options = b'\272H\006\222\001\003\020\364\003'
106
+ _globals['_MACHINEPERMISSIONS'].fields_by_name['uuid']._loaded_options = None
107
+ _globals['_MACHINEPERMISSIONS'].fields_by_name['uuid']._serialized_options = b'\272H\010r\006\250\264\256\261\002\001'
108
+ _globals['_MACHINEPERMISSIONS'].fields_by_name['methods']._loaded_options = None
109
+ _globals['_MACHINEPERMISSIONS'].fields_by_name['methods']._serialized_options = b'\272H\006\222\001\003\020\364\003'
110
+ _globals['_INFRAPERMISSIONS'].fields_by_name['methods']._loaded_options = None
111
+ _globals['_INFRAPERMISSIONS'].fields_by_name['methods']._serialized_options = b'\272H\006\222\001\003\020\364\003'
92
112
  _globals['_TOKENSERVICEREVOKEREQUEST'].fields_by_name['uuid']._loaded_options = None
93
113
  _globals['_TOKENSERVICEREVOKEREQUEST'].fields_by_name['uuid']._serialized_options = b'\272H\005r\003\260\001\001'
94
114
  _globals['_TOKENSERVICEUPDATEREQUEST_PROJECTROLESENTRY']._loaded_options = None
@@ -135,8 +155,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
135
155
  _globals['_TOKENSERVICE'].methods_by_name['Revoke']._serialized_options = b'\330\363\030\002\340\363\030\001'
136
156
  _globals['_TOKENSERVICE'].methods_by_name['Refresh']._loaded_options = None
137
157
  _globals['_TOKENSERVICE'].methods_by_name['Refresh']._serialized_options = b'\330\363\030\002\340\363\030\001'
138
- _globals['_TOKENTYPE']._serialized_start=4871
139
- _globals['_TOKENTYPE']._serialized_end=4951
158
+ _globals['_TOKENTYPE']._serialized_start=5880
159
+ _globals['_TOKENTYPE']._serialized_end=5960
140
160
  _globals['_TOKEN']._serialized_start=221
141
161
  _globals['_TOKEN']._serialized_end=1439
142
162
  _globals['_TOKEN_PROJECTROLESENTRY']._serialized_start=1122
@@ -146,45 +166,61 @@ if not _descriptor._USE_C_DESCRIPTORS:
146
166
  _globals['_TOKEN_MACHINEROLESENTRY']._serialized_start=1314
147
167
  _globals['_TOKEN_MACHINEROLESENTRY']._serialized_end=1409
148
168
  _globals['_TOKENSERVICECREATEREQUEST']._serialized_start=1442
149
- _globals['_TOKENSERVICECREATEREQUEST']._serialized_end=2573
169
+ _globals['_TOKENSERVICECREATEREQUEST']._serialized_end=2580
150
170
  _globals['_TOKENSERVICECREATEREQUEST_PROJECTROLESENTRY']._serialized_start=1122
151
171
  _globals['_TOKENSERVICECREATEREQUEST_PROJECTROLESENTRY']._serialized_end=1217
152
172
  _globals['_TOKENSERVICECREATEREQUEST_TENANTROLESENTRY']._serialized_start=1219
153
173
  _globals['_TOKENSERVICECREATEREQUEST_TENANTROLESENTRY']._serialized_end=1312
154
174
  _globals['_TOKENSERVICECREATEREQUEST_MACHINEROLESENTRY']._serialized_start=1314
155
175
  _globals['_TOKENSERVICECREATEREQUEST_MACHINEROLESENTRY']._serialized_end=1409
156
- _globals['_METHODPERMISSION']._serialized_start=2575
157
- _globals['_METHODPERMISSION']._serialized_end=2666
158
- _globals['_TOKENSERVICECREATERESPONSE']._serialized_start=2668
159
- _globals['_TOKENSERVICECREATERESPONSE']._serialized_end=2768
160
- _globals['_TOKENSERVICELISTREQUEST']._serialized_start=2770
161
- _globals['_TOKENSERVICELISTREQUEST']._serialized_end=2848
162
- _globals['_TOKENSERVICELISTRESPONSE']._serialized_start=2850
163
- _globals['_TOKENSERVICELISTRESPONSE']._serialized_end=2926
164
- _globals['_TOKENSERVICEREVOKEREQUEST']._serialized_start=2928
165
- _globals['_TOKENSERVICEREVOKEREQUEST']._serialized_end=2985
166
- _globals['_TOKENSERVICEREVOKERESPONSE']._serialized_start=2987
167
- _globals['_TOKENSERVICEREVOKERESPONSE']._serialized_end=3015
168
- _globals['_TOKENSERVICEUPDATEREQUEST']._serialized_start=3018
169
- _globals['_TOKENSERVICEUPDATEREQUEST']._serialized_end=4195
176
+ _globals['_METHODPERMISSION']._serialized_start=2582
177
+ _globals['_METHODPERMISSION']._serialized_end=2673
178
+ _globals['_PERMISSIONSBYVISIBILITY']._serialized_start=2676
179
+ _globals['_PERMISSIONSBYVISIBILITY']._serialized_end=3157
180
+ _globals['_PUBLICPERMISSIONS']._serialized_start=3159
181
+ _globals['_PUBLICPERMISSIONS']._serialized_end=3215
182
+ _globals['_SELFPERMISSIONS']._serialized_start=3217
183
+ _globals['_SELFPERMISSIONS']._serialized_end=3271
184
+ _globals['_PROJECTPERMISSIONS']._serialized_start=3273
185
+ _globals['_PROJECTPERMISSIONS']._serialized_end=3369
186
+ _globals['_TENANTPERMISSIONS']._serialized_start=3371
187
+ _globals['_TENANTPERMISSIONS']._serialized_end=3462
188
+ _globals['_ADMINPERMISSIONS']._serialized_start=3464
189
+ _globals['_ADMINPERMISSIONS']._serialized_end=3519
190
+ _globals['_MACHINEPERMISSIONS']._serialized_start=3521
191
+ _globals['_MACHINEPERMISSIONS']._serialized_end=3611
192
+ _globals['_INFRAPERMISSIONS']._serialized_start=3613
193
+ _globals['_INFRAPERMISSIONS']._serialized_end=3668
194
+ _globals['_TOKENSERVICECREATERESPONSE']._serialized_start=3670
195
+ _globals['_TOKENSERVICECREATERESPONSE']._serialized_end=3770
196
+ _globals['_TOKENSERVICELISTREQUEST']._serialized_start=3772
197
+ _globals['_TOKENSERVICELISTREQUEST']._serialized_end=3850
198
+ _globals['_TOKENSERVICELISTRESPONSE']._serialized_start=3852
199
+ _globals['_TOKENSERVICELISTRESPONSE']._serialized_end=3928
200
+ _globals['_TOKENSERVICEREVOKEREQUEST']._serialized_start=3930
201
+ _globals['_TOKENSERVICEREVOKEREQUEST']._serialized_end=3987
202
+ _globals['_TOKENSERVICEREVOKERESPONSE']._serialized_start=3989
203
+ _globals['_TOKENSERVICEREVOKERESPONSE']._serialized_end=4017
204
+ _globals['_TOKENSERVICEUPDATEREQUEST']._serialized_start=4020
205
+ _globals['_TOKENSERVICEUPDATEREQUEST']._serialized_end=5204
170
206
  _globals['_TOKENSERVICEUPDATEREQUEST_PROJECTROLESENTRY']._serialized_start=1122
171
207
  _globals['_TOKENSERVICEUPDATEREQUEST_PROJECTROLESENTRY']._serialized_end=1217
172
208
  _globals['_TOKENSERVICEUPDATEREQUEST_TENANTROLESENTRY']._serialized_start=1219
173
209
  _globals['_TOKENSERVICEUPDATEREQUEST_TENANTROLESENTRY']._serialized_end=1312
174
210
  _globals['_TOKENSERVICEUPDATEREQUEST_MACHINEROLESENTRY']._serialized_start=1314
175
211
  _globals['_TOKENSERVICEUPDATEREQUEST_MACHINEROLESENTRY']._serialized_end=1409
176
- _globals['_TOKENSERVICEUPDATERESPONSE']._serialized_start=4197
177
- _globals['_TOKENSERVICEUPDATERESPONSE']._serialized_end=4273
178
- _globals['_TOKENSERVICEGETREQUEST']._serialized_start=4275
179
- _globals['_TOKENSERVICEGETREQUEST']._serialized_end=4329
180
- _globals['_TOKENSERVICEGETRESPONSE']._serialized_start=4331
181
- _globals['_TOKENSERVICEGETRESPONSE']._serialized_end=4404
182
- _globals['_TOKENSERVICEREFRESHREQUEST']._serialized_start=4406
183
- _globals['_TOKENSERVICEREFRESHREQUEST']._serialized_end=4434
184
- _globals['_TOKENSERVICEREFRESHRESPONSE']._serialized_start=4436
185
- _globals['_TOKENSERVICEREFRESHRESPONSE']._serialized_end=4537
186
- _globals['_TOKENQUERY']._serialized_start=4540
187
- _globals['_TOKENQUERY']._serialized_end=4869
188
- _globals['_TOKENSERVICE']._serialized_start=4954
189
- _globals['_TOKENSERVICE']._serialized_end=5634
212
+ _globals['_TOKENSERVICEUPDATERESPONSE']._serialized_start=5206
213
+ _globals['_TOKENSERVICEUPDATERESPONSE']._serialized_end=5282
214
+ _globals['_TOKENSERVICEGETREQUEST']._serialized_start=5284
215
+ _globals['_TOKENSERVICEGETREQUEST']._serialized_end=5338
216
+ _globals['_TOKENSERVICEGETRESPONSE']._serialized_start=5340
217
+ _globals['_TOKENSERVICEGETRESPONSE']._serialized_end=5413
218
+ _globals['_TOKENSERVICEREFRESHREQUEST']._serialized_start=5415
219
+ _globals['_TOKENSERVICEREFRESHREQUEST']._serialized_end=5443
220
+ _globals['_TOKENSERVICEREFRESHRESPONSE']._serialized_start=5445
221
+ _globals['_TOKENSERVICEREFRESHRESPONSE']._serialized_end=5546
222
+ _globals['_TOKENQUERY']._serialized_start=5549
223
+ _globals['_TOKENQUERY']._serialized_end=5878
224
+ _globals['_TOKENSERVICE']._serialized_start=5963
225
+ _globals['_TOKENSERVICE']._serialized_end=6643
190
226
  # @@protoc_insertion_point(module_scope)
@@ -107,7 +107,7 @@ class TokenServiceCreateRequest(_message.Message):
107
107
  MACHINE_ROLES_FIELD_NUMBER: _ClassVar[int]
108
108
  LABELS_FIELD_NUMBER: _ClassVar[int]
109
109
  description: str
110
- permissions: _containers.RepeatedCompositeFieldContainer[MethodPermission]
110
+ permissions: _containers.RepeatedCompositeFieldContainer[PermissionsByVisibility]
111
111
  expires: _duration_pb2.Duration
112
112
  project_roles: _containers.ScalarMap[str, _common_pb2.ProjectRole]
113
113
  tenant_roles: _containers.ScalarMap[str, _common_pb2.TenantRole]
@@ -115,7 +115,7 @@ class TokenServiceCreateRequest(_message.Message):
115
115
  infra_role: _common_pb2.InfraRole
116
116
  machine_roles: _containers.ScalarMap[str, _common_pb2.MachineRole]
117
117
  labels: _common_pb2.Labels
118
- def __init__(self, description: _Optional[str] = ..., permissions: _Optional[_Iterable[_Union[MethodPermission, _Mapping]]] = ..., expires: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., project_roles: _Optional[_Mapping[str, _common_pb2.ProjectRole]] = ..., tenant_roles: _Optional[_Mapping[str, _common_pb2.TenantRole]] = ..., admin_role: _Optional[_Union[_common_pb2.AdminRole, str]] = ..., infra_role: _Optional[_Union[_common_pb2.InfraRole, str]] = ..., machine_roles: _Optional[_Mapping[str, _common_pb2.MachineRole]] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ...) -> None: ...
118
+ def __init__(self, description: _Optional[str] = ..., permissions: _Optional[_Iterable[_Union[PermissionsByVisibility, _Mapping]]] = ..., expires: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., project_roles: _Optional[_Mapping[str, _common_pb2.ProjectRole]] = ..., tenant_roles: _Optional[_Mapping[str, _common_pb2.TenantRole]] = ..., admin_role: _Optional[_Union[_common_pb2.AdminRole, str]] = ..., infra_role: _Optional[_Union[_common_pb2.InfraRole, str]] = ..., machine_roles: _Optional[_Mapping[str, _common_pb2.MachineRole]] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ...) -> None: ...
119
119
 
120
120
  class MethodPermission(_message.Message):
121
121
  __slots__ = ("subject", "methods")
@@ -125,6 +125,72 @@ class MethodPermission(_message.Message):
125
125
  methods: _containers.RepeatedScalarFieldContainer[str]
126
126
  def __init__(self, subject: _Optional[str] = ..., methods: _Optional[_Iterable[str]] = ...) -> None: ...
127
127
 
128
+ class PermissionsByVisibility(_message.Message):
129
+ __slots__ = ("public", "self", "project", "tenant", "admin", "machine", "infra")
130
+ PUBLIC_FIELD_NUMBER: _ClassVar[int]
131
+ SELF_FIELD_NUMBER: _ClassVar[int]
132
+ PROJECT_FIELD_NUMBER: _ClassVar[int]
133
+ TENANT_FIELD_NUMBER: _ClassVar[int]
134
+ ADMIN_FIELD_NUMBER: _ClassVar[int]
135
+ MACHINE_FIELD_NUMBER: _ClassVar[int]
136
+ INFRA_FIELD_NUMBER: _ClassVar[int]
137
+ public: PublicPermissions
138
+ self: SelfPermissions
139
+ project: ProjectPermissions
140
+ tenant: TenantPermissions
141
+ admin: AdminPermissions
142
+ machine: MachinePermissions
143
+ infra: InfraPermissions
144
+ def __init__(self_, public: _Optional[_Union[PublicPermissions, _Mapping]] = ..., self: _Optional[_Union[SelfPermissions, _Mapping]] = ..., project: _Optional[_Union[ProjectPermissions, _Mapping]] = ..., tenant: _Optional[_Union[TenantPermissions, _Mapping]] = ..., admin: _Optional[_Union[AdminPermissions, _Mapping]] = ..., machine: _Optional[_Union[MachinePermissions, _Mapping]] = ..., infra: _Optional[_Union[InfraPermissions, _Mapping]] = ...) -> None: ...
145
+
146
+ class PublicPermissions(_message.Message):
147
+ __slots__ = ("methods",)
148
+ METHODS_FIELD_NUMBER: _ClassVar[int]
149
+ methods: _containers.RepeatedScalarFieldContainer[str]
150
+ def __init__(self, methods: _Optional[_Iterable[str]] = ...) -> None: ...
151
+
152
+ class SelfPermissions(_message.Message):
153
+ __slots__ = ("methods",)
154
+ METHODS_FIELD_NUMBER: _ClassVar[int]
155
+ methods: _containers.RepeatedScalarFieldContainer[str]
156
+ def __init__(self, methods: _Optional[_Iterable[str]] = ...) -> None: ...
157
+
158
+ class ProjectPermissions(_message.Message):
159
+ __slots__ = ("project", "methods")
160
+ PROJECT_FIELD_NUMBER: _ClassVar[int]
161
+ METHODS_FIELD_NUMBER: _ClassVar[int]
162
+ project: str
163
+ methods: _containers.RepeatedScalarFieldContainer[str]
164
+ def __init__(self, project: _Optional[str] = ..., methods: _Optional[_Iterable[str]] = ...) -> None: ...
165
+
166
+ class TenantPermissions(_message.Message):
167
+ __slots__ = ("login", "methods")
168
+ LOGIN_FIELD_NUMBER: _ClassVar[int]
169
+ METHODS_FIELD_NUMBER: _ClassVar[int]
170
+ login: str
171
+ methods: _containers.RepeatedScalarFieldContainer[str]
172
+ def __init__(self, login: _Optional[str] = ..., methods: _Optional[_Iterable[str]] = ...) -> None: ...
173
+
174
+ class AdminPermissions(_message.Message):
175
+ __slots__ = ("methods",)
176
+ METHODS_FIELD_NUMBER: _ClassVar[int]
177
+ methods: _containers.RepeatedScalarFieldContainer[str]
178
+ def __init__(self, methods: _Optional[_Iterable[str]] = ...) -> None: ...
179
+
180
+ class MachinePermissions(_message.Message):
181
+ __slots__ = ("uuid", "methods")
182
+ UUID_FIELD_NUMBER: _ClassVar[int]
183
+ METHODS_FIELD_NUMBER: _ClassVar[int]
184
+ uuid: str
185
+ methods: _containers.RepeatedScalarFieldContainer[str]
186
+ def __init__(self, uuid: _Optional[str] = ..., methods: _Optional[_Iterable[str]] = ...) -> None: ...
187
+
188
+ class InfraPermissions(_message.Message):
189
+ __slots__ = ("methods",)
190
+ METHODS_FIELD_NUMBER: _ClassVar[int]
191
+ methods: _containers.RepeatedScalarFieldContainer[str]
192
+ def __init__(self, methods: _Optional[_Iterable[str]] = ...) -> None: ...
193
+
128
194
  class TokenServiceCreateResponse(_message.Message):
129
195
  __slots__ = ("token", "secret")
130
196
  TOKEN_FIELD_NUMBER: _ClassVar[int]
@@ -191,14 +257,14 @@ class TokenServiceUpdateRequest(_message.Message):
191
257
  uuid: str
192
258
  update_meta: _common_pb2.UpdateMeta
193
259
  description: str
194
- permissions: _containers.RepeatedCompositeFieldContainer[MethodPermission]
260
+ permissions: _containers.RepeatedCompositeFieldContainer[PermissionsByVisibility]
195
261
  project_roles: _containers.ScalarMap[str, _common_pb2.ProjectRole]
196
262
  tenant_roles: _containers.ScalarMap[str, _common_pb2.TenantRole]
197
263
  admin_role: _common_pb2.AdminRole
198
264
  infra_role: _common_pb2.InfraRole
199
265
  machine_roles: _containers.ScalarMap[str, _common_pb2.MachineRole]
200
266
  labels: _common_pb2.UpdateLabels
201
- def __init__(self, uuid: _Optional[str] = ..., update_meta: _Optional[_Union[_common_pb2.UpdateMeta, _Mapping]] = ..., description: _Optional[str] = ..., permissions: _Optional[_Iterable[_Union[MethodPermission, _Mapping]]] = ..., project_roles: _Optional[_Mapping[str, _common_pb2.ProjectRole]] = ..., tenant_roles: _Optional[_Mapping[str, _common_pb2.TenantRole]] = ..., admin_role: _Optional[_Union[_common_pb2.AdminRole, str]] = ..., infra_role: _Optional[_Union[_common_pb2.InfraRole, str]] = ..., machine_roles: _Optional[_Mapping[str, _common_pb2.MachineRole]] = ..., labels: _Optional[_Union[_common_pb2.UpdateLabels, _Mapping]] = ...) -> None: ...
267
+ def __init__(self, uuid: _Optional[str] = ..., update_meta: _Optional[_Union[_common_pb2.UpdateMeta, _Mapping]] = ..., description: _Optional[str] = ..., permissions: _Optional[_Iterable[_Union[PermissionsByVisibility, _Mapping]]] = ..., project_roles: _Optional[_Mapping[str, _common_pb2.ProjectRole]] = ..., tenant_roles: _Optional[_Mapping[str, _common_pb2.TenantRole]] = ..., admin_role: _Optional[_Union[_common_pb2.AdminRole, str]] = ..., infra_role: _Optional[_Union[_common_pb2.InfraRole, str]] = ..., machine_roles: _Optional[_Mapping[str, _common_pb2.MachineRole]] = ..., labels: _Optional[_Union[_common_pb2.UpdateLabels, _Mapping]] = ...) -> None: ...
202
268
 
203
269
  class TokenServiceUpdateResponse(_message.Message):
204
270
  __slots__ = ("token",)
@@ -22,13 +22,11 @@ _runtime_version.ValidateProtobufRuntimeVersion(
22
22
  _sym_db = _symbol_database.Default()
23
23
 
24
24
 
25
- from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
26
- from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
27
25
  from metalstack.api.v2 import common_pb2 as metalstack_dot_api_dot_v2_dot_common__pb2
28
26
  from metalstack.api.v2 import machine_pb2 as metalstack_dot_api_dot_v2_dot_machine__pb2
29
27
 
30
28
 
31
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/infra/v2/event.proto\x12\x13metalstack.infra.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\"\xd3\x01\n\x17\x45ventServiceSendRequest\x12P\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x38.metalstack.infra.v2.EventServiceSendRequest.EventsEntryR\x06\x65vents\x1a\x66\n\x0b\x45ventsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32+.metalstack.api.v2.MachineProvisioningEventR\x05value:\x02\x38\x01\"J\n\x18\x45ventServiceSendResponse\x12\x16\n\x06\x65vents\x18\x01 \x01(\x04R\x06\x65vents\x12\x16\n\x06\x66\x61iled\x18\x02 \x03(\tR\x06\x66\x61iled2~\n\x0c\x45ventService\x12n\n\x04Send\x12,.metalstack.infra.v2.EventServiceSendRequest\x1a-.metalstack.infra.v2.EventServiceSendResponse\"\t\xe0\xf3\x18\x02\xea\xf3\x18\x01\x01\x42\xce\x01\n\x17\x63om.metalstack.infra.v2B\nEventProtoP\x01Z9github.com/metal-stack/api/go/metalstack/infra/v2;infrav2\xa2\x02\x03MIX\xaa\x02\x13Metalstack.Infra.V2\xca\x02\x13Metalstack\\Infra\\V2\xe2\x02\x1fMetalstack\\Infra\\V2\\GPBMetadata\xea\x02\x15Metalstack::Infra::V2b\x06proto3')
29
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/infra/v2/event.proto\x12\x13metalstack.infra.v2\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\"\xd3\x01\n\x17\x45ventServiceSendRequest\x12P\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x38.metalstack.infra.v2.EventServiceSendRequest.EventsEntryR\x06\x65vents\x1a\x66\n\x0b\x45ventsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x41\n\x05value\x18\x02 \x01(\x0b\x32+.metalstack.api.v2.MachineProvisioningEventR\x05value:\x02\x38\x01\"J\n\x18\x45ventServiceSendResponse\x12\x16\n\x06\x65vents\x18\x01 \x01(\x04R\x06\x65vents\x12\x16\n\x06\x66\x61iled\x18\x02 \x03(\tR\x06\x66\x61iled2~\n\x0c\x45ventService\x12n\n\x04Send\x12,.metalstack.infra.v2.EventServiceSendRequest\x1a-.metalstack.infra.v2.EventServiceSendResponse\"\t\xe0\xf3\x18\x02\xea\xf3\x18\x01\x01\x42\xce\x01\n\x17\x63om.metalstack.infra.v2B\nEventProtoP\x01Z9github.com/metal-stack/api/go/metalstack/infra/v2;infrav2\xa2\x02\x03MIX\xaa\x02\x13Metalstack.Infra.V2\xca\x02\x13Metalstack\\Infra\\V2\xe2\x02\x1fMetalstack\\Infra\\V2\\GPBMetadata\xea\x02\x15Metalstack::Infra::V2b\x06proto3')
32
30
 
33
31
  _globals = globals()
34
32
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -40,12 +38,12 @@ if not _descriptor._USE_C_DESCRIPTORS:
40
38
  _globals['_EVENTSERVICESENDREQUEST_EVENTSENTRY']._serialized_options = b'8\001'
41
39
  _globals['_EVENTSERVICE'].methods_by_name['Send']._loaded_options = None
42
40
  _globals['_EVENTSERVICE'].methods_by_name['Send']._serialized_options = b'\340\363\030\002\352\363\030\001\001'
43
- _globals['_EVENTSERVICESENDREQUEST']._serialized_start=184
44
- _globals['_EVENTSERVICESENDREQUEST']._serialized_end=395
45
- _globals['_EVENTSERVICESENDREQUEST_EVENTSENTRY']._serialized_start=293
46
- _globals['_EVENTSERVICESENDREQUEST_EVENTSENTRY']._serialized_end=395
47
- _globals['_EVENTSERVICESENDRESPONSE']._serialized_start=397
48
- _globals['_EVENTSERVICESENDRESPONSE']._serialized_end=471
49
- _globals['_EVENTSERVICE']._serialized_start=473
50
- _globals['_EVENTSERVICE']._serialized_end=599
41
+ _globals['_EVENTSERVICESENDREQUEST']._serialized_start=122
42
+ _globals['_EVENTSERVICESENDREQUEST']._serialized_end=333
43
+ _globals['_EVENTSERVICESENDREQUEST_EVENTSENTRY']._serialized_start=231
44
+ _globals['_EVENTSERVICESENDREQUEST_EVENTSENTRY']._serialized_end=333
45
+ _globals['_EVENTSERVICESENDRESPONSE']._serialized_start=335
46
+ _globals['_EVENTSERVICESENDRESPONSE']._serialized_end=409
47
+ _globals['_EVENTSERVICE']._serialized_start=411
48
+ _globals['_EVENTSERVICE']._serialized_end=537
51
49
  # @@protoc_insertion_point(module_scope)
@@ -1,5 +1,3 @@
1
- from buf.validate import validate_pb2 as _validate_pb2
2
- from google.protobuf import timestamp_pb2 as _timestamp_pb2
3
1
  from metalstack.api.v2 import common_pb2 as _common_pb2
4
2
  from metalstack.api.v2 import machine_pb2 as _machine_pb2
5
3
  from google.protobuf.internal import containers as _containers