metal-stack-api 0.0.52__tar.gz → 0.0.54__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 (140) hide show
  1. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/PKG-INFO +1 -1
  2. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metal_stack_api.egg-info/PKG-INFO +1 -1
  3. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/partition_pb2.py +24 -24
  4. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/partition_pb2.pyi +6 -6
  5. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/switch_connect.py +65 -0
  6. metal_stack_api-0.0.54/metalstack/admin/v2/switch_pb2.py +113 -0
  7. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/switch_pb2.pyi +15 -0
  8. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/machine_pb2.py +116 -116
  9. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/machine_pb2.pyi +12 -12
  10. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/partition_pb2.py +24 -24
  11. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/partition_pb2.pyi +6 -6
  12. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/switch_pb2.py +34 -29
  13. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/switch_pb2.pyi +23 -0
  14. metal_stack_api-0.0.52/metalstack/admin/v2/switch_pb2.py +0 -106
  15. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/README.md +0 -0
  16. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metal_stack_api.egg-info/SOURCES.txt +0 -0
  17. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metal_stack_api.egg-info/dependency_links.txt +0 -0
  18. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metal_stack_api.egg-info/requires.txt +0 -0
  19. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metal_stack_api.egg-info/top_level.txt +0 -0
  20. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/__init__.py +0 -0
  21. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/__init__.py +0 -0
  22. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/__init__.py +0 -0
  23. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/component_connect.py +0 -0
  24. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/component_pb2.py +0 -0
  25. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/component_pb2.pyi +0 -0
  26. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/filesystem_connect.py +0 -0
  27. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/filesystem_pb2.py +0 -0
  28. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/filesystem_pb2.pyi +0 -0
  29. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/image_connect.py +0 -0
  30. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/image_pb2.py +0 -0
  31. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/image_pb2.pyi +0 -0
  32. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/ip_connect.py +0 -0
  33. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/ip_pb2.py +0 -0
  34. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/ip_pb2.pyi +0 -0
  35. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/machine_connect.py +0 -0
  36. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/machine_pb2.py +0 -0
  37. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/machine_pb2.pyi +0 -0
  38. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/network_connect.py +0 -0
  39. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/network_pb2.py +0 -0
  40. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/network_pb2.pyi +0 -0
  41. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/partition_connect.py +0 -0
  42. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/project_connect.py +0 -0
  43. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/project_pb2.py +0 -0
  44. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/project_pb2.pyi +0 -0
  45. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/size_connect.py +0 -0
  46. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/size_imageconstraint_connect.py +0 -0
  47. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/size_imageconstraint_pb2.py +0 -0
  48. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/size_imageconstraint_pb2.pyi +0 -0
  49. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/size_pb2.py +0 -0
  50. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/size_pb2.pyi +0 -0
  51. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/size_reservation_connect.py +0 -0
  52. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/size_reservation_pb2.py +0 -0
  53. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/size_reservation_pb2.pyi +0 -0
  54. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/task_connect.py +0 -0
  55. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/task_pb2.py +0 -0
  56. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/task_pb2.pyi +0 -0
  57. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/tenant_connect.py +0 -0
  58. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/tenant_pb2.py +0 -0
  59. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/tenant_pb2.pyi +0 -0
  60. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/token_connect.py +0 -0
  61. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/token_pb2.py +0 -0
  62. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/token_pb2.pyi +0 -0
  63. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/vpn_connect.py +0 -0
  64. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/vpn_pb2.py +0 -0
  65. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/admin/v2/vpn_pb2.pyi +0 -0
  66. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/__init__.py +0 -0
  67. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/__init__.py +0 -0
  68. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/common_pb2.py +0 -0
  69. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/common_pb2.pyi +0 -0
  70. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/component_pb2.py +0 -0
  71. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/component_pb2.pyi +0 -0
  72. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/filesystem_connect.py +0 -0
  73. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/filesystem_pb2.py +0 -0
  74. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/filesystem_pb2.pyi +0 -0
  75. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/health_connect.py +0 -0
  76. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/health_pb2.py +0 -0
  77. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/health_pb2.pyi +0 -0
  78. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/image_connect.py +0 -0
  79. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/image_pb2.py +0 -0
  80. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/image_pb2.pyi +0 -0
  81. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/ip_connect.py +0 -0
  82. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/ip_pb2.py +0 -0
  83. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/ip_pb2.pyi +0 -0
  84. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/machine_connect.py +0 -0
  85. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/method_connect.py +0 -0
  86. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/method_pb2.py +0 -0
  87. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/method_pb2.pyi +0 -0
  88. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/network_connect.py +0 -0
  89. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/network_pb2.py +0 -0
  90. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/network_pb2.pyi +0 -0
  91. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/partition_connect.py +0 -0
  92. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/predefined_rules_pb2.py +0 -0
  93. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/predefined_rules_pb2.pyi +0 -0
  94. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/project_connect.py +0 -0
  95. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/project_pb2.py +0 -0
  96. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/project_pb2.pyi +0 -0
  97. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/size_connect.py +0 -0
  98. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/size_imageconstraint_connect.py +0 -0
  99. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/size_imageconstraint_pb2.py +0 -0
  100. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/size_imageconstraint_pb2.pyi +0 -0
  101. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/size_pb2.py +0 -0
  102. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/size_pb2.pyi +0 -0
  103. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/size_reservation_connect.py +0 -0
  104. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/size_reservation_pb2.py +0 -0
  105. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/size_reservation_pb2.pyi +0 -0
  106. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/tenant_connect.py +0 -0
  107. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/tenant_pb2.py +0 -0
  108. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/tenant_pb2.pyi +0 -0
  109. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/token_connect.py +0 -0
  110. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/token_pb2.py +0 -0
  111. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/token_pb2.pyi +0 -0
  112. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/user_connect.py +0 -0
  113. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/user_pb2.py +0 -0
  114. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/user_pb2.pyi +0 -0
  115. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/version_connect.py +0 -0
  116. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/version_pb2.py +0 -0
  117. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/version_pb2.pyi +0 -0
  118. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/vpn_pb2.py +0 -0
  119. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/api/v2/vpn_pb2.pyi +0 -0
  120. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/client/__init__.py +0 -0
  121. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/client/client.py +0 -0
  122. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/__init__.py +0 -0
  123. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/__init__.py +0 -0
  124. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/bmc_connect.py +0 -0
  125. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/bmc_pb2.py +0 -0
  126. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/bmc_pb2.pyi +0 -0
  127. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/boot_connect.py +0 -0
  128. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/boot_pb2.py +0 -0
  129. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/boot_pb2.pyi +0 -0
  130. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/component_connect.py +0 -0
  131. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/component_pb2.py +0 -0
  132. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/component_pb2.pyi +0 -0
  133. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/event_connect.py +0 -0
  134. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/event_pb2.py +0 -0
  135. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/event_pb2.pyi +0 -0
  136. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/switch_connect.py +0 -0
  137. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/switch_pb2.py +0 -0
  138. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/metalstack/infra/v2/switch_pb2.pyi +0 -0
  139. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/setup.cfg +0 -0
  140. {metal_stack_api-0.0.52 → metal_stack_api-0.0.54}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metal-stack-api
3
- Version: 0.0.52
3
+ Version: 0.0.54
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.0.52
3
+ Version: 0.0.54
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
@@ -28,7 +28,7 @@ from metalstack.api.v2 import partition_pb2 as metalstack_dot_api_dot_v2_dot_par
28
28
  from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2
29
29
 
30
30
 
31
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#metalstack/admin/v2/partition.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a!metalstack/api/v2/partition.proto\x1a(metalstack/api/v2/predefined_rules.proto\"[\n\x1dPartitionServiceCreateRequest\x12:\n\tpartition\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.PartitionR\tpartition\"\xb3\x04\n\x1dPartitionServiceUpdateRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\x02id\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\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\\\n\x12\x62oot_configuration\x18\x04 \x01(\x0b\x32-.metalstack.api.v2.PartitionBootConfigurationR\x11\x62ootConfiguration\x12\x45\n\ndns_server\x18\x05 \x03(\x0b\x32\x1c.metalstack.api.v2.DNSServerB\x08\xbaH\x05\x92\x01\x02\x10\x03R\tdnsServer\x12\x45\n\nntp_server\x18\x06 \x03(\x0b\x32\x1c.metalstack.api.v2.NTPServerB\x08\xbaH\x05\x92\x01\x02\x10\nR\tntpServer\x12\x34\n\x16mgmt_service_addresses\x18\x07 \x03(\tR\x14mgmtServiceAddresses\x12<\n\x06labels\x18\x08 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x01R\x06labels\x88\x01\x01\x42\x0e\n\x0c_descriptionB\t\n\x07_labels\"<\n\x1dPartitionServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\x02id\"\\\n\x1ePartitionServiceCreateResponse\x12:\n\tpartition\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.PartitionR\tpartition\"\\\n\x1ePartitionServiceUpdateResponse\x12:\n\tpartition\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.PartitionR\tpartition\"\\\n\x1ePartitionServiceDeleteResponse\x12:\n\tpartition\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.PartitionR\tpartition\"\xae\x01\n\x1fPartitionServiceCapacityRequest\x12 \n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12$\n\x04size\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04size\x88\x01\x01\x12\'\n\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x02R\x07project\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_sizeB\n\n\x08_project\"y\n PartitionServiceCapacityResponse\x12U\n\x12partition_capacity\x18\x01 \x03(\x0b\x32&.metalstack.admin.v2.PartitionCapacityR\x11partitionCapacity\"\xa0\x01\n\x11PartitionCapacity\x12)\n\tpartition\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12`\n\x17machine_size_capacities\x18\x02 \x03(\x0b\x32(.metalstack.admin.v2.MachineSizeCapacityR\x15machineSizeCapacities\"\x83\x04\n\x13MachineSizeCapacity\x12\x1f\n\x04size\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04size\x12\x14\n\x05total\x18\x03 \x01(\x03R\x05total\x12\x1f\n\x0bphoned_home\x18\x04 \x01(\x03R\nphonedHome\x12\x18\n\x07waiting\x18\x05 \x01(\x03R\x07waiting\x12\x14\n\x05other\x18\x06 \x01(\x03R\x05other\x12%\n\x0eother_machines\x18\x07 \x03(\tR\rotherMachines\x12\x1c\n\tallocated\x18\x08 \x01(\x03R\tallocated\x12 \n\x0b\x61llocatable\x18\t \x01(\x03R\x0b\x61llocatable\x12\x12\n\x04\x66ree\x18\n \x01(\x03R\x04\x66ree\x12 \n\x0bunavailable\x18\x0b \x01(\x03R\x0bunavailable\x12\x16\n\x06\x66\x61ulty\x18\x0c \x01(\x03R\x06\x66\x61ulty\x12\'\n\x0f\x66\x61ulty_machines\x18\r \x03(\tR\x0e\x66\x61ultyMachines\x12\"\n\x0creservations\x18\x0e \x01(\x03R\x0creservations\x12+\n\x11used_reservations\x18\x0f \x01(\x03R\x10usedReservations\x12\x35\n\x16remaining_reservations\x18\x10 \x01(\x03R\x15remainingReservations2\x92\x04\n\x10PartitionService\x12|\n\x06\x43reate\x12\x32.metalstack.admin.v2.PartitionServiceCreateRequest\x1a\x33.metalstack.admin.v2.PartitionServiceCreateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12|\n\x06Update\x12\x32.metalstack.admin.v2.PartitionServiceUpdateRequest\x1a\x33.metalstack.admin.v2.PartitionServiceUpdateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12|\n\x06\x44\x65lete\x12\x32.metalstack.admin.v2.PartitionServiceDeleteRequest\x1a\x33.metalstack.admin.v2.PartitionServiceDeleteResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x83\x01\n\x08\x43\x61pacity\x12\x34.metalstack.admin.v2.PartitionServiceCapacityRequest\x1a\x35.metalstack.admin.v2.PartitionServiceCapacityResponse\"\n\xd2\xf3\x18\x02\x02\x01\xe0\xf3\x18\x02\x42\xd2\x01\n\x17\x63om.metalstack.admin.v2B\x0ePartitionProtoP\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')
31
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n#metalstack/admin/v2/partition.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1emetalstack/api/v2/common.proto\x1a!metalstack/api/v2/partition.proto\x1a(metalstack/api/v2/predefined_rules.proto\"[\n\x1dPartitionServiceCreateRequest\x12:\n\tpartition\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.PartitionR\tpartition\"\xb7\x04\n\x1dPartitionServiceUpdateRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\x02id\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\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\\\n\x12\x62oot_configuration\x18\x04 \x01(\x0b\x32-.metalstack.api.v2.PartitionBootConfigurationR\x11\x62ootConfiguration\x12G\n\x0b\x64ns_servers\x18\x05 \x03(\x0b\x32\x1c.metalstack.api.v2.DNSServerB\x08\xbaH\x05\x92\x01\x02\x10\x03R\ndnsServers\x12G\n\x0bntp_servers\x18\x06 \x03(\x0b\x32\x1c.metalstack.api.v2.NTPServerB\x08\xbaH\x05\x92\x01\x02\x10\nR\nntpServers\x12\x34\n\x16mgmt_service_addresses\x18\x07 \x03(\tR\x14mgmtServiceAddresses\x12<\n\x06labels\x18\x08 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x01R\x06labels\x88\x01\x01\x42\x0e\n\x0c_descriptionB\t\n\x07_labels\"<\n\x1dPartitionServiceDeleteRequest\x12\x1b\n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\x02id\"\\\n\x1ePartitionServiceCreateResponse\x12:\n\tpartition\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.PartitionR\tpartition\"\\\n\x1ePartitionServiceUpdateResponse\x12:\n\tpartition\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.PartitionR\tpartition\"\\\n\x1ePartitionServiceDeleteResponse\x12:\n\tpartition\x18\x01 \x01(\x0b\x32\x1c.metalstack.api.v2.PartitionR\tpartition\"\xae\x01\n\x1fPartitionServiceCapacityRequest\x12 \n\x02id\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01H\x00R\x02id\x88\x01\x01\x12$\n\x04size\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04size\x88\x01\x01\x12\'\n\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x02R\x07project\x88\x01\x01\x42\x05\n\x03_idB\x07\n\x05_sizeB\n\n\x08_project\"y\n PartitionServiceCapacityResponse\x12U\n\x12partition_capacity\x18\x01 \x03(\x0b\x32&.metalstack.admin.v2.PartitionCapacityR\x11partitionCapacity\"\xa0\x01\n\x11PartitionCapacity\x12)\n\tpartition\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12`\n\x17machine_size_capacities\x18\x02 \x03(\x0b\x32(.metalstack.admin.v2.MachineSizeCapacityR\x15machineSizeCapacities\"\x83\x04\n\x13MachineSizeCapacity\x12\x1f\n\x04size\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04size\x12\x14\n\x05total\x18\x03 \x01(\x03R\x05total\x12\x1f\n\x0bphoned_home\x18\x04 \x01(\x03R\nphonedHome\x12\x18\n\x07waiting\x18\x05 \x01(\x03R\x07waiting\x12\x14\n\x05other\x18\x06 \x01(\x03R\x05other\x12%\n\x0eother_machines\x18\x07 \x03(\tR\rotherMachines\x12\x1c\n\tallocated\x18\x08 \x01(\x03R\tallocated\x12 \n\x0b\x61llocatable\x18\t \x01(\x03R\x0b\x61llocatable\x12\x12\n\x04\x66ree\x18\n \x01(\x03R\x04\x66ree\x12 \n\x0bunavailable\x18\x0b \x01(\x03R\x0bunavailable\x12\x16\n\x06\x66\x61ulty\x18\x0c \x01(\x03R\x06\x66\x61ulty\x12\'\n\x0f\x66\x61ulty_machines\x18\r \x03(\tR\x0e\x66\x61ultyMachines\x12\"\n\x0creservations\x18\x0e \x01(\x03R\x0creservations\x12+\n\x11used_reservations\x18\x0f \x01(\x03R\x10usedReservations\x12\x35\n\x16remaining_reservations\x18\x10 \x01(\x03R\x15remainingReservations2\x92\x04\n\x10PartitionService\x12|\n\x06\x43reate\x12\x32.metalstack.admin.v2.PartitionServiceCreateRequest\x1a\x33.metalstack.admin.v2.PartitionServiceCreateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12|\n\x06Update\x12\x32.metalstack.admin.v2.PartitionServiceUpdateRequest\x1a\x33.metalstack.admin.v2.PartitionServiceUpdateResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12|\n\x06\x44\x65lete\x12\x32.metalstack.admin.v2.PartitionServiceDeleteRequest\x1a\x33.metalstack.admin.v2.PartitionServiceDeleteResponse\"\t\xd2\xf3\x18\x01\x01\xe0\xf3\x18\x01\x12\x83\x01\n\x08\x43\x61pacity\x12\x34.metalstack.admin.v2.PartitionServiceCapacityRequest\x1a\x35.metalstack.admin.v2.PartitionServiceCapacityResponse\"\n\xd2\xf3\x18\x02\x02\x01\xe0\xf3\x18\x02\x42\xd2\x01\n\x17\x63om.metalstack.admin.v2B\x0ePartitionProtoP\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
32
 
33
33
  _globals = globals()
34
34
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -42,10 +42,10 @@ if not _descriptor._USE_C_DESCRIPTORS:
42
42
  _globals['_PARTITIONSERVICEUPDATEREQUEST'].fields_by_name['update_meta']._serialized_options = b'\272H\003\310\001\001'
43
43
  _globals['_PARTITIONSERVICEUPDATEREQUEST'].fields_by_name['description']._loaded_options = None
44
44
  _globals['_PARTITIONSERVICEUPDATEREQUEST'].fields_by_name['description']._serialized_options = b'\272H\010r\006\310\263\256\261\002\001'
45
- _globals['_PARTITIONSERVICEUPDATEREQUEST'].fields_by_name['dns_server']._loaded_options = None
46
- _globals['_PARTITIONSERVICEUPDATEREQUEST'].fields_by_name['dns_server']._serialized_options = b'\272H\005\222\001\002\020\003'
47
- _globals['_PARTITIONSERVICEUPDATEREQUEST'].fields_by_name['ntp_server']._loaded_options = None
48
- _globals['_PARTITIONSERVICEUPDATEREQUEST'].fields_by_name['ntp_server']._serialized_options = b'\272H\005\222\001\002\020\n'
45
+ _globals['_PARTITIONSERVICEUPDATEREQUEST'].fields_by_name['dns_servers']._loaded_options = None
46
+ _globals['_PARTITIONSERVICEUPDATEREQUEST'].fields_by_name['dns_servers']._serialized_options = b'\272H\005\222\001\002\020\003'
47
+ _globals['_PARTITIONSERVICEUPDATEREQUEST'].fields_by_name['ntp_servers']._loaded_options = None
48
+ _globals['_PARTITIONSERVICEUPDATEREQUEST'].fields_by_name['ntp_servers']._serialized_options = b'\272H\005\222\001\002\020\n'
49
49
  _globals['_PARTITIONSERVICEDELETEREQUEST'].fields_by_name['id']._loaded_options = None
50
50
  _globals['_PARTITIONSERVICEDELETEREQUEST'].fields_by_name['id']._serialized_options = b'\272H\010r\006\320\263\256\261\002\001'
51
51
  _globals['_PARTITIONSERVICECAPACITYREQUEST'].fields_by_name['id']._loaded_options = None
@@ -69,23 +69,23 @@ if not _descriptor._USE_C_DESCRIPTORS:
69
69
  _globals['_PARTITIONSERVICECREATEREQUEST']._serialized_start=198
70
70
  _globals['_PARTITIONSERVICECREATEREQUEST']._serialized_end=289
71
71
  _globals['_PARTITIONSERVICEUPDATEREQUEST']._serialized_start=292
72
- _globals['_PARTITIONSERVICEUPDATEREQUEST']._serialized_end=855
73
- _globals['_PARTITIONSERVICEDELETEREQUEST']._serialized_start=857
74
- _globals['_PARTITIONSERVICEDELETEREQUEST']._serialized_end=917
75
- _globals['_PARTITIONSERVICECREATERESPONSE']._serialized_start=919
76
- _globals['_PARTITIONSERVICECREATERESPONSE']._serialized_end=1011
77
- _globals['_PARTITIONSERVICEUPDATERESPONSE']._serialized_start=1013
78
- _globals['_PARTITIONSERVICEUPDATERESPONSE']._serialized_end=1105
79
- _globals['_PARTITIONSERVICEDELETERESPONSE']._serialized_start=1107
80
- _globals['_PARTITIONSERVICEDELETERESPONSE']._serialized_end=1199
81
- _globals['_PARTITIONSERVICECAPACITYREQUEST']._serialized_start=1202
82
- _globals['_PARTITIONSERVICECAPACITYREQUEST']._serialized_end=1376
83
- _globals['_PARTITIONSERVICECAPACITYRESPONSE']._serialized_start=1378
84
- _globals['_PARTITIONSERVICECAPACITYRESPONSE']._serialized_end=1499
85
- _globals['_PARTITIONCAPACITY']._serialized_start=1502
86
- _globals['_PARTITIONCAPACITY']._serialized_end=1662
87
- _globals['_MACHINESIZECAPACITY']._serialized_start=1665
88
- _globals['_MACHINESIZECAPACITY']._serialized_end=2180
89
- _globals['_PARTITIONSERVICE']._serialized_start=2183
90
- _globals['_PARTITIONSERVICE']._serialized_end=2713
72
+ _globals['_PARTITIONSERVICEUPDATEREQUEST']._serialized_end=859
73
+ _globals['_PARTITIONSERVICEDELETEREQUEST']._serialized_start=861
74
+ _globals['_PARTITIONSERVICEDELETEREQUEST']._serialized_end=921
75
+ _globals['_PARTITIONSERVICECREATERESPONSE']._serialized_start=923
76
+ _globals['_PARTITIONSERVICECREATERESPONSE']._serialized_end=1015
77
+ _globals['_PARTITIONSERVICEUPDATERESPONSE']._serialized_start=1017
78
+ _globals['_PARTITIONSERVICEUPDATERESPONSE']._serialized_end=1109
79
+ _globals['_PARTITIONSERVICEDELETERESPONSE']._serialized_start=1111
80
+ _globals['_PARTITIONSERVICEDELETERESPONSE']._serialized_end=1203
81
+ _globals['_PARTITIONSERVICECAPACITYREQUEST']._serialized_start=1206
82
+ _globals['_PARTITIONSERVICECAPACITYREQUEST']._serialized_end=1380
83
+ _globals['_PARTITIONSERVICECAPACITYRESPONSE']._serialized_start=1382
84
+ _globals['_PARTITIONSERVICECAPACITYRESPONSE']._serialized_end=1503
85
+ _globals['_PARTITIONCAPACITY']._serialized_start=1506
86
+ _globals['_PARTITIONCAPACITY']._serialized_end=1666
87
+ _globals['_MACHINESIZECAPACITY']._serialized_start=1669
88
+ _globals['_MACHINESIZECAPACITY']._serialized_end=2184
89
+ _globals['_PARTITIONSERVICE']._serialized_start=2187
90
+ _globals['_PARTITIONSERVICE']._serialized_end=2717
91
91
  # @@protoc_insertion_point(module_scope)
@@ -17,24 +17,24 @@ class PartitionServiceCreateRequest(_message.Message):
17
17
  def __init__(self, partition: _Optional[_Union[_partition_pb2.Partition, _Mapping]] = ...) -> None: ...
18
18
 
19
19
  class PartitionServiceUpdateRequest(_message.Message):
20
- __slots__ = ("id", "update_meta", "description", "boot_configuration", "dns_server", "ntp_server", "mgmt_service_addresses", "labels")
20
+ __slots__ = ("id", "update_meta", "description", "boot_configuration", "dns_servers", "ntp_servers", "mgmt_service_addresses", "labels")
21
21
  ID_FIELD_NUMBER: _ClassVar[int]
22
22
  UPDATE_META_FIELD_NUMBER: _ClassVar[int]
23
23
  DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
24
24
  BOOT_CONFIGURATION_FIELD_NUMBER: _ClassVar[int]
25
- DNS_SERVER_FIELD_NUMBER: _ClassVar[int]
26
- NTP_SERVER_FIELD_NUMBER: _ClassVar[int]
25
+ DNS_SERVERS_FIELD_NUMBER: _ClassVar[int]
26
+ NTP_SERVERS_FIELD_NUMBER: _ClassVar[int]
27
27
  MGMT_SERVICE_ADDRESSES_FIELD_NUMBER: _ClassVar[int]
28
28
  LABELS_FIELD_NUMBER: _ClassVar[int]
29
29
  id: str
30
30
  update_meta: _common_pb2.UpdateMeta
31
31
  description: str
32
32
  boot_configuration: _partition_pb2.PartitionBootConfiguration
33
- dns_server: _containers.RepeatedCompositeFieldContainer[_partition_pb2.DNSServer]
34
- ntp_server: _containers.RepeatedCompositeFieldContainer[_partition_pb2.NTPServer]
33
+ dns_servers: _containers.RepeatedCompositeFieldContainer[_partition_pb2.DNSServer]
34
+ ntp_servers: _containers.RepeatedCompositeFieldContainer[_partition_pb2.NTPServer]
35
35
  mgmt_service_addresses: _containers.RepeatedScalarFieldContainer[str]
36
36
  labels: _common_pb2.UpdateLabels
37
- def __init__(self, id: _Optional[str] = ..., update_meta: _Optional[_Union[_common_pb2.UpdateMeta, _Mapping]] = ..., description: _Optional[str] = ..., boot_configuration: _Optional[_Union[_partition_pb2.PartitionBootConfiguration, _Mapping]] = ..., dns_server: _Optional[_Iterable[_Union[_partition_pb2.DNSServer, _Mapping]]] = ..., ntp_server: _Optional[_Iterable[_Union[_partition_pb2.NTPServer, _Mapping]]] = ..., mgmt_service_addresses: _Optional[_Iterable[str]] = ..., labels: _Optional[_Union[_common_pb2.UpdateLabels, _Mapping]] = ...) -> None: ...
37
+ def __init__(self, id: _Optional[str] = ..., update_meta: _Optional[_Union[_common_pb2.UpdateMeta, _Mapping]] = ..., description: _Optional[str] = ..., boot_configuration: _Optional[_Union[_partition_pb2.PartitionBootConfiguration, _Mapping]] = ..., dns_servers: _Optional[_Iterable[_Union[_partition_pb2.DNSServer, _Mapping]]] = ..., ntp_servers: _Optional[_Iterable[_Union[_partition_pb2.NTPServer, _Mapping]]] = ..., mgmt_service_addresses: _Optional[_Iterable[str]] = ..., labels: _Optional[_Union[_common_pb2.UpdateLabels, _Mapping]] = ...) -> None: ...
38
38
 
39
39
  class PartitionServiceDeleteRequest(_message.Message):
40
40
  __slots__ = ("id",)
@@ -34,6 +34,9 @@ class SwitchService(Protocol):
34
34
  async def port(self, request: metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServicePortRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServicePortResponse:
35
35
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
36
36
 
37
+ async def connected_machines(self, request: metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesResponse:
38
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
39
+
37
40
 
38
41
  class SwitchServiceASGIApplication(ConnectASGIApplication[SwitchService]):
39
42
  def __init__(self, service: SwitchService | AsyncGenerator[SwitchService], *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
@@ -100,6 +103,16 @@ class SwitchServiceASGIApplication(ConnectASGIApplication[SwitchService]):
100
103
  ),
101
104
  function=svc.port,
102
105
  ),
106
+ "/metalstack.admin.v2.SwitchService/ConnectedMachines": Endpoint.unary(
107
+ method=MethodInfo(
108
+ name="ConnectedMachines",
109
+ service_name="metalstack.admin.v2.SwitchService",
110
+ input=metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesRequest,
111
+ output=metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesResponse,
112
+ idempotency_level=IdempotencyLevel.UNKNOWN,
113
+ ),
114
+ function=svc.connected_machines,
115
+ ),
103
116
  },
104
117
  interceptors=interceptors,
105
118
  read_max_bytes=read_max_bytes,
@@ -232,6 +245,26 @@ class SwitchServiceClient(ConnectClient):
232
245
  timeout_ms=timeout_ms,
233
246
  )
234
247
 
248
+ async def connected_machines(
249
+ self,
250
+ request: metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesRequest,
251
+ *,
252
+ headers: Headers | Mapping[str, str] | None = None,
253
+ timeout_ms: int | None = None,
254
+ ) -> metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesResponse:
255
+ return await self.execute_unary(
256
+ request=request,
257
+ method=MethodInfo(
258
+ name="ConnectedMachines",
259
+ service_name="metalstack.admin.v2.SwitchService",
260
+ input=metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesRequest,
261
+ output=metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesResponse,
262
+ idempotency_level=IdempotencyLevel.UNKNOWN,
263
+ ),
264
+ headers=headers,
265
+ timeout_ms=timeout_ms,
266
+ )
267
+
235
268
 
236
269
  class SwitchServiceSync(Protocol):
237
270
  def get(self, request: metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceGetRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceGetResponse:
@@ -246,6 +279,8 @@ class SwitchServiceSync(Protocol):
246
279
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
247
280
  def port(self, request: metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServicePortRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServicePortResponse:
248
281
  raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
282
+ def connected_machines(self, request: metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesResponse:
283
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
249
284
 
250
285
 
251
286
  class SwitchServiceWSGIApplication(ConnectWSGIApplication):
@@ -312,6 +347,16 @@ class SwitchServiceWSGIApplication(ConnectWSGIApplication):
312
347
  ),
313
348
  function=service.port,
314
349
  ),
350
+ "/metalstack.admin.v2.SwitchService/ConnectedMachines": EndpointSync.unary(
351
+ method=MethodInfo(
352
+ name="ConnectedMachines",
353
+ service_name="metalstack.admin.v2.SwitchService",
354
+ input=metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesRequest,
355
+ output=metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesResponse,
356
+ idempotency_level=IdempotencyLevel.UNKNOWN,
357
+ ),
358
+ function=service.connected_machines,
359
+ ),
315
360
  },
316
361
  interceptors=interceptors,
317
362
  read_max_bytes=read_max_bytes,
@@ -443,3 +488,23 @@ class SwitchServiceClientSync(ConnectClientSync):
443
488
  headers=headers,
444
489
  timeout_ms=timeout_ms,
445
490
  )
491
+
492
+ def connected_machines(
493
+ self,
494
+ request: metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesRequest,
495
+ *,
496
+ headers: Headers | Mapping[str, str] | None = None,
497
+ timeout_ms: int | None = None,
498
+ ) -> metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesResponse:
499
+ return self.execute_unary(
500
+ request=request,
501
+ method=MethodInfo(
502
+ name="ConnectedMachines",
503
+ service_name="metalstack.admin.v2.SwitchService",
504
+ input=metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesRequest,
505
+ output=metalstack_dot_admin_dot_v2_dot_switch__pb2.SwitchServiceConnectedMachinesResponse,
506
+ idempotency_level=IdempotencyLevel.UNKNOWN,
507
+ ),
508
+ headers=headers,
509
+ timeout_ms=timeout_ms,
510
+ )
@@ -0,0 +1,113 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: metalstack/admin/v2/switch.proto
5
+ # Protobuf Python Version: 6.33.5
6
+ """Generated protocol buffer code."""
7
+ from google.protobuf import descriptor as _descriptor
8
+ from google.protobuf import descriptor_pool as _descriptor_pool
9
+ from google.protobuf import runtime_version as _runtime_version
10
+ from google.protobuf import symbol_database as _symbol_database
11
+ from google.protobuf.internal import builder as _builder
12
+ _runtime_version.ValidateProtobufRuntimeVersion(
13
+ _runtime_version.Domain.PUBLIC,
14
+ 6,
15
+ 33,
16
+ 5,
17
+ '',
18
+ 'metalstack/admin/v2/switch.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
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
+ from metalstack.api.v2 import common_pb2 as metalstack_dot_api_dot_v2_dot_common__pb2
28
+ from metalstack.api.v2 import machine_pb2 as metalstack_dot_api_dot_v2_dot_machine__pb2
29
+ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_dot_predefined__rules__pb2
30
+ from metalstack.api.v2 import switch_pb2 as metalstack_dot_api_dot_v2_dot_switch__pb2
31
+
32
+
33
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n metalstack/admin/v2/switch.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1fmetalstack/api/v2/machine.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1emetalstack/api/v2/switch.proto\"8\n\x17SwitchServiceGetRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\"M\n\x18SwitchServiceGetResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"P\n\x18SwitchServiceListRequest\x12\x34\n\x05query\x18\x01 \x01(\x0b\x32\x1e.metalstack.api.v2.SwitchQueryR\x05query\"R\n\x19SwitchServiceListResponse\x12\x35\n\x08switches\x18\x01 \x03(\x0b\x32\x19.metalstack.api.v2.SwitchR\x08switches\"\xb9\x05\n\x1aSwitchServiceUpdateRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\x46\n\x0bupdate_meta\x18\x02 \x01(\x0b\x32\x1d.metalstack.api.v2.UpdateMetaB\x06\xbaH\x03\xc8\x01\x01R\nupdateMeta\x12\x39\n\nupdated_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\tupdatedAt\x12\x32\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x00R\x0b\x64\x65scription\x88\x01\x01\x12V\n\x0creplace_mode\x18\x05 \x01(\x0e\x32$.metalstack.api.v2.SwitchReplaceModeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x01R\x0breplaceMode\x88\x01\x01\x12\x31\n\rmanagement_ip\x18\x06 \x01(\tB\x07\xbaH\x04r\x02p\x01H\x02R\x0cmanagementIp\x88\x01\x01\x12\x39\n\x0fmanagement_user\x18\x07 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x03R\x0emanagementUser\x88\x01\x01\x12\x39\n\x0f\x63onsole_command\x18\x08 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x04R\x0e\x63onsoleCommand\x88\x01\x01\x12\x30\n\x04nics\x18\t \x03(\x0b\x32\x1c.metalstack.api.v2.SwitchNicR\x04nics\x12\x30\n\x02os\x18\n \x01(\x0b\x32\x1b.metalstack.api.v2.SwitchOSH\x05R\x02os\x88\x01\x01\x42\x0e\n\x0c_descriptionB\x0f\n\r_replace_modeB\x10\n\x0e_management_ipB\x12\n\x10_management_userB\x12\n\x10_console_commandB\x05\n\x03_os\"P\n\x1bSwitchServiceUpdateResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"Q\n\x1aSwitchServiceDeleteRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12\x14\n\x05\x66orce\x18\x02 \x01(\x08R\x05\x66orce\"P\n\x1bSwitchServiceDeleteResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"y\n\x1bSwitchServiceMigrateRequest\x12,\n\nold_switch\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\toldSwitch\x12,\n\nnew_switch\x18\x02 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\tnewSwitch\"Q\n\x1cSwitchServiceMigrateResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"\xa8\x01\n\x18SwitchServicePortRequest\x12\x1d\n\x02id\x18\x01 \x01(\tB\r\xbaH\nr\x08h\x01\xc0\xb3\xae\xb1\x02\x01R\x02id\x12&\n\x08nic_name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x07nicName\x12\x45\n\x06status\x18\x03 \x01(\x0e\x32#.metalstack.api.v2.SwitchPortStatusB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x06status\"N\n\x19SwitchServicePortResponse\x12\x31\n\x06switch\x18\x01 \x01(\x0b\x32\x19.metalstack.api.v2.SwitchR\x06switch\"\xa3\x01\n%SwitchServiceConnectedMachinesRequest\x12\x34\n\x05query\x18\x01 \x01(\x0b\x32\x1e.metalstack.api.v2.SwitchQueryR\x05query\x12\x44\n\rmachine_query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.MachineQueryR\x0cmachineQuery\"\x85\x01\n&SwitchServiceConnectedMachinesResponse\x12[\n\x16switches_with_machines\x18\x01 \x03(\x0b\x32%.metalstack.api.v2.SwitchWithMachinesR\x14switchesWithMachines2\xda\x06\n\rSwitchService\x12n\n\x03Get\x12,.metalstack.admin.v2.SwitchServiceGetRequest\x1a-.metalstack.admin.v2.SwitchServiceGetResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12q\n\x04List\x12-.metalstack.admin.v2.SwitchServiceListRequest\x1a..metalstack.admin.v2.SwitchServiceListResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x12r\n\x06Update\x12/.metalstack.admin.v2.SwitchServiceUpdateRequest\x1a\x30.metalstack.admin.v2.SwitchServiceUpdateResponse\"\x05\xd2\xf3\x18\x01\x01\x12r\n\x06\x44\x65lete\x12/.metalstack.admin.v2.SwitchServiceDeleteRequest\x1a\x30.metalstack.admin.v2.SwitchServiceDeleteResponse\"\x05\xd2\xf3\x18\x01\x01\x12u\n\x07Migrate\x12\x30.metalstack.admin.v2.SwitchServiceMigrateRequest\x1a\x31.metalstack.admin.v2.SwitchServiceMigrateResponse\"\x05\xd2\xf3\x18\x01\x01\x12l\n\x04Port\x12-.metalstack.admin.v2.SwitchServicePortRequest\x1a..metalstack.admin.v2.SwitchServicePortResponse\"\x05\xd2\xf3\x18\x01\x01\x12\x98\x01\n\x11\x43onnectedMachines\x12:.metalstack.admin.v2.SwitchServiceConnectedMachinesRequest\x1a;.metalstack.admin.v2.SwitchServiceConnectedMachinesResponse\"\n\xd2\xf3\x18\x02\x01\x02\xe0\xf3\x18\x02\x42\xcf\x01\n\x17\x63om.metalstack.admin.v2B\x0bSwitchProtoP\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')
34
+
35
+ _globals = globals()
36
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
37
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'metalstack.admin.v2.switch_pb2', _globals)
38
+ if not _descriptor._USE_C_DESCRIPTORS:
39
+ _globals['DESCRIPTOR']._loaded_options = None
40
+ _globals['DESCRIPTOR']._serialized_options = b'\n\027com.metalstack.admin.v2B\013SwitchProtoP\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'
41
+ _globals['_SWITCHSERVICEGETREQUEST'].fields_by_name['id']._loaded_options = None
42
+ _globals['_SWITCHSERVICEGETREQUEST'].fields_by_name['id']._serialized_options = b'\272H\nr\010h\001\300\263\256\261\002\001'
43
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['id']._loaded_options = None
44
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['id']._serialized_options = b'\272H\nr\010h\001\300\263\256\261\002\001'
45
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['update_meta']._loaded_options = None
46
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['update_meta']._serialized_options = b'\272H\003\310\001\001'
47
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['description']._loaded_options = None
48
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['description']._serialized_options = b'\272H\010r\006\310\263\256\261\002\001'
49
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['replace_mode']._loaded_options = None
50
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['replace_mode']._serialized_options = b'\272H\005\202\001\002\020\001'
51
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['management_ip']._loaded_options = None
52
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['management_ip']._serialized_options = b'\272H\004r\002p\001'
53
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['management_user']._loaded_options = None
54
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['management_user']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
55
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['console_command']._loaded_options = None
56
+ _globals['_SWITCHSERVICEUPDATEREQUEST'].fields_by_name['console_command']._serialized_options = b'\272H\010r\006\310\263\256\261\002\001'
57
+ _globals['_SWITCHSERVICEDELETEREQUEST'].fields_by_name['id']._loaded_options = None
58
+ _globals['_SWITCHSERVICEDELETEREQUEST'].fields_by_name['id']._serialized_options = b'\272H\nr\010h\001\300\263\256\261\002\001'
59
+ _globals['_SWITCHSERVICEMIGRATEREQUEST'].fields_by_name['old_switch']._loaded_options = None
60
+ _globals['_SWITCHSERVICEMIGRATEREQUEST'].fields_by_name['old_switch']._serialized_options = b'\272H\nr\010h\001\300\263\256\261\002\001'
61
+ _globals['_SWITCHSERVICEMIGRATEREQUEST'].fields_by_name['new_switch']._loaded_options = None
62
+ _globals['_SWITCHSERVICEMIGRATEREQUEST'].fields_by_name['new_switch']._serialized_options = b'\272H\nr\010h\001\300\263\256\261\002\001'
63
+ _globals['_SWITCHSERVICEPORTREQUEST'].fields_by_name['id']._loaded_options = None
64
+ _globals['_SWITCHSERVICEPORTREQUEST'].fields_by_name['id']._serialized_options = b'\272H\nr\010h\001\300\263\256\261\002\001'
65
+ _globals['_SWITCHSERVICEPORTREQUEST'].fields_by_name['nic_name']._loaded_options = None
66
+ _globals['_SWITCHSERVICEPORTREQUEST'].fields_by_name['nic_name']._serialized_options = b'\272H\010r\006\300\263\256\261\002\001'
67
+ _globals['_SWITCHSERVICEPORTREQUEST'].fields_by_name['status']._loaded_options = None
68
+ _globals['_SWITCHSERVICEPORTREQUEST'].fields_by_name['status']._serialized_options = b'\272H\005\202\001\002\020\001'
69
+ _globals['_SWITCHSERVICE'].methods_by_name['Get']._loaded_options = None
70
+ _globals['_SWITCHSERVICE'].methods_by_name['Get']._serialized_options = b'\322\363\030\002\001\002\340\363\030\002'
71
+ _globals['_SWITCHSERVICE'].methods_by_name['List']._loaded_options = None
72
+ _globals['_SWITCHSERVICE'].methods_by_name['List']._serialized_options = b'\322\363\030\002\001\002\340\363\030\002'
73
+ _globals['_SWITCHSERVICE'].methods_by_name['Update']._loaded_options = None
74
+ _globals['_SWITCHSERVICE'].methods_by_name['Update']._serialized_options = b'\322\363\030\001\001'
75
+ _globals['_SWITCHSERVICE'].methods_by_name['Delete']._loaded_options = None
76
+ _globals['_SWITCHSERVICE'].methods_by_name['Delete']._serialized_options = b'\322\363\030\001\001'
77
+ _globals['_SWITCHSERVICE'].methods_by_name['Migrate']._loaded_options = None
78
+ _globals['_SWITCHSERVICE'].methods_by_name['Migrate']._serialized_options = b'\322\363\030\001\001'
79
+ _globals['_SWITCHSERVICE'].methods_by_name['Port']._loaded_options = None
80
+ _globals['_SWITCHSERVICE'].methods_by_name['Port']._serialized_options = b'\322\363\030\001\001'
81
+ _globals['_SWITCHSERVICE'].methods_by_name['ConnectedMachines']._loaded_options = None
82
+ _globals['_SWITCHSERVICE'].methods_by_name['ConnectedMachines']._serialized_options = b'\322\363\030\002\001\002\340\363\030\002'
83
+ _globals['_SWITCHSERVICEGETREQUEST']._serialized_start=258
84
+ _globals['_SWITCHSERVICEGETREQUEST']._serialized_end=314
85
+ _globals['_SWITCHSERVICEGETRESPONSE']._serialized_start=316
86
+ _globals['_SWITCHSERVICEGETRESPONSE']._serialized_end=393
87
+ _globals['_SWITCHSERVICELISTREQUEST']._serialized_start=395
88
+ _globals['_SWITCHSERVICELISTREQUEST']._serialized_end=475
89
+ _globals['_SWITCHSERVICELISTRESPONSE']._serialized_start=477
90
+ _globals['_SWITCHSERVICELISTRESPONSE']._serialized_end=559
91
+ _globals['_SWITCHSERVICEUPDATEREQUEST']._serialized_start=562
92
+ _globals['_SWITCHSERVICEUPDATEREQUEST']._serialized_end=1259
93
+ _globals['_SWITCHSERVICEUPDATERESPONSE']._serialized_start=1261
94
+ _globals['_SWITCHSERVICEUPDATERESPONSE']._serialized_end=1341
95
+ _globals['_SWITCHSERVICEDELETEREQUEST']._serialized_start=1343
96
+ _globals['_SWITCHSERVICEDELETEREQUEST']._serialized_end=1424
97
+ _globals['_SWITCHSERVICEDELETERESPONSE']._serialized_start=1426
98
+ _globals['_SWITCHSERVICEDELETERESPONSE']._serialized_end=1506
99
+ _globals['_SWITCHSERVICEMIGRATEREQUEST']._serialized_start=1508
100
+ _globals['_SWITCHSERVICEMIGRATEREQUEST']._serialized_end=1629
101
+ _globals['_SWITCHSERVICEMIGRATERESPONSE']._serialized_start=1631
102
+ _globals['_SWITCHSERVICEMIGRATERESPONSE']._serialized_end=1712
103
+ _globals['_SWITCHSERVICEPORTREQUEST']._serialized_start=1715
104
+ _globals['_SWITCHSERVICEPORTREQUEST']._serialized_end=1883
105
+ _globals['_SWITCHSERVICEPORTRESPONSE']._serialized_start=1885
106
+ _globals['_SWITCHSERVICEPORTRESPONSE']._serialized_end=1963
107
+ _globals['_SWITCHSERVICECONNECTEDMACHINESREQUEST']._serialized_start=1966
108
+ _globals['_SWITCHSERVICECONNECTEDMACHINESREQUEST']._serialized_end=2129
109
+ _globals['_SWITCHSERVICECONNECTEDMACHINESRESPONSE']._serialized_start=2132
110
+ _globals['_SWITCHSERVICECONNECTEDMACHINESRESPONSE']._serialized_end=2265
111
+ _globals['_SWITCHSERVICE']._serialized_start=2268
112
+ _globals['_SWITCHSERVICE']._serialized_end=3126
113
+ # @@protoc_insertion_point(module_scope)
@@ -3,6 +3,7 @@ import datetime
3
3
  from buf.validate import validate_pb2 as _validate_pb2
4
4
  from google.protobuf import timestamp_pb2 as _timestamp_pb2
5
5
  from metalstack.api.v2 import common_pb2 as _common_pb2
6
+ from metalstack.api.v2 import machine_pb2 as _machine_pb2
6
7
  from metalstack.api.v2 import predefined_rules_pb2 as _predefined_rules_pb2
7
8
  from metalstack.api.v2 import switch_pb2 as _switch_pb2
8
9
  from google.protobuf.internal import containers as _containers
@@ -110,3 +111,17 @@ class SwitchServicePortResponse(_message.Message):
110
111
  SWITCH_FIELD_NUMBER: _ClassVar[int]
111
112
  switch: _switch_pb2.Switch
112
113
  def __init__(self, switch: _Optional[_Union[_switch_pb2.Switch, _Mapping]] = ...) -> None: ...
114
+
115
+ class SwitchServiceConnectedMachinesRequest(_message.Message):
116
+ __slots__ = ("query", "machine_query")
117
+ QUERY_FIELD_NUMBER: _ClassVar[int]
118
+ MACHINE_QUERY_FIELD_NUMBER: _ClassVar[int]
119
+ query: _switch_pb2.SwitchQuery
120
+ machine_query: _machine_pb2.MachineQuery
121
+ def __init__(self, query: _Optional[_Union[_switch_pb2.SwitchQuery, _Mapping]] = ..., machine_query: _Optional[_Union[_machine_pb2.MachineQuery, _Mapping]] = ...) -> None: ...
122
+
123
+ class SwitchServiceConnectedMachinesResponse(_message.Message):
124
+ __slots__ = ("switches_with_machines",)
125
+ SWITCHES_WITH_MACHINES_FIELD_NUMBER: _ClassVar[int]
126
+ switches_with_machines: _containers.RepeatedCompositeFieldContainer[_switch_pb2.SwitchWithMachines]
127
+ def __init__(self, switches_with_machines: _Optional[_Iterable[_Union[_switch_pb2.SwitchWithMachines, _Mapping]]] = ...) -> None: ...