metal-stack-api 0.0.35__py3-none-any.whl → 0.0.37__py3-none-any.whl

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: metal-stack-api
3
- Version: 0.0.35
3
+ Version: 0.0.37
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
@@ -26,14 +26,17 @@ metalstack/admin/v2/size_connect.py,sha256=EeDMcsNDo9nN7LetIkaB5sxGMk1CqZGfFtWza
26
26
  metalstack/admin/v2/size_pb2.py,sha256=RfNZRLJZy_fQ9LU9I5I6L5MWylPzPDrl2m8q9VQ1Kow,6457
27
27
  metalstack/admin/v2/size_pb2.pyi,sha256=xMbYS7HghgaPMCOpAwmdadGBOp_BU7TvF4QTJuMaMMs,2664
28
28
  metalstack/admin/v2/switch_connect.py,sha256=c_xsfMKHL-K9QLTQr5ApKU5WOaqErTGDVyF2l2dIUFE,22352
29
- metalstack/admin/v2/switch_pb2.py,sha256=GPVgs04bfWy2t6u7bnXSB1yBqPI5310JZI_GMrxjghI,12168
30
- metalstack/admin/v2/switch_pb2.pyi,sha256=7llyR9m7oMugurT1FADS35BpMSAN-K4ErWYHPVA5l7U,5312
29
+ metalstack/admin/v2/switch_pb2.py,sha256=bZIho6Wc8llIGcwH5e_Uy5JSwsDvgIMj9Kh69n8XRnw,12277
30
+ metalstack/admin/v2/switch_pb2.pyi,sha256=v9S2jHGKVf9qKJEOTNY6On1T5Se1ahLJjepD2FPgboY,5586
31
31
  metalstack/admin/v2/tenant_connect.py,sha256=yxL56ifI-VSE1O-We4V8naqc0QXKhlkqZaGOm_f1n0c,8788
32
32
  metalstack/admin/v2/tenant_pb2.py,sha256=LbMSxlil9NdM20e2Cg1q8Edd2PGdvf8lXSt8sqZpQnQ,5680
33
33
  metalstack/admin/v2/tenant_pb2.pyi,sha256=ZI3HryRUf7bWAwKMWsfDa55fS6FVrsxStMyV4sU3cz0,2303
34
34
  metalstack/admin/v2/token_connect.py,sha256=h547_mZfaAbloKf-WmNdTIbGjJnlLMLy7Rtl_vAk4K8,12080
35
35
  metalstack/admin/v2/token_pb2.py,sha256=aTbnaDK9su8mHgpaOnoVLbU0ZDFitS6qdOKszsNmUio,5508
36
36
  metalstack/admin/v2/token_pb2.pyi,sha256=jFRWVkOtdAYualwNnk3-FM3iZ0ku-2c7SXzfm02XvRE,2171
37
+ metalstack/admin/v2/vpn_connect.py,sha256=Qbz8OvFOMOEAHuWneelcqsWiMhmS5cXSr9dcE7DfeK4,8701
38
+ metalstack/admin/v2/vpn_pb2.py,sha256=iQHpZmkezHhudKzYckWpDQ5stcXJgnD8soYsibMMb34,4410
39
+ metalstack/admin/v2/vpn_pb2.pyi,sha256=JvK6UFzwYH8-r4BsR_nHx7uJFvZB5cvfEcpB5TAc01o,1899
37
40
  metalstack/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
38
41
  metalstack/api/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
39
42
  metalstack/api/v2/common_pb2.py,sha256=YUozzWnuUgW4HQsiZlnoOd700wG69pKU06Lo3oJb9YA,7319
@@ -51,8 +54,8 @@ metalstack/api/v2/ip_connect.py,sha256=XyaMTWdBZyXuV-ePV_8T4o7nxxxlfNBqBO5h81g9C
51
54
  metalstack/api/v2/ip_pb2.py,sha256=UdTyWnMGoyk11vcydC21VxHqU8SDZrROFe0rAJyeHd0,19030
52
55
  metalstack/api/v2/ip_pb2.pyi,sha256=PXO6J_JW8rMqK6WEer2JLaKHxnLik_AMmhKkcx0JKPc,7667
53
56
  metalstack/api/v2/machine_connect.py,sha256=KUcyR-z-j4RDpnIJw30VsJbr5Mdv9fHbVkxNCWyNeN0,18934
54
- metalstack/api/v2/machine_pb2.py,sha256=wGYHS_bM0EiF5Mql1f0xlpLE2ogdhHRmWKKPkJLOTnA,58869
55
- metalstack/api/v2/machine_pb2.pyi,sha256=7GqAH0O9teg-oes8OXKrYF1SagSUn_4qO1OXq6lK4HI,32440
57
+ metalstack/api/v2/machine_pb2.py,sha256=g_aohegxAfw8KVsAEERrQFjV0QK7h6UZXNO5qsctv34,59314
58
+ metalstack/api/v2/machine_pb2.pyi,sha256=OewnbiRpp9UwsnZjNlpxHGi2dlx3DcXgDs__cjn60_I,32797
56
59
  metalstack/api/v2/method_connect.py,sha256=_NVufSXlHvIatC6Fud1jryH1_7m0VBo7IMHIPbov8xM,8954
57
60
  metalstack/api/v2/method_pb2.py,sha256=EsRrhxBwK8jx-wOobivvzYrYr81CglDTOnMiU8AwG3U,5929
58
61
  metalstack/api/v2/method_pb2.pyi,sha256=JCdhpSxg9WfnFtCWFkMLbrG_wqP7EDmgtAO_58aRnRU,2791
@@ -84,17 +87,22 @@ metalstack/api/v2/user_pb2.pyi,sha256=rXGPGTVvEkxJrNr2UHuSfxUGDoNpOxXodaZ_5eEjbq
84
87
  metalstack/api/v2/version_connect.py,sha256=0a65vkFDevDjanQYevOPcBAsoREbN2-GzD25pk_oGxI,5338
85
88
  metalstack/api/v2/version_pb2.py,sha256=_KuCtJ-y0GL-bd4DLn6D229ivoMdYoUZ57bkGIBuWEA,3071
86
89
  metalstack/api/v2/version_pb2.pyi,sha256=JfQ_tYwDG6P9aH7y7-iEHmtuWsLKsrpLKAVJIzHehRM,1172
90
+ metalstack/api/v2/vpn_pb2.py,sha256=x0QYJkRBB3hEsQb9ck_b47Drv2b7htJw5EC5TKJbxZ0,2312
91
+ metalstack/api/v2/vpn_pb2.pyi,sha256=11ecPbkjQApxN3dVP7J7Vl1dyek5a47JtrgbmGxWkVU,1247
87
92
  metalstack/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- metalstack/client/client.py,sha256=6EWAIeWZx1Ct6gVGv0ZO7VhFUGf4dZ0RtOae7HY-3ow,6495
93
+ metalstack/client/client.py,sha256=ibIDoxhh2RH93WqeGySSg2mGVOtNMd5Hni69r7iNi-I,6881
89
94
  metalstack/infra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
90
95
  metalstack/infra/v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
91
96
  metalstack/infra/v2/bmc_connect.py,sha256=OJQQnWJmYANeDoCcwQDR-wQUiyZ0bNlNsOxDFFnaklk,5332
92
97
  metalstack/infra/v2/bmc_pb2.py,sha256=ARIJOqCWe_Qz_-QK7nz3Pddya11sJRhkN3Z3gPGMEbA,2689
93
98
  metalstack/infra/v2/bmc_pb2.pyi,sha256=e4FGBnDQhg6K_zlhoC170lw-0OSlSdHK3So6r3Reh1E,444
99
+ metalstack/infra/v2/event_connect.py,sha256=BW8pvUWXgo9g0rWM_8NrBIVBUUe1-caUHEPJIdRmBbY,5318
100
+ metalstack/infra/v2/event_pb2.py,sha256=2gk7mMaNNDZisZRIjkfAeOcEUZgMj17HcrF3jzEH36Y,8284
101
+ metalstack/infra/v2/event_pb2.pyi,sha256=zhCAu1V2qizwNiLTyq-mvG_t0ZUw1phhTR2CvLSOjCw,3813
94
102
  metalstack/infra/v2/switch_connect.py,sha256=TftYMAVcYhwFaenInmBK21CnGTyN5pXNDrKQLDWFTz4,12319
95
103
  metalstack/infra/v2/switch_pb2.py,sha256=YSGPr501YDAIWGLGCXuGJxVYyU-hUYQCHRWz8huxxxY,7736
96
104
  metalstack/infra/v2/switch_pb2.pyi,sha256=SSUHCM5ImRTV1U1X_uEA51qWZYtEd-_ZesVESiKeWNw,4309
97
- metal_stack_api-0.0.35.dist-info/METADATA,sha256=5_P7WPqh-qjO0I_iGB00f4OYnqLwg3FnW3n9swE0BiA,874
98
- metal_stack_api-0.0.35.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
99
- metal_stack_api-0.0.35.dist-info/top_level.txt,sha256=OqZoCBTOYMgPJJ3GbO1ZfY7eRpW9Ljc5g3Ajlu44n2I,11
100
- metal_stack_api-0.0.35.dist-info/RECORD,,
105
+ metal_stack_api-0.0.37.dist-info/METADATA,sha256=hE5LR5lAyV74zx0BwgOe963c9Oy3KXQt39WxBsPaDno,874
106
+ metal_stack_api-0.0.37.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
107
+ metal_stack_api-0.0.37.dist-info/top_level.txt,sha256=OqZoCBTOYMgPJJ3GbO1ZfY7eRpW9Ljc5g3Ajlu44n2I,11
108
+ metal_stack_api-0.0.37.dist-info/RECORD,,
@@ -29,7 +29,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_
29
29
  from metalstack.api.v2 import switch_pb2 as metalstack_dot_api_dot_v2_dot_switch__pb2
30
30
 
31
31
 
32
- 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(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\x06switch2\xbf\x05\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\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')
32
+ 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(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\"\x90\x06\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\x12U\n\x13machine_connections\x18\x0b \x03(\x0b\x32$.metalstack.api.v2.MachineConnectionR\x12machineConnectionsB\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\x06switch2\xbf\x05\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\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')
33
33
 
34
34
  _globals = globals()
35
35
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -86,21 +86,21 @@ if not _descriptor._USE_C_DESCRIPTORS:
86
86
  _globals['_SWITCHSERVICELISTRESPONSE']._serialized_start=444
87
87
  _globals['_SWITCHSERVICELISTRESPONSE']._serialized_end=526
88
88
  _globals['_SWITCHSERVICEUPDATEREQUEST']._serialized_start=529
89
- _globals['_SWITCHSERVICEUPDATEREQUEST']._serialized_end=1226
90
- _globals['_SWITCHSERVICEUPDATERESPONSE']._serialized_start=1228
91
- _globals['_SWITCHSERVICEUPDATERESPONSE']._serialized_end=1308
92
- _globals['_SWITCHSERVICEDELETEREQUEST']._serialized_start=1310
93
- _globals['_SWITCHSERVICEDELETEREQUEST']._serialized_end=1391
94
- _globals['_SWITCHSERVICEDELETERESPONSE']._serialized_start=1393
95
- _globals['_SWITCHSERVICEDELETERESPONSE']._serialized_end=1473
96
- _globals['_SWITCHSERVICEMIGRATEREQUEST']._serialized_start=1475
97
- _globals['_SWITCHSERVICEMIGRATEREQUEST']._serialized_end=1596
98
- _globals['_SWITCHSERVICEMIGRATERESPONSE']._serialized_start=1598
99
- _globals['_SWITCHSERVICEMIGRATERESPONSE']._serialized_end=1679
100
- _globals['_SWITCHSERVICEPORTREQUEST']._serialized_start=1682
101
- _globals['_SWITCHSERVICEPORTREQUEST']._serialized_end=1850
102
- _globals['_SWITCHSERVICEPORTRESPONSE']._serialized_start=1852
103
- _globals['_SWITCHSERVICEPORTRESPONSE']._serialized_end=1930
104
- _globals['_SWITCHSERVICE']._serialized_start=1933
105
- _globals['_SWITCHSERVICE']._serialized_end=2636
89
+ _globals['_SWITCHSERVICEUPDATEREQUEST']._serialized_end=1313
90
+ _globals['_SWITCHSERVICEUPDATERESPONSE']._serialized_start=1315
91
+ _globals['_SWITCHSERVICEUPDATERESPONSE']._serialized_end=1395
92
+ _globals['_SWITCHSERVICEDELETEREQUEST']._serialized_start=1397
93
+ _globals['_SWITCHSERVICEDELETEREQUEST']._serialized_end=1478
94
+ _globals['_SWITCHSERVICEDELETERESPONSE']._serialized_start=1480
95
+ _globals['_SWITCHSERVICEDELETERESPONSE']._serialized_end=1560
96
+ _globals['_SWITCHSERVICEMIGRATEREQUEST']._serialized_start=1562
97
+ _globals['_SWITCHSERVICEMIGRATEREQUEST']._serialized_end=1683
98
+ _globals['_SWITCHSERVICEMIGRATERESPONSE']._serialized_start=1685
99
+ _globals['_SWITCHSERVICEMIGRATERESPONSE']._serialized_end=1766
100
+ _globals['_SWITCHSERVICEPORTREQUEST']._serialized_start=1769
101
+ _globals['_SWITCHSERVICEPORTREQUEST']._serialized_end=1937
102
+ _globals['_SWITCHSERVICEPORTRESPONSE']._serialized_start=1939
103
+ _globals['_SWITCHSERVICEPORTRESPONSE']._serialized_end=2017
104
+ _globals['_SWITCHSERVICE']._serialized_start=2020
105
+ _globals['_SWITCHSERVICE']._serialized_end=2723
106
106
  # @@protoc_insertion_point(module_scope)
@@ -38,7 +38,7 @@ class SwitchServiceListResponse(_message.Message):
38
38
  def __init__(self, switches: _Optional[_Iterable[_Union[_switch_pb2.Switch, _Mapping]]] = ...) -> None: ...
39
39
 
40
40
  class SwitchServiceUpdateRequest(_message.Message):
41
- __slots__ = ("id", "update_meta", "updated_at", "description", "replace_mode", "management_ip", "management_user", "console_command", "nics", "os")
41
+ __slots__ = ("id", "update_meta", "updated_at", "description", "replace_mode", "management_ip", "management_user", "console_command", "nics", "os", "machine_connections")
42
42
  ID_FIELD_NUMBER: _ClassVar[int]
43
43
  UPDATE_META_FIELD_NUMBER: _ClassVar[int]
44
44
  UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
@@ -49,6 +49,7 @@ class SwitchServiceUpdateRequest(_message.Message):
49
49
  CONSOLE_COMMAND_FIELD_NUMBER: _ClassVar[int]
50
50
  NICS_FIELD_NUMBER: _ClassVar[int]
51
51
  OS_FIELD_NUMBER: _ClassVar[int]
52
+ MACHINE_CONNECTIONS_FIELD_NUMBER: _ClassVar[int]
52
53
  id: str
53
54
  update_meta: _common_pb2.UpdateMeta
54
55
  updated_at: _timestamp_pb2.Timestamp
@@ -59,7 +60,8 @@ class SwitchServiceUpdateRequest(_message.Message):
59
60
  console_command: str
60
61
  nics: _containers.RepeatedCompositeFieldContainer[_switch_pb2.SwitchNic]
61
62
  os: _switch_pb2.SwitchOS
62
- def __init__(self, id: _Optional[str] = ..., update_meta: _Optional[_Union[_common_pb2.UpdateMeta, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., description: _Optional[str] = ..., replace_mode: _Optional[_Union[_switch_pb2.SwitchReplaceMode, str]] = ..., management_ip: _Optional[str] = ..., management_user: _Optional[str] = ..., console_command: _Optional[str] = ..., nics: _Optional[_Iterable[_Union[_switch_pb2.SwitchNic, _Mapping]]] = ..., os: _Optional[_Union[_switch_pb2.SwitchOS, _Mapping]] = ...) -> None: ...
63
+ machine_connections: _containers.RepeatedCompositeFieldContainer[_switch_pb2.MachineConnection]
64
+ def __init__(self, id: _Optional[str] = ..., update_meta: _Optional[_Union[_common_pb2.UpdateMeta, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., description: _Optional[str] = ..., replace_mode: _Optional[_Union[_switch_pb2.SwitchReplaceMode, str]] = ..., management_ip: _Optional[str] = ..., management_user: _Optional[str] = ..., console_command: _Optional[str] = ..., nics: _Optional[_Iterable[_Union[_switch_pb2.SwitchNic, _Mapping]]] = ..., os: _Optional[_Union[_switch_pb2.SwitchOS, _Mapping]] = ..., machine_connections: _Optional[_Iterable[_Union[_switch_pb2.MachineConnection, _Mapping]]] = ...) -> None: ...
63
65
 
64
66
  class SwitchServiceUpdateResponse(_message.Message):
65
67
  __slots__ = ("switch",)
@@ -0,0 +1,184 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
+ # source: metalstack/admin/v2/vpn.proto
4
+
5
+ from collections.abc import AsyncIterator, Iterable, Iterator, Mapping
6
+ from typing import Protocol
7
+
8
+ from connectrpc.client import ConnectClient, ConnectClientSync
9
+ from connectrpc.code import Code
10
+ from connectrpc.errors import ConnectError
11
+ from connectrpc.interceptor import Interceptor, InterceptorSync
12
+ from connectrpc.method import IdempotencyLevel, MethodInfo
13
+ from connectrpc.request import Headers, RequestContext
14
+ from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync
15
+ import metalstack.admin.v2.vpn_pb2 as metalstack_dot_admin_dot_v2_dot_vpn__pb2
16
+
17
+
18
+ class VPNService(Protocol):
19
+ async def auth_key(self, request: metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyResponse:
20
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
21
+
22
+ async def list_nodes(self, request: metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesResponse:
23
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
24
+
25
+
26
+ class VPNServiceASGIApplication(ConnectASGIApplication):
27
+ def __init__(self, service: VPNService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
28
+ super().__init__(
29
+ endpoints={
30
+ "/metalstack.admin.v2.VPNService/AuthKey": Endpoint.unary(
31
+ method=MethodInfo(
32
+ name="AuthKey",
33
+ service_name="metalstack.admin.v2.VPNService",
34
+ input=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyRequest,
35
+ output=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyResponse,
36
+ idempotency_level=IdempotencyLevel.UNKNOWN,
37
+ ),
38
+ function=service.auth_key,
39
+ ),
40
+ "/metalstack.admin.v2.VPNService/ListNodes": Endpoint.unary(
41
+ method=MethodInfo(
42
+ name="ListNodes",
43
+ service_name="metalstack.admin.v2.VPNService",
44
+ input=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesRequest,
45
+ output=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesResponse,
46
+ idempotency_level=IdempotencyLevel.UNKNOWN,
47
+ ),
48
+ function=service.list_nodes,
49
+ ),
50
+ },
51
+ interceptors=interceptors,
52
+ read_max_bytes=read_max_bytes,
53
+ )
54
+
55
+ @property
56
+ def path(self) -> str:
57
+ """Returns the URL path to mount the application to when serving multiple applications."""
58
+ return "/metalstack.admin.v2.VPNService"
59
+
60
+
61
+ class VPNServiceClient(ConnectClient):
62
+ async def auth_key(
63
+ self,
64
+ request: metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyRequest,
65
+ *,
66
+ headers: Headers | Mapping[str, str] | None = None,
67
+ timeout_ms: int | None = None,
68
+ ) -> metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyResponse:
69
+ return await self.execute_unary(
70
+ request=request,
71
+ method=MethodInfo(
72
+ name="AuthKey",
73
+ service_name="metalstack.admin.v2.VPNService",
74
+ input=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyRequest,
75
+ output=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyResponse,
76
+ idempotency_level=IdempotencyLevel.UNKNOWN,
77
+ ),
78
+ headers=headers,
79
+ timeout_ms=timeout_ms,
80
+ )
81
+
82
+ async def list_nodes(
83
+ self,
84
+ request: metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesRequest,
85
+ *,
86
+ headers: Headers | Mapping[str, str] | None = None,
87
+ timeout_ms: int | None = None,
88
+ ) -> metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesResponse:
89
+ return await self.execute_unary(
90
+ request=request,
91
+ method=MethodInfo(
92
+ name="ListNodes",
93
+ service_name="metalstack.admin.v2.VPNService",
94
+ input=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesRequest,
95
+ output=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesResponse,
96
+ idempotency_level=IdempotencyLevel.UNKNOWN,
97
+ ),
98
+ headers=headers,
99
+ timeout_ms=timeout_ms,
100
+ )
101
+
102
+
103
+ class VPNServiceSync(Protocol):
104
+ def auth_key(self, request: metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyResponse:
105
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
106
+ def list_nodes(self, request: metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesRequest, ctx: RequestContext) -> metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesResponse:
107
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
108
+
109
+
110
+ class VPNServiceWSGIApplication(ConnectWSGIApplication):
111
+ def __init__(self, service: VPNServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
112
+ super().__init__(
113
+ endpoints={
114
+ "/metalstack.admin.v2.VPNService/AuthKey": EndpointSync.unary(
115
+ method=MethodInfo(
116
+ name="AuthKey",
117
+ service_name="metalstack.admin.v2.VPNService",
118
+ input=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyRequest,
119
+ output=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyResponse,
120
+ idempotency_level=IdempotencyLevel.UNKNOWN,
121
+ ),
122
+ function=service.auth_key,
123
+ ),
124
+ "/metalstack.admin.v2.VPNService/ListNodes": EndpointSync.unary(
125
+ method=MethodInfo(
126
+ name="ListNodes",
127
+ service_name="metalstack.admin.v2.VPNService",
128
+ input=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesRequest,
129
+ output=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesResponse,
130
+ idempotency_level=IdempotencyLevel.UNKNOWN,
131
+ ),
132
+ function=service.list_nodes,
133
+ ),
134
+ },
135
+ interceptors=interceptors,
136
+ read_max_bytes=read_max_bytes,
137
+ )
138
+
139
+ @property
140
+ def path(self) -> str:
141
+ """Returns the URL path to mount the application to when serving multiple applications."""
142
+ return "/metalstack.admin.v2.VPNService"
143
+
144
+
145
+ class VPNServiceClientSync(ConnectClientSync):
146
+ def auth_key(
147
+ self,
148
+ request: metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyRequest,
149
+ *,
150
+ headers: Headers | Mapping[str, str] | None = None,
151
+ timeout_ms: int | None = None,
152
+ ) -> metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyResponse:
153
+ return self.execute_unary(
154
+ request=request,
155
+ method=MethodInfo(
156
+ name="AuthKey",
157
+ service_name="metalstack.admin.v2.VPNService",
158
+ input=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyRequest,
159
+ output=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceAuthKeyResponse,
160
+ idempotency_level=IdempotencyLevel.UNKNOWN,
161
+ ),
162
+ headers=headers,
163
+ timeout_ms=timeout_ms,
164
+ )
165
+
166
+ def list_nodes(
167
+ self,
168
+ request: metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesRequest,
169
+ *,
170
+ headers: Headers | Mapping[str, str] | None = None,
171
+ timeout_ms: int | None = None,
172
+ ) -> metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesResponse:
173
+ return self.execute_unary(
174
+ request=request,
175
+ method=MethodInfo(
176
+ name="ListNodes",
177
+ service_name="metalstack.admin.v2.VPNService",
178
+ input=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesRequest,
179
+ output=metalstack_dot_admin_dot_v2_dot_vpn__pb2.VPNServiceListNodesResponse,
180
+ idempotency_level=IdempotencyLevel.UNKNOWN,
181
+ ),
182
+ headers=headers,
183
+ timeout_ms=timeout_ms,
184
+ )
@@ -0,0 +1,55 @@
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/vpn.proto
5
+ # Protobuf Python Version: 6.32.1
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
+ 32,
16
+ 1,
17
+ '',
18
+ 'metalstack/admin/v2/vpn.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 duration_pb2 as google_dot_protobuf_dot_duration__pb2
27
+ from metalstack.api.v2 import common_pb2 as metalstack_dot_api_dot_v2_dot_common__pb2
28
+ from metalstack.api.v2 import vpn_pb2 as metalstack_dot_api_dot_v2_dot_vpn__pb2
29
+
30
+
31
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1dmetalstack/admin/v2/vpn.proto\x12\x13metalstack.admin.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\x1bmetalstack/api/v2/vpn.proto\"\x91\x01\n\x18VPNServiceAuthKeyRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x1c\n\tephemeral\x18\x02 \x01(\x08R\tephemeral\x12\x33\n\x07\x65xpires\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x07\x65xpires\"P\n\x19VPNServiceAuthKeyResponse\x12\x18\n\x07\x61\x64\x64ress\x18\x01 \x01(\tR\x07\x61\x64\x64ress\x12\x19\n\x08\x61uth_key\x18\x02 \x01(\tR\x07\x61uthKey\"G\n\x1aVPNServiceListNodesRequest\x12\x1d\n\x07project\x18\x01 \x01(\tH\x00R\x07project\x88\x01\x01\x42\n\n\x08_project\"O\n\x1bVPNServiceListNodesResponse\x12\x30\n\x05nodes\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.VPNNodeR\x05nodes2\xf5\x01\n\nVPNService\x12o\n\x07\x41uthKey\x12-.metalstack.admin.v2.VPNServiceAuthKeyRequest\x1a..metalstack.admin.v2.VPNServiceAuthKeyResponse\"\x05\xd2\xf3\x18\x01\x01\x12v\n\tListNodes\x12/.metalstack.admin.v2.VPNServiceListNodesRequest\x1a\x30.metalstack.admin.v2.VPNServiceListNodesResponse\"\x06\xd2\xf3\x18\x02\x01\x02\x42\xcc\x01\n\x17\x63om.metalstack.admin.v2B\x08VpnProtoP\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
+
33
+ _globals = globals()
34
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
35
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'metalstack.admin.v2.vpn_pb2', _globals)
36
+ if not _descriptor._USE_C_DESCRIPTORS:
37
+ _globals['DESCRIPTOR']._loaded_options = None
38
+ _globals['DESCRIPTOR']._serialized_options = b'\n\027com.metalstack.admin.v2B\010VpnProtoP\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
+ _globals['_VPNSERVICEAUTHKEYREQUEST'].fields_by_name['project']._loaded_options = None
40
+ _globals['_VPNSERVICEAUTHKEYREQUEST'].fields_by_name['project']._serialized_options = b'\272H\005r\003\260\001\001'
41
+ _globals['_VPNSERVICE'].methods_by_name['AuthKey']._loaded_options = None
42
+ _globals['_VPNSERVICE'].methods_by_name['AuthKey']._serialized_options = b'\322\363\030\001\001'
43
+ _globals['_VPNSERVICE'].methods_by_name['ListNodes']._loaded_options = None
44
+ _globals['_VPNSERVICE'].methods_by_name['ListNodes']._serialized_options = b'\322\363\030\002\001\002'
45
+ _globals['_VPNSERVICEAUTHKEYREQUEST']._serialized_start=177
46
+ _globals['_VPNSERVICEAUTHKEYREQUEST']._serialized_end=322
47
+ _globals['_VPNSERVICEAUTHKEYRESPONSE']._serialized_start=324
48
+ _globals['_VPNSERVICEAUTHKEYRESPONSE']._serialized_end=404
49
+ _globals['_VPNSERVICELISTNODESREQUEST']._serialized_start=406
50
+ _globals['_VPNSERVICELISTNODESREQUEST']._serialized_end=477
51
+ _globals['_VPNSERVICELISTNODESRESPONSE']._serialized_start=479
52
+ _globals['_VPNSERVICELISTNODESRESPONSE']._serialized_end=558
53
+ _globals['_VPNSERVICE']._serialized_start=561
54
+ _globals['_VPNSERVICE']._serialized_end=806
55
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,43 @@
1
+ import datetime
2
+
3
+ from buf.validate import validate_pb2 as _validate_pb2
4
+ from google.protobuf import duration_pb2 as _duration_pb2
5
+ from metalstack.api.v2 import common_pb2 as _common_pb2
6
+ from metalstack.api.v2 import vpn_pb2 as _vpn_pb2
7
+ from google.protobuf.internal import containers as _containers
8
+ from google.protobuf import descriptor as _descriptor
9
+ from google.protobuf import message as _message
10
+ from collections.abc import Iterable as _Iterable, Mapping as _Mapping
11
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
12
+
13
+ DESCRIPTOR: _descriptor.FileDescriptor
14
+
15
+ class VPNServiceAuthKeyRequest(_message.Message):
16
+ __slots__ = ("project", "ephemeral", "expires")
17
+ PROJECT_FIELD_NUMBER: _ClassVar[int]
18
+ EPHEMERAL_FIELD_NUMBER: _ClassVar[int]
19
+ EXPIRES_FIELD_NUMBER: _ClassVar[int]
20
+ project: str
21
+ ephemeral: bool
22
+ expires: _duration_pb2.Duration
23
+ def __init__(self, project: _Optional[str] = ..., ephemeral: _Optional[bool] = ..., expires: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ...) -> None: ...
24
+
25
+ class VPNServiceAuthKeyResponse(_message.Message):
26
+ __slots__ = ("address", "auth_key")
27
+ ADDRESS_FIELD_NUMBER: _ClassVar[int]
28
+ AUTH_KEY_FIELD_NUMBER: _ClassVar[int]
29
+ address: str
30
+ auth_key: str
31
+ def __init__(self, address: _Optional[str] = ..., auth_key: _Optional[str] = ...) -> None: ...
32
+
33
+ class VPNServiceListNodesRequest(_message.Message):
34
+ __slots__ = ("project",)
35
+ PROJECT_FIELD_NUMBER: _ClassVar[int]
36
+ project: str
37
+ def __init__(self, project: _Optional[str] = ...) -> None: ...
38
+
39
+ class VPNServiceListNodesResponse(_message.Message):
40
+ __slots__ = ("nodes",)
41
+ NODES_FIELD_NUMBER: _ClassVar[int]
42
+ nodes: _containers.RepeatedCompositeFieldContainer[_vpn_pb2.VPNNode]
43
+ def __init__(self, nodes: _Optional[_Iterable[_Union[_vpn_pb2.VPNNode, _Mapping]]] = ...) -> None: ...
@@ -33,7 +33,7 @@ from metalstack.api.v2 import predefined_rules_pb2 as metalstack_dot_api_dot_v2_
33
33
  from metalstack.api.v2 import size_pb2 as metalstack_dot_api_dot_v2_dot_size__pb2
34
34
 
35
35
 
36
- DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/api/v2/machine.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\"metalstack/api/v2/filesystem.proto\x1a\x1dmetalstack/api/v2/image.proto\x1a\x1fmetalstack/api/v2/network.proto\x1a!metalstack/api/v2/partition.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1cmetalstack/api/v2/size.proto\"\\\n\x18MachineServiceGetRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"Q\n\x19MachineServiceGetResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\xa2\x08\n\x1bMachineServiceCreateRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12!\n\x04uuid\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12\x1f\n\x04name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12\x32\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12(\n\x08hostname\x18\x05 \x01(\tB\x07\xbaH\x04r\x02h\x01H\x02R\x08hostname\x88\x01\x01\x12)\n\tpartition\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12\x1c\n\x04size\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04size\x12\x1e\n\x05image\x18\x08 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x05image\x12\x30\n\x11\x66ilesystem_layout\x18\t \x01(\tH\x03R\x10\x66ilesystemLayout\x88\x01\x01\x12\x39\n\x0fssh_public_keys\x18\n \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x32\"\x07r\x05\x10\x01\x18\x80@R\rsshPublicKeys\x12*\n\x08userdata\x18\x0b \x01(\tB\t\xbaH\x06r\x04\x18\x80\x80\x02H\x04R\x08userdata\x88\x01\x01\x12\x31\n\x06labels\x18\x0c \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labels\x12G\n\x08networks\x18\r \x03(\x0b\x32+.metalstack.api.v2.MachineAllocationNetworkR\x08networks\x12\x1e\n\x03ips\x18\x0e \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe8\xb3\xae\xb1\x02\x01R\x03ips\x12%\n\x0eplacement_tags\x18\x0f \x03(\tR\rplacementTags\x12\x45\n\ndns_server\x18\x10 \x03(\x0b\x32\x1c.metalstack.api.v2.DNSServerB\x08\xbaH\x05\x92\x01\x02\x10\x03R\tdnsServer\x12\x45\n\nntp_server\x18\x11 \x03(\x0b\x32\x1c.metalstack.api.v2.NTPServerB\x08\xbaH\x05\x92\x01\x02\x10\nR\tntpServer\x12[\n\x0f\x61llocation_type\x18\x12 \x01(\x0e\x32(.metalstack.api.v2.MachineAllocationTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0e\x61llocationType\x12\x44\n\rfirewall_spec\x18\x13 \x01(\x0b\x32\x1f.metalstack.api.v2.FirewallSpecR\x0c\x66irewallSpecB\x07\n\x05_uuidB\x0e\n\x0c_descriptionB\x0b\n\t_hostnameB\x14\n\x12_filesystem_layoutB\x0b\n\t_userdata\"W\n\x0c\x46irewallSpec\x12G\n\x0e\x66irewall_rules\x18\x13 \x01(\x0b\x32 .metalstack.api.v2.FirewallRulesR\rfirewallRules\"T\n\x1cMachineServiceCreateResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\xef\x02\n\x1bMachineServiceUpdateRequest\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\x01R\nupdateMeta\x12\"\n\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\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\x12<\n\x06labels\x18\x05 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x01R\x06labels\x88\x01\x01\x12\x39\n\x0fssh_public_keys\x18\x06 \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x32\"\x07r\x05\x10\x01\x18\x80@R\rsshPublicKeysB\x0e\n\x0c_descriptionB\t\n\x07_labels\"T\n\x1cMachineServiceUpdateResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"v\n\x19MachineServiceListRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.MachineQueryR\x05query\"T\n\x1aMachineServiceListResponse\x12\x36\n\x08machines\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.MachineR\x08machines\"_\n\x1bMachineServiceDeleteRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"T\n\x1cMachineServiceDeleteResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\xc1\x04\n\x07Machine\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12:\n\tpartition\x18\x03 \x01(\x0b\x32\x1c.metalstack.api.v2.PartitionR\tpartition\x12\x1c\n\x04rack\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04rack\x12+\n\x04size\x18\x05 \x01(\x0b\x32\x17.metalstack.api.v2.SizeR\x04size\x12>\n\x08hardware\x18\x06 \x01(\x0b\x32\".metalstack.api.v2.MachineHardwareR\x08hardware\x12\x32\n\x04\x62ios\x18\x07 \x01(\x0b\x32\x1e.metalstack.api.v2.MachineBiosR\x04\x62ios\x12\x44\n\nallocation\x18\x08 \x01(\x0b\x32$.metalstack.api.v2.MachineAllocationR\nallocation\x12\x38\n\x06status\x18\t \x01(\x0b\x32 .metalstack.api.v2.MachineStatusR\x06status\x12p\n\x1arecent_provisioning_events\x18\n \x01(\x0b\x32\x32.metalstack.api.v2.MachineRecentProvisioningEventsR\x18recentProvisioningEvents\"\xa4\x02\n\rMachineStatus\x12\x41\n\tcondition\x18\x01 \x01(\x0b\x32#.metalstack.api.v2.MachineConditionR\tcondition\x12N\n\tled_state\x18\x02 \x01(\x0b\x32\x31.metalstack.api.v2.MachineChassisIdentifyLEDStateR\x08ledState\x12N\n\nliveliness\x18\x03 \x01(\x0e\x32$.metalstack.api.v2.MachineLivelinessB\x08\xbaH\x05\x82\x01\x02\x10\x01R\nliveliness\x12\x30\n\x14metal_hammer_version\x18\x04 \x01(\tR\x12metalHammerVersion\"\xa4\x01\n\x10MachineCondition\x12?\n\x05state\x18\x01 \x01(\x0e\x32\x1f.metalstack.api.v2.MachineStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05state\x12-\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12 \n\x06issuer\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06issuer\"\xa8\x07\n\x11MachineAllocation\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12\x1f\n\x04name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12-\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12\'\n\ncreated_by\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\tcreatedBy\x12\"\n\x07project\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12.\n\x05image\x18\x07 \x01(\x0b\x32\x18.metalstack.api.v2.ImageR\x05image\x12P\n\x11\x66ilesystem_layout\x18\x08 \x01(\x0b\x32#.metalstack.api.v2.FilesystemLayoutR\x10\x66ilesystemLayout\x12=\n\x08networks\x18\t \x03(\x0b\x32!.metalstack.api.v2.MachineNetworkR\x08networks\x12#\n\x08hostname\x18\n \x01(\tB\x07\xbaH\x04r\x02h\x01R\x08hostname\x12\x39\n\x0fssh_public_keys\x18\x0b \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x32\"\x07r\x05\x10\x01\x18\x80@R\rsshPublicKeys\x12%\n\x08userdata\x18\x0c \x01(\tB\t\xbaH\x06r\x04\x18\x80\x80\x02R\x08userdata\x12[\n\x0f\x61llocation_type\x18\r \x01(\x0e\x32(.metalstack.api.v2.MachineAllocationTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0e\x61llocationType\x12G\n\x0e\x66irewall_rules\x18\x0e \x01(\x0b\x32 .metalstack.api.v2.FirewallRulesR\rfirewallRules\x12\x45\n\ndns_server\x18\x0f \x03(\x0b\x32\x1c.metalstack.api.v2.DNSServerB\x08\xbaH\x05\x92\x01\x02\x10\x03R\tdnsServer\x12\x45\n\nntp_server\x18\x10 \x03(\x0b\x32\x1c.metalstack.api.v2.NTPServerB\x08\xbaH\x05\x92\x01\x02\x10\nR\tntpServer\x12/\n\x03vpn\x18\x11 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineVPNR\x03vpn\"}\n\x18MachineAllocationNetwork\x12\x18\n\x07network\x18\x01 \x01(\tR\x07network\x12\x30\n\x12no_auto_acquire_ip\x18\x02 \x01(\x08H\x00R\x0fnoAutoAcquireIp\x88\x01\x01\x42\x15\n\x13_no_auto_acquire_ip\"\x90\x01\n\rFirewallRules\x12=\n\x06\x65gress\x18\x01 \x03(\x0b\x32%.metalstack.api.v2.FirewallEgressRuleR\x06\x65gress\x12@\n\x07ingress\x18\x02 \x03(\x0b\x32&.metalstack.api.v2.FirewallIngressRuleR\x07ingress\"\xd0\x01\n\x12\x46irewallEgressRule\x12\x43\n\x08protocol\x18\x01 \x01(\x0e\x32\x1d.metalstack.api.v2.IPProtocolB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08protocol\x12$\n\x05ports\x18\x02 \x03(\rB\x0e\xbaH\x0b\x92\x01\x08\"\x06*\x04\x18\xfc\xff\x03R\x05ports\x12\x1c\n\x02to\x18\x03 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x02to\x12\x31\n\x07\x63omment\x18\x04 \x01(\tB\x17\xbaH\x14r\x0f\x18\x64\x32\x0b^[a-z_ -]*$\xd8\x01\x01R\x07\x63omment\"\xf3\x01\n\x13\x46irewallIngressRule\x12\x43\n\x08protocol\x18\x01 \x01(\x0e\x32\x1d.metalstack.api.v2.IPProtocolB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08protocol\x12$\n\x05ports\x18\x02 \x03(\rB\x0e\xbaH\x0b\x92\x01\x08\"\x06*\x04\x18\xfc\xff\x03R\x05ports\x12\x1c\n\x02to\x18\x03 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x02to\x12 \n\x04\x66rom\x18\x04 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x04\x66rom\x12\x31\n\x07\x63omment\x18\x05 \x01(\tB\x17\xbaH\x14r\x0f\x18\x64\x32\x0b^[a-z_ -]*$\xd8\x01\x01R\x07\x63omment\"\xe7\x02\n\x0eMachineNetwork\x12\x18\n\x07network\x18\x01 \x01(\tR\x07network\x12(\n\x08prefixes\x18\x02 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x03 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x1e\n\x03ips\x18\x04 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe8\xb3\xae\xb1\x02\x01R\x03ips\x12K\n\x0cnetwork_type\x18\x05 \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0bnetworkType\x12?\n\x08nat_type\x18\x06 \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07natType\x12\x10\n\x03vrf\x18\x07 \x01(\x04R\x03vrf\x12\x10\n\x03\x61sn\x18\x08 \x01(\rR\x03\x61sn\"\xfb\x01\n\x0fMachineHardware\x12\x16\n\x06memory\x18\x01 \x01(\x04R\x06memory\x12;\n\x05\x64isks\x18\x03 \x03(\x0b\x32%.metalstack.api.v2.MachineBlockDeviceR\x05\x64isks\x12/\n\x04\x63pus\x18\x04 \x03(\x0b\x32\x1b.metalstack.api.v2.MetalCPUR\x04\x63pus\x12/\n\x04gpus\x18\x05 \x03(\x0b\x32\x1b.metalstack.api.v2.MetalGPUR\x04gpus\x12\x31\n\x04nics\x18\x06 \x03(\x0b\x32\x1d.metalstack.api.v2.MachineNicR\x04nics\"|\n\x08MetalCPU\x12 \n\x06vendor\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1e\n\x05model\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x05model\x12\x14\n\x05\x63ores\x18\x03 \x01(\rR\x05\x63ores\x12\x18\n\x07threads\x18\x04 \x01(\rR\x07threads\"L\n\x08MetalGPU\x12 \n\x06vendor\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1e\n\x05model\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x05model\"\x8b\x02\n\nMachineNic\x12\x1d\n\x03mac\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xb8\xb3\xae\xb1\x02\x01R\x03mac\x12\x1f\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12(\n\nidentifier\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\nidentifier\x12 \n\x06vendor\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x06vendor\x12\x1e\n\x05model\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x05model\x12\x14\n\x05speed\x18\x06 \x01(\x04R\x05speed\x12;\n\tneighbors\x18\x07 \x03(\x0b\x32\x1d.metalstack.api.v2.MachineNicR\tneighbors\"I\n\x12MachineBlockDevice\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12\x12\n\x04size\x18\x02 \x01(\x04R\x04size\"o\n\x1eMachineChassisIdentifyLEDState\x12\x1e\n\x05value\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x05value\x12-\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\"q\n\x0bMachineBios\x12\"\n\x07version\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x07version\x12 \n\x06vendor\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1c\n\x04\x64\x61te\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x04\x64\x61te\"\xd3\x02\n\x1fMachineRecentProvisioningEvents\x12\x43\n\x06\x65vents\x18\x01 \x03(\x0b\x32+.metalstack.api.v2.MachineProvisioningEventR\x06\x65vents\x12\x42\n\x0flast_event_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\rlastEventTime\x12U\n\x10last_error_event\x18\x03 \x01(\x0b\x32+.metalstack.api.v2.MachineProvisioningEventR\x0elastErrorEvent\x12P\n\x05state\x18\x04 \x01(\x0e\x32\x30.metalstack.api.v2.MachineProvisioningEventStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05state\"\xab\x01\n\x18MachineProvisioningEvent\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x45\n\x05\x65vent\x18\x02 \x01(\x0e\x32/.metalstack.api.v2.MachineProvisioningEventTypeR\x05\x65vent\x12\x18\n\x07message\x18\x03 \x01(\tR\x07message\"y\n\nMachineVPN\x12\x32\n\x15\x63ontrol_plane_address\x18\x01 \x01(\tR\x13\x63ontrolPlaneAddress\x12\x19\n\x08\x61uth_key\x18\x02 \x01(\tR\x07\x61uthKey\x12\x1c\n\tconnected\x18\x03 \x01(\x08R\tconnected\"\xa8\x07\n\x0cMachineQuery\x12!\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04name\x88\x01\x01\x12-\n\tpartition\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\tpartition\x88\x01\x01\x12#\n\x04size\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x04size\x88\x01\x01\x12#\n\x04rack\x18\x05 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x04R\x04rack\x88\x01\x01\x12\x36\n\x06labels\x18\x06 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x05R\x06labels\x88\x01\x01\x12N\n\nallocation\x18\x07 \x01(\x0b\x32).metalstack.api.v2.MachineAllocationQueryH\x06R\nallocation\x88\x01\x01\x12\x45\n\x07network\x18\x08 \x01(\x0b\x32&.metalstack.api.v2.MachineNetworkQueryH\x07R\x07network\x88\x01\x01\x12\x39\n\x03nic\x18\t \x01(\x0b\x32\".metalstack.api.v2.MachineNicQueryH\x08R\x03nic\x88\x01\x01\x12<\n\x04\x64isk\x18\n \x01(\x0b\x32#.metalstack.api.v2.MachineDiskQueryH\tR\x04\x64isk\x88\x01\x01\x12<\n\x04ipmi\x18\x0b \x01(\x0b\x32#.metalstack.api.v2.MachineIPMIQueryH\nR\x04ipmi\x88\x01\x01\x12\x39\n\x03\x66ru\x18\x0c \x01(\x0b\x32\".metalstack.api.v2.MachineFRUQueryH\x0bR\x03\x66ru\x88\x01\x01\x12H\n\x08hardware\x18\r \x01(\x0b\x32\'.metalstack.api.v2.MachineHardwareQueryH\x0cR\x08hardware\x88\x01\x01\x12:\n\x05state\x18\x0e \x01(\x0e\x32\x1f.metalstack.api.v2.MachineStateH\rR\x05state\x88\x01\x01\x42\x07\n\x05_uuidB\x07\n\x05_nameB\x0c\n\n_partitionB\x07\n\x05_sizeB\x07\n\x05_rackB\t\n\x07_labelsB\r\n\x0b_allocationB\n\n\x08_networkB\x06\n\x04_nicB\x07\n\x05_diskB\x07\n\x05_ipmiB\x06\n\x04_fruB\x0b\n\t_hardwareB\x08\n\x06_state\"\xa0\x04\n\x16MachineAllocationQuery\x12!\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04name\x88\x01\x01\x12\'\n\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x02R\x07project\x88\x01\x01\x12%\n\x05image\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x05image\x88\x01\x01\x12<\n\x11\x66ilesystem_layout\x18\x05 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x04R\x10\x66ilesystemLayout\x88\x01\x01\x12+\n\x08hostname\x18\x06 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x05R\x08hostname\x88\x01\x01\x12`\n\x0f\x61llocation_type\x18\x07 \x01(\x0e\x32(.metalstack.api.v2.MachineAllocationTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x06R\x0e\x61llocationType\x88\x01\x01\x12\x36\n\x06labels\x18\x08 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x07R\x06labels\x88\x01\x01\x42\x07\n\x05_uuidB\x07\n\x05_nameB\n\n\x08_projectB\x08\n\x06_imageB\x14\n\x12_filesystem_layoutB\x0b\n\t_hostnameB\x12\n\x10_allocation_typeB\t\n\x07_labels\"\xe4\x01\n\x13MachineNetworkQuery\x12\x1a\n\x08networks\x18\x01 \x03(\tR\x08networks\x12(\n\x08prefixes\x18\x02 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x03 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x1e\n\x03ips\x18\x04 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe8\xb3\xae\xb1\x02\x01R\x03ips\x12\x12\n\x04vrfs\x18\x05 \x03(\x04R\x04vrfs\x12\x12\n\x04\x61sns\x18\x06 \x03(\rR\x04\x61sns\"\xd9\x01\n\x0fMachineNicQuery\x12(\n\x04macs\x18\x01 \x03(\tB\x14\xbaH\x11\x92\x01\x0e\x10\x64\x18\x01\"\x08r\x06\xb8\xb3\xae\xb1\x02\x01R\x04macs\x12\'\n\x05names\x18\x02 \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x64\x18\x01\"\x05r\x03\x18\x80\x01R\x05names\x12\x39\n\rneighbor_macs\x18\x03 \x03(\tB\x14\xbaH\x11\x92\x01\x0e\x10\x64\x18\x01\"\x08r\x06\xb8\xb3\xae\xb1\x02\x01R\x0cneighborMacs\x12\x38\n\x0eneighbor_names\x18\x04 \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x64\x18\x01\"\x05r\x03\x18\x80\x01R\rneighborNames\"Y\n\x10MachineDiskQuery\x12%\n\x05names\x18\x01 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x64\"\x05r\x03\x18\x80\x01R\x05names\x12\x1e\n\x05sizes\x18\x02 \x03(\x04\x42\x08\xbaH\x05\x92\x01\x02\x10\x64R\x05sizes\"\xd9\x01\n\x10MachineIPMIQuery\x12&\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x07\xbaH\x04r\x02p\x01H\x00R\x07\x61\x64\x64ress\x88\x01\x01\x12\"\n\x03mac\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xb8\xb3\xae\xb1\x02\x01H\x01R\x03mac\x88\x01\x01\x12!\n\x04user\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x02R\x04user\x88\x01\x01\x12+\n\tinterface\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x03R\tinterface\x88\x01\x01\x42\n\n\x08_addressB\x06\n\x04_macB\x07\n\x05_userB\x0c\n\n_interface\"\x88\x05\n\x0fMachineFRUQuery\x12=\n\x13\x63hassis_part_number\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x00R\x11\x63hassisPartNumber\x88\x01\x01\x12=\n\x13\x63hassis_part_serial\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x01R\x11\x63hassisPartSerial\x88\x01\x01\x12*\n\tboard_mfg\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x02R\x08\x62oardMfg\x88\x01\x01\x12\x30\n\x0c\x62oard_serial\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x03R\x0b\x62oardSerial\x88\x01\x01\x12\x39\n\x11\x62oard_part_number\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x04R\x0f\x62oardPartNumber\x88\x01\x01\x12@\n\x14product_manufacturer\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x05R\x13productManufacturer\x88\x01\x01\x12=\n\x13product_part_number\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x06R\x11productPartNumber\x88\x01\x01\x12\x34\n\x0eproduct_serial\x18\x08 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x07R\rproductSerial\x88\x01\x01\x42\x16\n\x14_chassis_part_numberB\x16\n\x14_chassis_part_serialB\x0c\n\n_board_mfgB\x0f\n\r_board_serialB\x14\n\x12_board_part_numberB\x17\n\x15_product_manufacturerB\x16\n\x14_product_part_numberB\x11\n\x0f_product_serial\"n\n\x14MachineHardwareQuery\x12\x1b\n\x06memory\x18\x01 \x01(\x04H\x00R\x06memory\x88\x01\x01\x12 \n\tcpu_cores\x18\x02 \x01(\rH\x01R\x08\x63puCores\x88\x01\x01\x42\t\n\x07_memoryB\x0c\n\n_cpu_cores*e\n\nIPProtocol\x12\x1b\n\x17IP_PROTOCOL_UNSPECIFIED\x10\x00\x12\x1c\n\x0fIP_PROTOCOL_TCP\x10\x01\x1a\x07\x82\xb2\x19\x03tcp\x12\x1c\n\x0fIP_PROTOCOL_UDP\x10\x02\x1a\x07\x82\xb2\x19\x03udp*\xaf\x01\n\x0cMachineState\x12#\n\x19MACHINE_STATE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12(\n\x16MACHINE_STATE_RESERVED\x10\x01\x1a\x0c\x82\xb2\x19\x08reserved\x12$\n\x14MACHINE_STATE_LOCKED\x10\x02\x1a\n\x82\xb2\x19\x06locked\x12*\n\x17MACHINE_STATE_AVAILABLE\x10\x03\x1a\r\x82\xb2\x19\tavailable*\xdf\x01\n\x1dMachineProvisioningEventState\x12\x36\n,MACHINE_PROVISIONING_EVENT_STATE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12=\n*MACHINE_PROVISIONING_EVENT_STATE_CRASHLOOP\x10\x01\x1a\r\x82\xb2\x19\tcrashloop\x12G\n/MACHINE_PROVISIONING_EVENT_STATE_FAILED_RECLAIM\x10\x02\x1a\x12\x82\xb2\x19\x0e\x66\x61iled-reclaim*\x9f\x06\n\x1cMachineProvisioningEventType\x12/\n+MACHINE_PROVISIONING_EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x34\n%MACHINE_PROVISIONING_EVENT_TYPE_ALIVE\x10\x01\x1a\t\x82\xb2\x19\x05\x41live\x12\x38\n\'MACHINE_PROVISIONING_EVENT_TYPE_CRASHED\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43rashed\x12@\n+MACHINE_PROVISIONING_EVENT_TYPE_PXE_BOOTING\x10\x03\x1a\x0f\x82\xb2\x19\x0bPXE Booting\x12\x46\n.MACHINE_PROVISIONING_EVENT_TYPE_PLANNED_REBOOT\x10\x04\x1a\x12\x82\xb2\x19\x0ePlanned Reboot\x12<\n)MACHINE_PROVISIONING_EVENT_TYPE_PREPARING\x10\x05\x1a\r\x82\xb2\x19\tPreparing\x12@\n+MACHINE_PROVISIONING_EVENT_TYPE_REGISTERING\x10\x06\x1a\x0f\x82\xb2\x19\x0bRegistering\x12\x38\n\'MACHINE_PROVISIONING_EVENT_TYPE_WAITING\x10\x07\x1a\x0b\x82\xb2\x19\x07Waiting\x12>\n*MACHINE_PROVISIONING_EVENT_TYPE_INSTALLING\x10\x08\x1a\x0e\x82\xb2\x19\nInstalling\x12N\n2MACHINE_PROVISIONING_EVENT_TYPE_BOOTING_NEW_KERNEL\x10\t\x1a\x16\x82\xb2\x19\x12\x42ooting New Kernel\x12@\n+MACHINE_PROVISIONING_EVENT_TYPE_PHONED_HOME\x10\n\x1a\x0f\x82\xb2\x19\x0bPhoned Home\x12H\n/MACHINE_PROVISIONING_EVENT_TYPE_MACHINE_RECLAIM\x10\x0b\x1a\x13\x82\xb2\x19\x0fMachine Reclaim*\xba\x01\n\x11MachineLiveliness\x12(\n\x1eMACHINE_LIVELINESS_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12\'\n\x18MACHINE_LIVELINESS_ALIVE\x10\x01\x1a\t\x82\xb2\x19\x05\x61live\x12%\n\x17MACHINE_LIVELINESS_DEAD\x10\x02\x1a\x08\x82\xb2\x19\x04\x64\x65\x61\x64\x12+\n\x1aMACHINE_LIVELINESS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\xac\x01\n\x15MachineAllocationType\x12-\n#MACHINE_ALLOCATION_TYPE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12\x30\n\x1fMACHINE_ALLOCATION_TYPE_MACHINE\x10\x01\x1a\x0b\x82\xb2\x19\x07machine\x12\x32\n MACHINE_ALLOCATION_TYPE_FIREWALL\x10\x02\x1a\x0c\x82\xb2\x19\x08\x66irewall2\xca\x04\n\x0eMachineService\x12m\n\x03Get\x12+.metalstack.api.v2.MachineServiceGetRequest\x1a,.metalstack.api.v2.MachineServiceGetResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12q\n\x06\x43reate\x12..metalstack.api.v2.MachineServiceCreateRequest\x1a/.metalstack.api.v2.MachineServiceCreateResponse\"\x06\xca\xf3\x18\x02\x01\x02\x12q\n\x06Update\x12..metalstack.api.v2.MachineServiceUpdateRequest\x1a/.metalstack.api.v2.MachineServiceUpdateResponse\"\x06\xca\xf3\x18\x02\x01\x02\x12p\n\x04List\x12,.metalstack.api.v2.MachineServiceListRequest\x1a-.metalstack.api.v2.MachineServiceListResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12q\n\x06\x44\x65lete\x12..metalstack.api.v2.MachineServiceDeleteRequest\x1a/.metalstack.api.v2.MachineServiceDeleteResponse\"\x06\xca\xf3\x18\x02\x01\x02\x42\xc2\x01\n\x15\x63om.metalstack.api.v2B\x0cMachineProtoP\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')
36
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1fmetalstack/api/v2/machine.proto\x12\x11metalstack.api.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1emetalstack/api/v2/common.proto\x1a\"metalstack/api/v2/filesystem.proto\x1a\x1dmetalstack/api/v2/image.proto\x1a\x1fmetalstack/api/v2/network.proto\x1a!metalstack/api/v2/partition.proto\x1a(metalstack/api/v2/predefined_rules.proto\x1a\x1cmetalstack/api/v2/size.proto\"\\\n\x18MachineServiceGetRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"Q\n\x19MachineServiceGetResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\xa2\x08\n\x1bMachineServiceCreateRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12!\n\x04uuid\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12\x1f\n\x04name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12\x32\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01H\x01R\x0b\x64\x65scription\x88\x01\x01\x12(\n\x08hostname\x18\x05 \x01(\tB\x07\xbaH\x04r\x02h\x01H\x02R\x08hostname\x88\x01\x01\x12)\n\tpartition\x18\x06 \x01(\tB\x0b\xbaH\x08r\x06\xd0\xb3\xae\xb1\x02\x01R\tpartition\x12\x1c\n\x04size\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04size\x12\x1e\n\x05image\x18\x08 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x05image\x12\x30\n\x11\x66ilesystem_layout\x18\t \x01(\tH\x03R\x10\x66ilesystemLayout\x88\x01\x01\x12\x39\n\x0fssh_public_keys\x18\n \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x32\"\x07r\x05\x10\x01\x18\x80@R\rsshPublicKeys\x12*\n\x08userdata\x18\x0b \x01(\tB\t\xbaH\x06r\x04\x18\x80\x80\x02H\x04R\x08userdata\x88\x01\x01\x12\x31\n\x06labels\x18\x0c \x01(\x0b\x32\x19.metalstack.api.v2.LabelsR\x06labels\x12G\n\x08networks\x18\r \x03(\x0b\x32+.metalstack.api.v2.MachineAllocationNetworkR\x08networks\x12\x1e\n\x03ips\x18\x0e \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe8\xb3\xae\xb1\x02\x01R\x03ips\x12%\n\x0eplacement_tags\x18\x0f \x03(\tR\rplacementTags\x12\x45\n\ndns_server\x18\x10 \x03(\x0b\x32\x1c.metalstack.api.v2.DNSServerB\x08\xbaH\x05\x92\x01\x02\x10\x03R\tdnsServer\x12\x45\n\nntp_server\x18\x11 \x03(\x0b\x32\x1c.metalstack.api.v2.NTPServerB\x08\xbaH\x05\x92\x01\x02\x10\nR\tntpServer\x12[\n\x0f\x61llocation_type\x18\x12 \x01(\x0e\x32(.metalstack.api.v2.MachineAllocationTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0e\x61llocationType\x12\x44\n\rfirewall_spec\x18\x13 \x01(\x0b\x32\x1f.metalstack.api.v2.FirewallSpecR\x0c\x66irewallSpecB\x07\n\x05_uuidB\x0e\n\x0c_descriptionB\x0b\n\t_hostnameB\x14\n\x12_filesystem_layoutB\x0b\n\t_userdata\"W\n\x0c\x46irewallSpec\x12G\n\x0e\x66irewall_rules\x18\x13 \x01(\x0b\x32 .metalstack.api.v2.FirewallRulesR\rfirewallRules\"T\n\x1cMachineServiceCreateResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\xef\x02\n\x1bMachineServiceUpdateRequest\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\x01R\nupdateMeta\x12\"\n\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\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\x12<\n\x06labels\x18\x05 \x01(\x0b\x32\x1f.metalstack.api.v2.UpdateLabelsH\x01R\x06labels\x88\x01\x01\x12\x39\n\x0fssh_public_keys\x18\x06 \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x32\"\x07r\x05\x10\x01\x18\x80@R\rsshPublicKeysB\x0e\n\x0c_descriptionB\t\n\x07_labels\"T\n\x1cMachineServiceUpdateResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"v\n\x19MachineServiceListRequest\x12\"\n\x07project\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12\x35\n\x05query\x18\x02 \x01(\x0b\x32\x1f.metalstack.api.v2.MachineQueryR\x05query\"T\n\x1aMachineServiceListResponse\x12\x36\n\x08machines\x18\x01 \x03(\x0b\x32\x1a.metalstack.api.v2.MachineR\x08machines\"_\n\x1bMachineServiceDeleteRequest\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12\"\n\x07project\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\"T\n\x1cMachineServiceDeleteResponse\x12\x34\n\x07machine\x18\x01 \x01(\x0b\x32\x1a.metalstack.api.v2.MachineR\x07machine\"\xc1\x04\n\x07Machine\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12:\n\tpartition\x18\x03 \x01(\x0b\x32\x1c.metalstack.api.v2.PartitionR\tpartition\x12\x1c\n\x04rack\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x04rack\x12+\n\x04size\x18\x05 \x01(\x0b\x32\x17.metalstack.api.v2.SizeR\x04size\x12>\n\x08hardware\x18\x06 \x01(\x0b\x32\".metalstack.api.v2.MachineHardwareR\x08hardware\x12\x32\n\x04\x62ios\x18\x07 \x01(\x0b\x32\x1e.metalstack.api.v2.MachineBiosR\x04\x62ios\x12\x44\n\nallocation\x18\x08 \x01(\x0b\x32$.metalstack.api.v2.MachineAllocationR\nallocation\x12\x38\n\x06status\x18\t \x01(\x0b\x32 .metalstack.api.v2.MachineStatusR\x06status\x12p\n\x1arecent_provisioning_events\x18\n \x01(\x0b\x32\x32.metalstack.api.v2.MachineRecentProvisioningEventsR\x18recentProvisioningEvents\"\xa4\x02\n\rMachineStatus\x12\x41\n\tcondition\x18\x01 \x01(\x0b\x32#.metalstack.api.v2.MachineConditionR\tcondition\x12N\n\tled_state\x18\x02 \x01(\x0b\x32\x31.metalstack.api.v2.MachineChassisIdentifyLEDStateR\x08ledState\x12N\n\nliveliness\x18\x03 \x01(\x0e\x32$.metalstack.api.v2.MachineLivelinessB\x08\xbaH\x05\x82\x01\x02\x10\x01R\nliveliness\x12\x30\n\x14metal_hammer_version\x18\x04 \x01(\tR\x12metalHammerVersion\"\xa4\x01\n\x10MachineCondition\x12?\n\x05state\x18\x01 \x01(\x0e\x32\x1f.metalstack.api.v2.MachineStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05state\x12-\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12 \n\x06issuer\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06issuer\"\xa8\x07\n\x11MachineAllocation\x12\x1c\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x04uuid\x12+\n\x04meta\x18\x02 \x01(\x0b\x32\x17.metalstack.api.v2.MetaR\x04meta\x12\x1f\n\x04name\x18\x03 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12-\n\x0b\x64\x65scription\x18\x04 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\x12\'\n\ncreated_by\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\tcreatedBy\x12\"\n\x07project\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01R\x07project\x12.\n\x05image\x18\x07 \x01(\x0b\x32\x18.metalstack.api.v2.ImageR\x05image\x12P\n\x11\x66ilesystem_layout\x18\x08 \x01(\x0b\x32#.metalstack.api.v2.FilesystemLayoutR\x10\x66ilesystemLayout\x12=\n\x08networks\x18\t \x03(\x0b\x32!.metalstack.api.v2.MachineNetworkR\x08networks\x12#\n\x08hostname\x18\n \x01(\tB\x07\xbaH\x04r\x02h\x01R\x08hostname\x12\x39\n\x0fssh_public_keys\x18\x0b \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x32\"\x07r\x05\x10\x01\x18\x80@R\rsshPublicKeys\x12%\n\x08userdata\x18\x0c \x01(\tB\t\xbaH\x06r\x04\x18\x80\x80\x02R\x08userdata\x12[\n\x0f\x61llocation_type\x18\r \x01(\x0e\x32(.metalstack.api.v2.MachineAllocationTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0e\x61llocationType\x12G\n\x0e\x66irewall_rules\x18\x0e \x01(\x0b\x32 .metalstack.api.v2.FirewallRulesR\rfirewallRules\x12\x45\n\ndns_server\x18\x0f \x03(\x0b\x32\x1c.metalstack.api.v2.DNSServerB\x08\xbaH\x05\x92\x01\x02\x10\x03R\tdnsServer\x12\x45\n\nntp_server\x18\x10 \x03(\x0b\x32\x1c.metalstack.api.v2.NTPServerB\x08\xbaH\x05\x92\x01\x02\x10\nR\tntpServer\x12/\n\x03vpn\x18\x11 \x01(\x0b\x32\x1d.metalstack.api.v2.MachineVPNR\x03vpn\"}\n\x18MachineAllocationNetwork\x12\x18\n\x07network\x18\x01 \x01(\tR\x07network\x12\x30\n\x12no_auto_acquire_ip\x18\x02 \x01(\x08H\x00R\x0fnoAutoAcquireIp\x88\x01\x01\x42\x15\n\x13_no_auto_acquire_ip\"\x90\x01\n\rFirewallRules\x12=\n\x06\x65gress\x18\x01 \x03(\x0b\x32%.metalstack.api.v2.FirewallEgressRuleR\x06\x65gress\x12@\n\x07ingress\x18\x02 \x03(\x0b\x32&.metalstack.api.v2.FirewallIngressRuleR\x07ingress\"\xd0\x01\n\x12\x46irewallEgressRule\x12\x43\n\x08protocol\x18\x01 \x01(\x0e\x32\x1d.metalstack.api.v2.IPProtocolB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08protocol\x12$\n\x05ports\x18\x02 \x03(\rB\x0e\xbaH\x0b\x92\x01\x08\"\x06*\x04\x18\xfc\xff\x03R\x05ports\x12\x1c\n\x02to\x18\x03 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x02to\x12\x31\n\x07\x63omment\x18\x04 \x01(\tB\x17\xbaH\x14r\x0f\x18\x64\x32\x0b^[a-z_ -]*$\xd8\x01\x01R\x07\x63omment\"\xf3\x01\n\x13\x46irewallIngressRule\x12\x43\n\x08protocol\x18\x01 \x01(\x0e\x32\x1d.metalstack.api.v2.IPProtocolB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x08protocol\x12$\n\x05ports\x18\x02 \x03(\rB\x0e\xbaH\x0b\x92\x01\x08\"\x06*\x04\x18\xfc\xff\x03R\x05ports\x12\x1c\n\x02to\x18\x03 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x02to\x12 \n\x04\x66rom\x18\x04 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x04\x66rom\x12\x31\n\x07\x63omment\x18\x05 \x01(\tB\x17\xbaH\x14r\x0f\x18\x64\x32\x0b^[a-z_ -]*$\xd8\x01\x01R\x07\x63omment\"\xe7\x02\n\x0eMachineNetwork\x12\x18\n\x07network\x18\x01 \x01(\tR\x07network\x12(\n\x08prefixes\x18\x02 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x03 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x1e\n\x03ips\x18\x04 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe8\xb3\xae\xb1\x02\x01R\x03ips\x12K\n\x0cnetwork_type\x18\x05 \x01(\x0e\x32\x1e.metalstack.api.v2.NetworkTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x0bnetworkType\x12?\n\x08nat_type\x18\x06 \x01(\x0e\x32\x1a.metalstack.api.v2.NATTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x07natType\x12\x10\n\x03vrf\x18\x07 \x01(\x04R\x03vrf\x12\x10\n\x03\x61sn\x18\x08 \x01(\rR\x03\x61sn\"\xfb\x01\n\x0fMachineHardware\x12\x16\n\x06memory\x18\x01 \x01(\x04R\x06memory\x12;\n\x05\x64isks\x18\x03 \x03(\x0b\x32%.metalstack.api.v2.MachineBlockDeviceR\x05\x64isks\x12/\n\x04\x63pus\x18\x04 \x03(\x0b\x32\x1b.metalstack.api.v2.MetalCPUR\x04\x63pus\x12/\n\x04gpus\x18\x05 \x03(\x0b\x32\x1b.metalstack.api.v2.MetalGPUR\x04gpus\x12\x31\n\x04nics\x18\x06 \x03(\x0b\x32\x1d.metalstack.api.v2.MachineNicR\x04nics\"|\n\x08MetalCPU\x12 \n\x06vendor\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1e\n\x05model\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x05model\x12\x14\n\x05\x63ores\x18\x03 \x01(\rR\x05\x63ores\x12\x18\n\x07threads\x18\x04 \x01(\rR\x07threads\"L\n\x08MetalGPU\x12 \n\x06vendor\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1e\n\x05model\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x05model\"\xa7\x02\n\nMachineNic\x12\x1d\n\x03mac\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xb8\xb3\xae\xb1\x02\x01R\x03mac\x12\x1f\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12(\n\nidentifier\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\nidentifier\x12 \n\x06vendor\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x06vendor\x12\x1e\n\x05model\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x05model\x12\x14\n\x05speed\x18\x06 \x01(\x04R\x05speed\x12;\n\tneighbors\x18\x07 \x03(\x0b\x32\x1d.metalstack.api.v2.MachineNicR\tneighbors\x12\x1a\n\x08hostname\x18\x08 \x01(\tR\x08hostname\"I\n\x12MachineBlockDevice\x12\x1f\n\x04name\x18\x01 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01R\x04name\x12\x12\n\x04size\x18\x02 \x01(\x04R\x04size\"o\n\x1eMachineChassisIdentifyLEDState\x12\x1e\n\x05value\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01R\x05value\x12-\n\x0b\x64\x65scription\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc8\xb3\xae\xb1\x02\x01R\x0b\x64\x65scription\"q\n\x0bMachineBios\x12\"\n\x07version\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x07version\x12 \n\x06vendor\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x06vendor\x12\x1c\n\x04\x64\x61te\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x02R\x04\x64\x61te\"\xd3\x02\n\x1fMachineRecentProvisioningEvents\x12\x43\n\x06\x65vents\x18\x01 \x03(\x0b\x32+.metalstack.api.v2.MachineProvisioningEventR\x06\x65vents\x12\x42\n\x0flast_event_time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\rlastEventTime\x12U\n\x10last_error_event\x18\x03 \x01(\x0b\x32+.metalstack.api.v2.MachineProvisioningEventR\x0elastErrorEvent\x12P\n\x05state\x18\x04 \x01(\x0e\x32\x30.metalstack.api.v2.MachineProvisioningEventStateB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05state\"\xab\x01\n\x18MachineProvisioningEvent\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12\x45\n\x05\x65vent\x18\x02 \x01(\x0e\x32/.metalstack.api.v2.MachineProvisioningEventTypeR\x05\x65vent\x12\x18\n\x07message\x18\x03 \x01(\tR\x07message\"\x99\x01\n\nMachineVPN\x12\x32\n\x15\x63ontrol_plane_address\x18\x01 \x01(\tR\x13\x63ontrolPlaneAddress\x12\x19\n\x08\x61uth_key\x18\x02 \x01(\tR\x07\x61uthKey\x12\x1c\n\tconnected\x18\x03 \x01(\x08R\tconnected\x12\x1e\n\x03ips\x18\x05 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe8\xb3\xae\xb1\x02\x01R\x03ips\"\xa8\x07\n\x0cMachineQuery\x12!\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04name\x88\x01\x01\x12-\n\tpartition\x18\x03 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x02R\tpartition\x88\x01\x01\x12#\n\x04size\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x04size\x88\x01\x01\x12#\n\x04rack\x18\x05 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x04R\x04rack\x88\x01\x01\x12\x36\n\x06labels\x18\x06 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x05R\x06labels\x88\x01\x01\x12N\n\nallocation\x18\x07 \x01(\x0b\x32).metalstack.api.v2.MachineAllocationQueryH\x06R\nallocation\x88\x01\x01\x12\x45\n\x07network\x18\x08 \x01(\x0b\x32&.metalstack.api.v2.MachineNetworkQueryH\x07R\x07network\x88\x01\x01\x12\x39\n\x03nic\x18\t \x01(\x0b\x32\".metalstack.api.v2.MachineNicQueryH\x08R\x03nic\x88\x01\x01\x12<\n\x04\x64isk\x18\n \x01(\x0b\x32#.metalstack.api.v2.MachineDiskQueryH\tR\x04\x64isk\x88\x01\x01\x12<\n\x04ipmi\x18\x0b \x01(\x0b\x32#.metalstack.api.v2.MachineIPMIQueryH\nR\x04ipmi\x88\x01\x01\x12\x39\n\x03\x66ru\x18\x0c \x01(\x0b\x32\".metalstack.api.v2.MachineFRUQueryH\x0bR\x03\x66ru\x88\x01\x01\x12H\n\x08hardware\x18\r \x01(\x0b\x32\'.metalstack.api.v2.MachineHardwareQueryH\x0cR\x08hardware\x88\x01\x01\x12:\n\x05state\x18\x0e \x01(\x0e\x32\x1f.metalstack.api.v2.MachineStateH\rR\x05state\x88\x01\x01\x42\x07\n\x05_uuidB\x07\n\x05_nameB\x0c\n\n_partitionB\x07\n\x05_sizeB\x07\n\x05_rackB\t\n\x07_labelsB\r\n\x0b_allocationB\n\n\x08_networkB\x06\n\x04_nicB\x07\n\x05_diskB\x07\n\x05_ipmiB\x06\n\x04_fruB\x0b\n\t_hardwareB\x08\n\x06_state\"\xde\x04\n\x16MachineAllocationQuery\x12!\n\x04uuid\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x00R\x04uuid\x88\x01\x01\x12$\n\x04name\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xc0\xb3\xae\xb1\x02\x01H\x01R\x04name\x88\x01\x01\x12\'\n\x07project\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\xb0\x01\x01H\x02R\x07project\x88\x01\x01\x12%\n\x05image\x18\x04 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x03R\x05image\x88\x01\x01\x12<\n\x11\x66ilesystem_layout\x18\x05 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x04R\x10\x66ilesystemLayout\x88\x01\x01\x12+\n\x08hostname\x18\x06 \x01(\tB\n\xbaH\x07r\x05\x10\x02\x18\x80\x01H\x05R\x08hostname\x88\x01\x01\x12`\n\x0f\x61llocation_type\x18\x07 \x01(\x0e\x32(.metalstack.api.v2.MachineAllocationTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x06R\x0e\x61llocationType\x88\x01\x01\x12\x36\n\x06labels\x18\x08 \x01(\x0b\x32\x19.metalstack.api.v2.LabelsH\x07R\x06labels\x88\x01\x01\x12\x34\n\x03vpn\x18\t \x01(\x0b\x32\x1d.metalstack.api.v2.MachineVPNH\x08R\x03vpn\x88\x01\x01\x42\x07\n\x05_uuidB\x07\n\x05_nameB\n\n\x08_projectB\x08\n\x06_imageB\x14\n\x12_filesystem_layoutB\x0b\n\t_hostnameB\x12\n\x10_allocation_typeB\t\n\x07_labelsB\x06\n\x04_vpn\"\xe4\x01\n\x13MachineNetworkQuery\x12\x1a\n\x08networks\x18\x01 \x03(\tR\x08networks\x12(\n\x08prefixes\x18\x02 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x08prefixes\x12?\n\x14\x64\x65stination_prefixes\x18\x03 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe0\xb3\xae\xb1\x02\x01R\x13\x64\x65stinationPrefixes\x12\x1e\n\x03ips\x18\x04 \x03(\tB\x0c\xbaH\t\x92\x01\x06\xe8\xb3\xae\xb1\x02\x01R\x03ips\x12\x12\n\x04vrfs\x18\x05 \x03(\x04R\x04vrfs\x12\x12\n\x04\x61sns\x18\x06 \x03(\rR\x04\x61sns\"\xd9\x01\n\x0fMachineNicQuery\x12(\n\x04macs\x18\x01 \x03(\tB\x14\xbaH\x11\x92\x01\x0e\x10\x64\x18\x01\"\x08r\x06\xb8\xb3\xae\xb1\x02\x01R\x04macs\x12\'\n\x05names\x18\x02 \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x64\x18\x01\"\x05r\x03\x18\x80\x01R\x05names\x12\x39\n\rneighbor_macs\x18\x03 \x03(\tB\x14\xbaH\x11\x92\x01\x0e\x10\x64\x18\x01\"\x08r\x06\xb8\xb3\xae\xb1\x02\x01R\x0cneighborMacs\x12\x38\n\x0eneighbor_names\x18\x04 \x03(\tB\x11\xbaH\x0e\x92\x01\x0b\x10\x64\x18\x01\"\x05r\x03\x18\x80\x01R\rneighborNames\"Y\n\x10MachineDiskQuery\x12%\n\x05names\x18\x01 \x03(\tB\x0f\xbaH\x0c\x92\x01\t\x10\x64\"\x05r\x03\x18\x80\x01R\x05names\x12\x1e\n\x05sizes\x18\x02 \x03(\x04\x42\x08\xbaH\x05\x92\x01\x02\x10\x64R\x05sizes\"\xd9\x01\n\x10MachineIPMIQuery\x12&\n\x07\x61\x64\x64ress\x18\x01 \x01(\tB\x07\xbaH\x04r\x02p\x01H\x00R\x07\x61\x64\x64ress\x88\x01\x01\x12\"\n\x03mac\x18\x02 \x01(\tB\x0b\xbaH\x08r\x06\xb8\xb3\xae\xb1\x02\x01H\x01R\x03mac\x88\x01\x01\x12!\n\x04user\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x02R\x04user\x88\x01\x01\x12+\n\tinterface\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x03R\tinterface\x88\x01\x01\x42\n\n\x08_addressB\x06\n\x04_macB\x07\n\x05_userB\x0c\n\n_interface\"\x88\x05\n\x0fMachineFRUQuery\x12=\n\x13\x63hassis_part_number\x18\x01 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x00R\x11\x63hassisPartNumber\x88\x01\x01\x12=\n\x13\x63hassis_part_serial\x18\x02 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x01R\x11\x63hassisPartSerial\x88\x01\x01\x12*\n\tboard_mfg\x18\x03 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x02R\x08\x62oardMfg\x88\x01\x01\x12\x30\n\x0c\x62oard_serial\x18\x04 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x03R\x0b\x62oardSerial\x88\x01\x01\x12\x39\n\x11\x62oard_part_number\x18\x05 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x04R\x0f\x62oardPartNumber\x88\x01\x01\x12@\n\x14product_manufacturer\x18\x06 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x05R\x13productManufacturer\x88\x01\x01\x12=\n\x13product_part_number\x18\x07 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x06R\x11productPartNumber\x88\x01\x01\x12\x34\n\x0eproduct_serial\x18\x08 \x01(\tB\x08\xbaH\x05r\x03\x18\x80\x01H\x07R\rproductSerial\x88\x01\x01\x42\x16\n\x14_chassis_part_numberB\x16\n\x14_chassis_part_serialB\x0c\n\n_board_mfgB\x0f\n\r_board_serialB\x14\n\x12_board_part_numberB\x17\n\x15_product_manufacturerB\x16\n\x14_product_part_numberB\x11\n\x0f_product_serial\"n\n\x14MachineHardwareQuery\x12\x1b\n\x06memory\x18\x01 \x01(\x04H\x00R\x06memory\x88\x01\x01\x12 \n\tcpu_cores\x18\x02 \x01(\rH\x01R\x08\x63puCores\x88\x01\x01\x42\t\n\x07_memoryB\x0c\n\n_cpu_cores*e\n\nIPProtocol\x12\x1b\n\x17IP_PROTOCOL_UNSPECIFIED\x10\x00\x12\x1c\n\x0fIP_PROTOCOL_TCP\x10\x01\x1a\x07\x82\xb2\x19\x03tcp\x12\x1c\n\x0fIP_PROTOCOL_UDP\x10\x02\x1a\x07\x82\xb2\x19\x03udp*\xaf\x01\n\x0cMachineState\x12#\n\x19MACHINE_STATE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12(\n\x16MACHINE_STATE_RESERVED\x10\x01\x1a\x0c\x82\xb2\x19\x08reserved\x12$\n\x14MACHINE_STATE_LOCKED\x10\x02\x1a\n\x82\xb2\x19\x06locked\x12*\n\x17MACHINE_STATE_AVAILABLE\x10\x03\x1a\r\x82\xb2\x19\tavailable*\xdf\x01\n\x1dMachineProvisioningEventState\x12\x36\n,MACHINE_PROVISIONING_EVENT_STATE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12=\n*MACHINE_PROVISIONING_EVENT_STATE_CRASHLOOP\x10\x01\x1a\r\x82\xb2\x19\tcrashloop\x12G\n/MACHINE_PROVISIONING_EVENT_STATE_FAILED_RECLAIM\x10\x02\x1a\x12\x82\xb2\x19\x0e\x66\x61iled-reclaim*\x9f\x06\n\x1cMachineProvisioningEventType\x12/\n+MACHINE_PROVISIONING_EVENT_TYPE_UNSPECIFIED\x10\x00\x12\x34\n%MACHINE_PROVISIONING_EVENT_TYPE_ALIVE\x10\x01\x1a\t\x82\xb2\x19\x05\x41live\x12\x38\n\'MACHINE_PROVISIONING_EVENT_TYPE_CRASHED\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43rashed\x12@\n+MACHINE_PROVISIONING_EVENT_TYPE_PXE_BOOTING\x10\x03\x1a\x0f\x82\xb2\x19\x0bPXE Booting\x12\x46\n.MACHINE_PROVISIONING_EVENT_TYPE_PLANNED_REBOOT\x10\x04\x1a\x12\x82\xb2\x19\x0ePlanned Reboot\x12<\n)MACHINE_PROVISIONING_EVENT_TYPE_PREPARING\x10\x05\x1a\r\x82\xb2\x19\tPreparing\x12@\n+MACHINE_PROVISIONING_EVENT_TYPE_REGISTERING\x10\x06\x1a\x0f\x82\xb2\x19\x0bRegistering\x12\x38\n\'MACHINE_PROVISIONING_EVENT_TYPE_WAITING\x10\x07\x1a\x0b\x82\xb2\x19\x07Waiting\x12>\n*MACHINE_PROVISIONING_EVENT_TYPE_INSTALLING\x10\x08\x1a\x0e\x82\xb2\x19\nInstalling\x12N\n2MACHINE_PROVISIONING_EVENT_TYPE_BOOTING_NEW_KERNEL\x10\t\x1a\x16\x82\xb2\x19\x12\x42ooting New Kernel\x12@\n+MACHINE_PROVISIONING_EVENT_TYPE_PHONED_HOME\x10\n\x1a\x0f\x82\xb2\x19\x0bPhoned Home\x12H\n/MACHINE_PROVISIONING_EVENT_TYPE_MACHINE_RECLAIM\x10\x0b\x1a\x13\x82\xb2\x19\x0fMachine Reclaim*\xba\x01\n\x11MachineLiveliness\x12(\n\x1eMACHINE_LIVELINESS_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12\'\n\x18MACHINE_LIVELINESS_ALIVE\x10\x01\x1a\t\x82\xb2\x19\x05\x61live\x12%\n\x17MACHINE_LIVELINESS_DEAD\x10\x02\x1a\x08\x82\xb2\x19\x04\x64\x65\x61\x64\x12+\n\x1aMACHINE_LIVELINESS_UNKNOWN\x10\x03\x1a\x0b\x82\xb2\x19\x07unknown*\xac\x01\n\x15MachineAllocationType\x12-\n#MACHINE_ALLOCATION_TYPE_UNSPECIFIED\x10\x00\x1a\x04\x82\xb2\x19\x00\x12\x30\n\x1fMACHINE_ALLOCATION_TYPE_MACHINE\x10\x01\x1a\x0b\x82\xb2\x19\x07machine\x12\x32\n MACHINE_ALLOCATION_TYPE_FIREWALL\x10\x02\x1a\x0c\x82\xb2\x19\x08\x66irewall2\xca\x04\n\x0eMachineService\x12m\n\x03Get\x12+.metalstack.api.v2.MachineServiceGetRequest\x1a,.metalstack.api.v2.MachineServiceGetResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12q\n\x06\x43reate\x12..metalstack.api.v2.MachineServiceCreateRequest\x1a/.metalstack.api.v2.MachineServiceCreateResponse\"\x06\xca\xf3\x18\x02\x01\x02\x12q\n\x06Update\x12..metalstack.api.v2.MachineServiceUpdateRequest\x1a/.metalstack.api.v2.MachineServiceUpdateResponse\"\x06\xca\xf3\x18\x02\x01\x02\x12p\n\x04List\x12,.metalstack.api.v2.MachineServiceListRequest\x1a-.metalstack.api.v2.MachineServiceListResponse\"\x0b\xca\xf3\x18\x03\x01\x02\x03\xe0\xf3\x18\x02\x12q\n\x06\x44\x65lete\x12..metalstack.api.v2.MachineServiceDeleteRequest\x1a/.metalstack.api.v2.MachineServiceDeleteResponse\"\x06\xca\xf3\x18\x02\x01\x02\x42\xc2\x01\n\x15\x63om.metalstack.api.v2B\x0cMachineProtoP\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')
37
37
 
38
38
  _globals = globals()
39
39
  _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
@@ -237,6 +237,8 @@ if not _descriptor._USE_C_DESCRIPTORS:
237
237
  _globals['_MACHINEBIOS'].fields_by_name['date']._serialized_options = b'\272H\005r\003\030\200\002'
238
238
  _globals['_MACHINERECENTPROVISIONINGEVENTS'].fields_by_name['state']._loaded_options = None
239
239
  _globals['_MACHINERECENTPROVISIONINGEVENTS'].fields_by_name['state']._serialized_options = b'\272H\005\202\001\002\020\001'
240
+ _globals['_MACHINEVPN'].fields_by_name['ips']._loaded_options = None
241
+ _globals['_MACHINEVPN'].fields_by_name['ips']._serialized_options = b'\272H\t\222\001\006\350\263\256\261\002\001'
240
242
  _globals['_MACHINEQUERY'].fields_by_name['uuid']._loaded_options = None
241
243
  _globals['_MACHINEQUERY'].fields_by_name['uuid']._serialized_options = b'\272H\005r\003\260\001\001'
242
244
  _globals['_MACHINEQUERY'].fields_by_name['name']._loaded_options = None
@@ -313,18 +315,18 @@ if not _descriptor._USE_C_DESCRIPTORS:
313
315
  _globals['_MACHINESERVICE'].methods_by_name['List']._serialized_options = b'\312\363\030\003\001\002\003\340\363\030\002'
314
316
  _globals['_MACHINESERVICE'].methods_by_name['Delete']._loaded_options = None
315
317
  _globals['_MACHINESERVICE'].methods_by_name['Delete']._serialized_options = b'\312\363\030\002\001\002'
316
- _globals['_IPPROTOCOL']._serialized_start=10368
317
- _globals['_IPPROTOCOL']._serialized_end=10469
318
- _globals['_MACHINESTATE']._serialized_start=10472
319
- _globals['_MACHINESTATE']._serialized_end=10647
320
- _globals['_MACHINEPROVISIONINGEVENTSTATE']._serialized_start=10650
321
- _globals['_MACHINEPROVISIONINGEVENTSTATE']._serialized_end=10873
322
- _globals['_MACHINEPROVISIONINGEVENTTYPE']._serialized_start=10876
323
- _globals['_MACHINEPROVISIONINGEVENTTYPE']._serialized_end=11675
324
- _globals['_MACHINELIVELINESS']._serialized_start=11678
325
- _globals['_MACHINELIVELINESS']._serialized_end=11864
326
- _globals['_MACHINEALLOCATIONTYPE']._serialized_start=11867
327
- _globals['_MACHINEALLOCATIONTYPE']._serialized_end=12039
318
+ _globals['_IPPROTOCOL']._serialized_start=10491
319
+ _globals['_IPPROTOCOL']._serialized_end=10592
320
+ _globals['_MACHINESTATE']._serialized_start=10595
321
+ _globals['_MACHINESTATE']._serialized_end=10770
322
+ _globals['_MACHINEPROVISIONINGEVENTSTATE']._serialized_start=10773
323
+ _globals['_MACHINEPROVISIONINGEVENTSTATE']._serialized_end=10996
324
+ _globals['_MACHINEPROVISIONINGEVENTTYPE']._serialized_start=10999
325
+ _globals['_MACHINEPROVISIONINGEVENTTYPE']._serialized_end=11798
326
+ _globals['_MACHINELIVELINESS']._serialized_start=11801
327
+ _globals['_MACHINELIVELINESS']._serialized_end=11987
328
+ _globals['_MACHINEALLOCATIONTYPE']._serialized_start=11990
329
+ _globals['_MACHINEALLOCATIONTYPE']._serialized_end=12162
328
330
  _globals['_MACHINESERVICEGETREQUEST']._serialized_start=355
329
331
  _globals['_MACHINESERVICEGETREQUEST']._serialized_end=447
330
332
  _globals['_MACHINESERVICEGETRESPONSE']._serialized_start=449
@@ -372,35 +374,35 @@ if not _descriptor._USE_C_DESCRIPTORS:
372
374
  _globals['_METALGPU']._serialized_start=6067
373
375
  _globals['_METALGPU']._serialized_end=6143
374
376
  _globals['_MACHINENIC']._serialized_start=6146
375
- _globals['_MACHINENIC']._serialized_end=6413
376
- _globals['_MACHINEBLOCKDEVICE']._serialized_start=6415
377
- _globals['_MACHINEBLOCKDEVICE']._serialized_end=6488
378
- _globals['_MACHINECHASSISIDENTIFYLEDSTATE']._serialized_start=6490
379
- _globals['_MACHINECHASSISIDENTIFYLEDSTATE']._serialized_end=6601
380
- _globals['_MACHINEBIOS']._serialized_start=6603
381
- _globals['_MACHINEBIOS']._serialized_end=6716
382
- _globals['_MACHINERECENTPROVISIONINGEVENTS']._serialized_start=6719
383
- _globals['_MACHINERECENTPROVISIONINGEVENTS']._serialized_end=7058
384
- _globals['_MACHINEPROVISIONINGEVENT']._serialized_start=7061
385
- _globals['_MACHINEPROVISIONINGEVENT']._serialized_end=7232
386
- _globals['_MACHINEVPN']._serialized_start=7234
387
- _globals['_MACHINEVPN']._serialized_end=7355
388
- _globals['_MACHINEQUERY']._serialized_start=7358
389
- _globals['_MACHINEQUERY']._serialized_end=8294
390
- _globals['_MACHINEALLOCATIONQUERY']._serialized_start=8297
391
- _globals['_MACHINEALLOCATIONQUERY']._serialized_end=8841
392
- _globals['_MACHINENETWORKQUERY']._serialized_start=8844
393
- _globals['_MACHINENETWORKQUERY']._serialized_end=9072
394
- _globals['_MACHINENICQUERY']._serialized_start=9075
395
- _globals['_MACHINENICQUERY']._serialized_end=9292
396
- _globals['_MACHINEDISKQUERY']._serialized_start=9294
397
- _globals['_MACHINEDISKQUERY']._serialized_end=9383
398
- _globals['_MACHINEIPMIQUERY']._serialized_start=9386
399
- _globals['_MACHINEIPMIQUERY']._serialized_end=9603
400
- _globals['_MACHINEFRUQUERY']._serialized_start=9606
401
- _globals['_MACHINEFRUQUERY']._serialized_end=10254
402
- _globals['_MACHINEHARDWAREQUERY']._serialized_start=10256
403
- _globals['_MACHINEHARDWAREQUERY']._serialized_end=10366
404
- _globals['_MACHINESERVICE']._serialized_start=12042
405
- _globals['_MACHINESERVICE']._serialized_end=12628
377
+ _globals['_MACHINENIC']._serialized_end=6441
378
+ _globals['_MACHINEBLOCKDEVICE']._serialized_start=6443
379
+ _globals['_MACHINEBLOCKDEVICE']._serialized_end=6516
380
+ _globals['_MACHINECHASSISIDENTIFYLEDSTATE']._serialized_start=6518
381
+ _globals['_MACHINECHASSISIDENTIFYLEDSTATE']._serialized_end=6629
382
+ _globals['_MACHINEBIOS']._serialized_start=6631
383
+ _globals['_MACHINEBIOS']._serialized_end=6744
384
+ _globals['_MACHINERECENTPROVISIONINGEVENTS']._serialized_start=6747
385
+ _globals['_MACHINERECENTPROVISIONINGEVENTS']._serialized_end=7086
386
+ _globals['_MACHINEPROVISIONINGEVENT']._serialized_start=7089
387
+ _globals['_MACHINEPROVISIONINGEVENT']._serialized_end=7260
388
+ _globals['_MACHINEVPN']._serialized_start=7263
389
+ _globals['_MACHINEVPN']._serialized_end=7416
390
+ _globals['_MACHINEQUERY']._serialized_start=7419
391
+ _globals['_MACHINEQUERY']._serialized_end=8355
392
+ _globals['_MACHINEALLOCATIONQUERY']._serialized_start=8358
393
+ _globals['_MACHINEALLOCATIONQUERY']._serialized_end=8964
394
+ _globals['_MACHINENETWORKQUERY']._serialized_start=8967
395
+ _globals['_MACHINENETWORKQUERY']._serialized_end=9195
396
+ _globals['_MACHINENICQUERY']._serialized_start=9198
397
+ _globals['_MACHINENICQUERY']._serialized_end=9415
398
+ _globals['_MACHINEDISKQUERY']._serialized_start=9417
399
+ _globals['_MACHINEDISKQUERY']._serialized_end=9506
400
+ _globals['_MACHINEIPMIQUERY']._serialized_start=9509
401
+ _globals['_MACHINEIPMIQUERY']._serialized_end=9726
402
+ _globals['_MACHINEFRUQUERY']._serialized_start=9729
403
+ _globals['_MACHINEFRUQUERY']._serialized_end=10377
404
+ _globals['_MACHINEHARDWAREQUERY']._serialized_start=10379
405
+ _globals['_MACHINEHARDWAREQUERY']._serialized_end=10489
406
+ _globals['_MACHINESERVICE']._serialized_start=12165
407
+ _globals['_MACHINESERVICE']._serialized_end=12751
406
408
  # @@protoc_insertion_point(module_scope)
@@ -392,7 +392,7 @@ class MetalGPU(_message.Message):
392
392
  def __init__(self, vendor: _Optional[str] = ..., model: _Optional[str] = ...) -> None: ...
393
393
 
394
394
  class MachineNic(_message.Message):
395
- __slots__ = ("mac", "name", "identifier", "vendor", "model", "speed", "neighbors")
395
+ __slots__ = ("mac", "name", "identifier", "vendor", "model", "speed", "neighbors", "hostname")
396
396
  MAC_FIELD_NUMBER: _ClassVar[int]
397
397
  NAME_FIELD_NUMBER: _ClassVar[int]
398
398
  IDENTIFIER_FIELD_NUMBER: _ClassVar[int]
@@ -400,6 +400,7 @@ class MachineNic(_message.Message):
400
400
  MODEL_FIELD_NUMBER: _ClassVar[int]
401
401
  SPEED_FIELD_NUMBER: _ClassVar[int]
402
402
  NEIGHBORS_FIELD_NUMBER: _ClassVar[int]
403
+ HOSTNAME_FIELD_NUMBER: _ClassVar[int]
403
404
  mac: str
404
405
  name: str
405
406
  identifier: str
@@ -407,7 +408,8 @@ class MachineNic(_message.Message):
407
408
  model: str
408
409
  speed: int
409
410
  neighbors: _containers.RepeatedCompositeFieldContainer[MachineNic]
410
- def __init__(self, mac: _Optional[str] = ..., name: _Optional[str] = ..., identifier: _Optional[str] = ..., vendor: _Optional[str] = ..., model: _Optional[str] = ..., speed: _Optional[int] = ..., neighbors: _Optional[_Iterable[_Union[MachineNic, _Mapping]]] = ...) -> None: ...
411
+ hostname: str
412
+ def __init__(self, mac: _Optional[str] = ..., name: _Optional[str] = ..., identifier: _Optional[str] = ..., vendor: _Optional[str] = ..., model: _Optional[str] = ..., speed: _Optional[int] = ..., neighbors: _Optional[_Iterable[_Union[MachineNic, _Mapping]]] = ..., hostname: _Optional[str] = ...) -> None: ...
411
413
 
412
414
  class MachineBlockDevice(_message.Message):
413
415
  __slots__ = ("name", "size")
@@ -458,14 +460,16 @@ class MachineProvisioningEvent(_message.Message):
458
460
  def __init__(self, time: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., event: _Optional[_Union[MachineProvisioningEventType, str]] = ..., message: _Optional[str] = ...) -> None: ...
459
461
 
460
462
  class MachineVPN(_message.Message):
461
- __slots__ = ("control_plane_address", "auth_key", "connected")
463
+ __slots__ = ("control_plane_address", "auth_key", "connected", "ips")
462
464
  CONTROL_PLANE_ADDRESS_FIELD_NUMBER: _ClassVar[int]
463
465
  AUTH_KEY_FIELD_NUMBER: _ClassVar[int]
464
466
  CONNECTED_FIELD_NUMBER: _ClassVar[int]
467
+ IPS_FIELD_NUMBER: _ClassVar[int]
465
468
  control_plane_address: str
466
469
  auth_key: str
467
470
  connected: bool
468
- def __init__(self, control_plane_address: _Optional[str] = ..., auth_key: _Optional[str] = ..., connected: _Optional[bool] = ...) -> None: ...
471
+ ips: _containers.RepeatedScalarFieldContainer[str]
472
+ def __init__(self, control_plane_address: _Optional[str] = ..., auth_key: _Optional[str] = ..., connected: _Optional[bool] = ..., ips: _Optional[_Iterable[str]] = ...) -> None: ...
469
473
 
470
474
  class MachineQuery(_message.Message):
471
475
  __slots__ = ("uuid", "name", "partition", "size", "rack", "labels", "allocation", "network", "nic", "disk", "ipmi", "fru", "hardware", "state")
@@ -500,7 +504,7 @@ class MachineQuery(_message.Message):
500
504
  def __init__(self, uuid: _Optional[str] = ..., name: _Optional[str] = ..., partition: _Optional[str] = ..., size: _Optional[str] = ..., rack: _Optional[str] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., allocation: _Optional[_Union[MachineAllocationQuery, _Mapping]] = ..., network: _Optional[_Union[MachineNetworkQuery, _Mapping]] = ..., nic: _Optional[_Union[MachineNicQuery, _Mapping]] = ..., disk: _Optional[_Union[MachineDiskQuery, _Mapping]] = ..., ipmi: _Optional[_Union[MachineIPMIQuery, _Mapping]] = ..., fru: _Optional[_Union[MachineFRUQuery, _Mapping]] = ..., hardware: _Optional[_Union[MachineHardwareQuery, _Mapping]] = ..., state: _Optional[_Union[MachineState, str]] = ...) -> None: ...
501
505
 
502
506
  class MachineAllocationQuery(_message.Message):
503
- __slots__ = ("uuid", "name", "project", "image", "filesystem_layout", "hostname", "allocation_type", "labels")
507
+ __slots__ = ("uuid", "name", "project", "image", "filesystem_layout", "hostname", "allocation_type", "labels", "vpn")
504
508
  UUID_FIELD_NUMBER: _ClassVar[int]
505
509
  NAME_FIELD_NUMBER: _ClassVar[int]
506
510
  PROJECT_FIELD_NUMBER: _ClassVar[int]
@@ -509,6 +513,7 @@ class MachineAllocationQuery(_message.Message):
509
513
  HOSTNAME_FIELD_NUMBER: _ClassVar[int]
510
514
  ALLOCATION_TYPE_FIELD_NUMBER: _ClassVar[int]
511
515
  LABELS_FIELD_NUMBER: _ClassVar[int]
516
+ VPN_FIELD_NUMBER: _ClassVar[int]
512
517
  uuid: str
513
518
  name: str
514
519
  project: str
@@ -517,7 +522,8 @@ class MachineAllocationQuery(_message.Message):
517
522
  hostname: str
518
523
  allocation_type: MachineAllocationType
519
524
  labels: _common_pb2.Labels
520
- def __init__(self, uuid: _Optional[str] = ..., name: _Optional[str] = ..., project: _Optional[str] = ..., image: _Optional[str] = ..., filesystem_layout: _Optional[str] = ..., hostname: _Optional[str] = ..., allocation_type: _Optional[_Union[MachineAllocationType, str]] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ...) -> None: ...
525
+ vpn: MachineVPN
526
+ def __init__(self, uuid: _Optional[str] = ..., name: _Optional[str] = ..., project: _Optional[str] = ..., image: _Optional[str] = ..., filesystem_layout: _Optional[str] = ..., hostname: _Optional[str] = ..., allocation_type: _Optional[_Union[MachineAllocationType, str]] = ..., labels: _Optional[_Union[_common_pb2.Labels, _Mapping]] = ..., vpn: _Optional[_Union[MachineVPN, _Mapping]] = ...) -> None: ...
521
527
 
522
528
  class MachineNetworkQuery(_message.Message):
523
529
  __slots__ = ("networks", "prefixes", "destination_prefixes", "ips", "vrfs", "asns")
@@ -0,0 +1,38 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: metalstack/api/v2/vpn.proto
5
+ # Protobuf Python Version: 6.32.1
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
+ 32,
16
+ 1,
17
+ '',
18
+ 'metalstack/api/v2/vpn.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
26
+
27
+
28
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1bmetalstack/api/v2/vpn.proto\x12\x11metalstack.api.v2\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbb\x01\n\x07VPNNode\x12\x0e\n\x02id\x18\x01 \x01(\x04R\x02id\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x18\n\x07project\x18\x03 \x01(\tR\x07project\x12!\n\x0cip_addresses\x18\x04 \x03(\tR\x0bipAddresses\x12\x37\n\tlast_seen\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x08lastSeen\x12\x16\n\x06online\x18\x06 \x01(\x08R\x06onlineB\xbe\x01\n\x15\x63om.metalstack.api.v2B\x08VpnProtoP\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')
29
+
30
+ _globals = globals()
31
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
32
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'metalstack.api.v2.vpn_pb2', _globals)
33
+ if not _descriptor._USE_C_DESCRIPTORS:
34
+ _globals['DESCRIPTOR']._loaded_options = None
35
+ _globals['DESCRIPTOR']._serialized_options = b'\n\025com.metalstack.api.v2B\010VpnProtoP\001Z5github.com/metal-stack/api/go/metalstack/api/v2;apiv2\242\002\003MAX\252\002\021Metalstack.Api.V2\312\002\021Metalstack\\Api\\V2\342\002\035Metalstack\\Api\\V2\\GPBMetadata\352\002\023Metalstack::Api::V2'
36
+ _globals['_VPNNODE']._serialized_start=84
37
+ _globals['_VPNNODE']._serialized_end=271
38
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,26 @@
1
+ import datetime
2
+
3
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
4
+ from google.protobuf.internal import containers as _containers
5
+ from google.protobuf import descriptor as _descriptor
6
+ from google.protobuf import message as _message
7
+ from collections.abc import Iterable as _Iterable, Mapping as _Mapping
8
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
9
+
10
+ DESCRIPTOR: _descriptor.FileDescriptor
11
+
12
+ class VPNNode(_message.Message):
13
+ __slots__ = ("id", "name", "project", "ip_addresses", "last_seen", "online")
14
+ ID_FIELD_NUMBER: _ClassVar[int]
15
+ NAME_FIELD_NUMBER: _ClassVar[int]
16
+ PROJECT_FIELD_NUMBER: _ClassVar[int]
17
+ IP_ADDRESSES_FIELD_NUMBER: _ClassVar[int]
18
+ LAST_SEEN_FIELD_NUMBER: _ClassVar[int]
19
+ ONLINE_FIELD_NUMBER: _ClassVar[int]
20
+ id: int
21
+ name: str
22
+ project: str
23
+ ip_addresses: _containers.RepeatedScalarFieldContainer[str]
24
+ last_seen: _timestamp_pb2.Timestamp
25
+ online: bool
26
+ def __init__(self, id: _Optional[int] = ..., name: _Optional[str] = ..., project: _Optional[str] = ..., ip_addresses: _Optional[_Iterable[str]] = ..., last_seen: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., online: _Optional[bool] = ...) -> None: ...
@@ -13,6 +13,7 @@ import metalstack.admin.v2.size_connect as admin_size_connect
13
13
  import metalstack.admin.v2.switch_connect as admin_switch_connect
14
14
  import metalstack.admin.v2.tenant_connect as admin_tenant_connect
15
15
  import metalstack.admin.v2.token_connect as admin_token_connect
16
+ import metalstack.admin.v2.vpn_connect as admin_vpn_connect
16
17
 
17
18
  import metalstack.api.v2.filesystem_connect as api_filesystem_connect
18
19
  import metalstack.api.v2.health_connect as api_health_connect
@@ -30,6 +31,7 @@ import metalstack.api.v2.user_connect as api_user_connect
30
31
  import metalstack.api.v2.version_connect as api_version_connect
31
32
 
32
33
  import metalstack.infra.v2.bmc_connect as infra_bmc_connect
34
+ import metalstack.infra.v2.event_connect as infra_event_connect
33
35
  import metalstack.infra.v2.switch_connect as infra_switch_connect
34
36
 
35
37
 
@@ -95,6 +97,9 @@ class Client:
95
97
  def token(self):
96
98
  return admin_token_connect.TokenServiceClientSync(address=self._baseurl, session=self._session)
97
99
 
100
+ def vpn(self):
101
+ return admin_vpn_connect.VPNServiceClientSync(address=self._baseurl, session=self._session)
102
+
98
103
 
99
104
  class _Apiv2:
100
105
  def __init__(self, baseurl: str, session=None):
@@ -154,6 +159,9 @@ class Client:
154
159
  def bmc(self):
155
160
  return infra_bmc_connect.BMCServiceClientSync(address=self._baseurl, session=self._session)
156
161
 
162
+ def event(self):
163
+ return infra_event_connect.EventServiceClientSync(address=self._baseurl, session=self._session)
164
+
157
165
  def switch(self):
158
166
  return infra_switch_connect.SwitchServiceClientSync(address=self._baseurl, session=self._session)
159
167
 
@@ -0,0 +1,119 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by https://github.com/connectrpc/connect-python. DO NOT EDIT!
3
+ # source: metalstack/infra/v2/event.proto
4
+
5
+ from collections.abc import AsyncIterator, Iterable, Iterator, Mapping
6
+ from typing import Protocol
7
+
8
+ from connectrpc.client import ConnectClient, ConnectClientSync
9
+ from connectrpc.code import Code
10
+ from connectrpc.errors import ConnectError
11
+ from connectrpc.interceptor import Interceptor, InterceptorSync
12
+ from connectrpc.method import IdempotencyLevel, MethodInfo
13
+ from connectrpc.request import Headers, RequestContext
14
+ from connectrpc.server import ConnectASGIApplication, ConnectWSGIApplication, Endpoint, EndpointSync
15
+ import metalstack.infra.v2.event_pb2 as metalstack_dot_infra_dot_v2_dot_event__pb2
16
+
17
+
18
+ class EventService(Protocol):
19
+ async def send(self, request: metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendRequest, ctx: RequestContext) -> metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendResponse:
20
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
21
+
22
+
23
+ class EventServiceASGIApplication(ConnectASGIApplication):
24
+ def __init__(self, service: EventService, *, interceptors: Iterable[Interceptor]=(), read_max_bytes: int | None = None) -> None:
25
+ super().__init__(
26
+ endpoints={
27
+ "/metalstack.infra.v2.EventService/Send": Endpoint.unary(
28
+ method=MethodInfo(
29
+ name="Send",
30
+ service_name="metalstack.infra.v2.EventService",
31
+ input=metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendRequest,
32
+ output=metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendResponse,
33
+ idempotency_level=IdempotencyLevel.UNKNOWN,
34
+ ),
35
+ function=service.send,
36
+ ),
37
+ },
38
+ interceptors=interceptors,
39
+ read_max_bytes=read_max_bytes,
40
+ )
41
+
42
+ @property
43
+ def path(self) -> str:
44
+ """Returns the URL path to mount the application to when serving multiple applications."""
45
+ return "/metalstack.infra.v2.EventService"
46
+
47
+
48
+ class EventServiceClient(ConnectClient):
49
+ async def send(
50
+ self,
51
+ request: metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendRequest,
52
+ *,
53
+ headers: Headers | Mapping[str, str] | None = None,
54
+ timeout_ms: int | None = None,
55
+ ) -> metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendResponse:
56
+ return await self.execute_unary(
57
+ request=request,
58
+ method=MethodInfo(
59
+ name="Send",
60
+ service_name="metalstack.infra.v2.EventService",
61
+ input=metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendRequest,
62
+ output=metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendResponse,
63
+ idempotency_level=IdempotencyLevel.UNKNOWN,
64
+ ),
65
+ headers=headers,
66
+ timeout_ms=timeout_ms,
67
+ )
68
+
69
+
70
+ class EventServiceSync(Protocol):
71
+ def send(self, request: metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendRequest, ctx: RequestContext) -> metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendResponse:
72
+ raise ConnectError(Code.UNIMPLEMENTED, "Not implemented")
73
+
74
+
75
+ class EventServiceWSGIApplication(ConnectWSGIApplication):
76
+ def __init__(self, service: EventServiceSync, interceptors: Iterable[InterceptorSync]=(), read_max_bytes: int | None = None) -> None:
77
+ super().__init__(
78
+ endpoints={
79
+ "/metalstack.infra.v2.EventService/Send": EndpointSync.unary(
80
+ method=MethodInfo(
81
+ name="Send",
82
+ service_name="metalstack.infra.v2.EventService",
83
+ input=metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendRequest,
84
+ output=metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendResponse,
85
+ idempotency_level=IdempotencyLevel.UNKNOWN,
86
+ ),
87
+ function=service.send,
88
+ ),
89
+ },
90
+ interceptors=interceptors,
91
+ read_max_bytes=read_max_bytes,
92
+ )
93
+
94
+ @property
95
+ def path(self) -> str:
96
+ """Returns the URL path to mount the application to when serving multiple applications."""
97
+ return "/metalstack.infra.v2.EventService"
98
+
99
+
100
+ class EventServiceClientSync(ConnectClientSync):
101
+ def send(
102
+ self,
103
+ request: metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendRequest,
104
+ *,
105
+ headers: Headers | Mapping[str, str] | None = None,
106
+ timeout_ms: int | None = None,
107
+ ) -> metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendResponse:
108
+ return self.execute_unary(
109
+ request=request,
110
+ method=MethodInfo(
111
+ name="Send",
112
+ service_name="metalstack.infra.v2.EventService",
113
+ input=metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendRequest,
114
+ output=metalstack_dot_infra_dot_v2_dot_event__pb2.EventServiceSendResponse,
115
+ idempotency_level=IdempotencyLevel.UNKNOWN,
116
+ ),
117
+ headers=headers,
118
+ timeout_ms=timeout_ms,
119
+ )
@@ -0,0 +1,78 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: metalstack/infra/v2/event.proto
5
+ # Protobuf Python Version: 6.32.1
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
+ 32,
16
+ 1,
17
+ '',
18
+ 'metalstack/infra/v2/event.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
+
29
+
30
+ 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\"\xd5\x01\n\x17\x45ventServiceSendRequest\x12P\n\x06\x65vents\x18\x01 \x03(\x0b\x32\x38.metalstack.infra.v2.EventServiceSendRequest.EventsEntryR\x06\x65vents\x1ah\n\x0b\x45ventsEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x43\n\x05value\x18\x02 \x01(\x0b\x32-.metalstack.infra.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\x61iled\"\xb0\x01\n\x18MachineProvisioningEvent\x12.\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x04time\x12J\n\x05\x65vent\x18\x02 \x01(\x0e\x32*.metalstack.infra.v2.ProvisioningEventTypeB\x08\xbaH\x05\x82\x01\x02\x10\x01R\x05\x65vent\x12\x18\n\x07message\x18\x03 \x01(\tR\x07message*\xb8\x05\n\x15ProvisioningEventType\x12\'\n#PROVISIONING_EVENT_TYPE_UNSPECIFIED\x10\x00\x12,\n\x1dPROVISIONING_EVENT_TYPE_ALIVE\x10\x01\x1a\t\x82\xb2\x19\x05\x41live\x12\x30\n\x1fPROVISIONING_EVENT_TYPE_CRASHED\x10\x02\x1a\x0b\x82\xb2\x19\x07\x43rashed\x12\x38\n#PROVISIONING_EVENT_TYPE_PXE_BOOTING\x10\x03\x1a\x0f\x82\xb2\x19\x0bPXE Booting\x12>\n&PROVISIONING_EVENT_TYPE_PLANNED_REBOOT\x10\x04\x1a\x12\x82\xb2\x19\x0ePlanned Reboot\x12\x34\n!PROVISIONING_EVENT_TYPE_PREPARING\x10\x05\x1a\r\x82\xb2\x19\tPreparing\x12\x38\n#PROVISIONING_EVENT_TYPE_REGISTERING\x10\x06\x1a\x0f\x82\xb2\x19\x0bRegistering\x12\x30\n\x1fPROVISIONING_EVENT_TYPE_WAITING\x10\x07\x1a\x0b\x82\xb2\x19\x07Waiting\x12\x36\n\"PROVISIONING_EVENT_TYPE_INSTALLING\x10\x08\x1a\x0e\x82\xb2\x19\nInstalling\x12\x46\n*PROVISIONING_EVENT_TYPE_BOOTING_NEW_KERNEL\x10\t\x1a\x16\x82\xb2\x19\x12\x42ooting New Kernel\x12\x38\n#PROVISIONING_EVENT_TYPE_PHONED_HOME\x10\n\x1a\x0f\x82\xb2\x19\x0bPhoned Home\x12@\n\'PROVISIONING_EVENT_TYPE_MACHINE_RECLAIM\x10\x0b\x1a\x13\x82\xb2\x19\x0fMachine Reclaim2~\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')
31
+
32
+ _globals = globals()
33
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
34
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'metalstack.infra.v2.event_pb2', _globals)
35
+ if not _descriptor._USE_C_DESCRIPTORS:
36
+ _globals['DESCRIPTOR']._loaded_options = None
37
+ _globals['DESCRIPTOR']._serialized_options = b'\n\027com.metalstack.infra.v2B\nEventProtoP\001Z9github.com/metal-stack/api/go/metalstack/infra/v2;infrav2\242\002\003MIX\252\002\023Metalstack.Infra.V2\312\002\023Metalstack\\Infra\\V2\342\002\037Metalstack\\Infra\\V2\\GPBMetadata\352\002\025Metalstack::Infra::V2'
38
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_ALIVE"]._loaded_options = None
39
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_ALIVE"]._serialized_options = b'\202\262\031\005Alive'
40
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_CRASHED"]._loaded_options = None
41
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_CRASHED"]._serialized_options = b'\202\262\031\007Crashed'
42
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_PXE_BOOTING"]._loaded_options = None
43
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_PXE_BOOTING"]._serialized_options = b'\202\262\031\013PXE Booting'
44
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_PLANNED_REBOOT"]._loaded_options = None
45
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_PLANNED_REBOOT"]._serialized_options = b'\202\262\031\016Planned Reboot'
46
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_PREPARING"]._loaded_options = None
47
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_PREPARING"]._serialized_options = b'\202\262\031\tPreparing'
48
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_REGISTERING"]._loaded_options = None
49
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_REGISTERING"]._serialized_options = b'\202\262\031\013Registering'
50
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_WAITING"]._loaded_options = None
51
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_WAITING"]._serialized_options = b'\202\262\031\007Waiting'
52
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_INSTALLING"]._loaded_options = None
53
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_INSTALLING"]._serialized_options = b'\202\262\031\nInstalling'
54
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_BOOTING_NEW_KERNEL"]._loaded_options = None
55
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_BOOTING_NEW_KERNEL"]._serialized_options = b'\202\262\031\022Booting New Kernel'
56
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_PHONED_HOME"]._loaded_options = None
57
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_PHONED_HOME"]._serialized_options = b'\202\262\031\013Phoned Home'
58
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_MACHINE_RECLAIM"]._loaded_options = None
59
+ _globals['_PROVISIONINGEVENTTYPE'].values_by_name["PROVISIONING_EVENT_TYPE_MACHINE_RECLAIM"]._serialized_options = b'\202\262\031\017Machine Reclaim'
60
+ _globals['_EVENTSERVICESENDREQUEST_EVENTSENTRY']._loaded_options = None
61
+ _globals['_EVENTSERVICESENDREQUEST_EVENTSENTRY']._serialized_options = b'8\001'
62
+ _globals['_MACHINEPROVISIONINGEVENT'].fields_by_name['event']._loaded_options = None
63
+ _globals['_MACHINEPROVISIONINGEVENT'].fields_by_name['event']._serialized_options = b'\272H\005\202\001\002\020\001'
64
+ _globals['_EVENTSERVICE'].methods_by_name['Send']._loaded_options = None
65
+ _globals['_EVENTSERVICE'].methods_by_name['Send']._serialized_options = b'\340\363\030\002\352\363\030\001\001'
66
+ _globals['_PROVISIONINGEVENTTYPE']._serialized_start=622
67
+ _globals['_PROVISIONINGEVENTTYPE']._serialized_end=1318
68
+ _globals['_EVENTSERVICESENDREQUEST']._serialized_start=151
69
+ _globals['_EVENTSERVICESENDREQUEST']._serialized_end=364
70
+ _globals['_EVENTSERVICESENDREQUEST_EVENTSENTRY']._serialized_start=260
71
+ _globals['_EVENTSERVICESENDREQUEST_EVENTSENTRY']._serialized_end=364
72
+ _globals['_EVENTSERVICESENDRESPONSE']._serialized_start=366
73
+ _globals['_EVENTSERVICESENDRESPONSE']._serialized_end=440
74
+ _globals['_MACHINEPROVISIONINGEVENT']._serialized_start=443
75
+ _globals['_MACHINEPROVISIONINGEVENT']._serialized_end=619
76
+ _globals['_EVENTSERVICE']._serialized_start=1320
77
+ _globals['_EVENTSERVICE']._serialized_end=1446
78
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,71 @@
1
+ import datetime
2
+
3
+ from buf.validate import validate_pb2 as _validate_pb2
4
+ from google.protobuf import timestamp_pb2 as _timestamp_pb2
5
+ from metalstack.api.v2 import common_pb2 as _common_pb2
6
+ from google.protobuf.internal import containers as _containers
7
+ from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper
8
+ from google.protobuf import descriptor as _descriptor
9
+ from google.protobuf import message as _message
10
+ from collections.abc import Iterable as _Iterable, Mapping as _Mapping
11
+ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union
12
+
13
+ DESCRIPTOR: _descriptor.FileDescriptor
14
+
15
+ class ProvisioningEventType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
16
+ __slots__ = ()
17
+ PROVISIONING_EVENT_TYPE_UNSPECIFIED: _ClassVar[ProvisioningEventType]
18
+ PROVISIONING_EVENT_TYPE_ALIVE: _ClassVar[ProvisioningEventType]
19
+ PROVISIONING_EVENT_TYPE_CRASHED: _ClassVar[ProvisioningEventType]
20
+ PROVISIONING_EVENT_TYPE_PXE_BOOTING: _ClassVar[ProvisioningEventType]
21
+ PROVISIONING_EVENT_TYPE_PLANNED_REBOOT: _ClassVar[ProvisioningEventType]
22
+ PROVISIONING_EVENT_TYPE_PREPARING: _ClassVar[ProvisioningEventType]
23
+ PROVISIONING_EVENT_TYPE_REGISTERING: _ClassVar[ProvisioningEventType]
24
+ PROVISIONING_EVENT_TYPE_WAITING: _ClassVar[ProvisioningEventType]
25
+ PROVISIONING_EVENT_TYPE_INSTALLING: _ClassVar[ProvisioningEventType]
26
+ PROVISIONING_EVENT_TYPE_BOOTING_NEW_KERNEL: _ClassVar[ProvisioningEventType]
27
+ PROVISIONING_EVENT_TYPE_PHONED_HOME: _ClassVar[ProvisioningEventType]
28
+ PROVISIONING_EVENT_TYPE_MACHINE_RECLAIM: _ClassVar[ProvisioningEventType]
29
+ PROVISIONING_EVENT_TYPE_UNSPECIFIED: ProvisioningEventType
30
+ PROVISIONING_EVENT_TYPE_ALIVE: ProvisioningEventType
31
+ PROVISIONING_EVENT_TYPE_CRASHED: ProvisioningEventType
32
+ PROVISIONING_EVENT_TYPE_PXE_BOOTING: ProvisioningEventType
33
+ PROVISIONING_EVENT_TYPE_PLANNED_REBOOT: ProvisioningEventType
34
+ PROVISIONING_EVENT_TYPE_PREPARING: ProvisioningEventType
35
+ PROVISIONING_EVENT_TYPE_REGISTERING: ProvisioningEventType
36
+ PROVISIONING_EVENT_TYPE_WAITING: ProvisioningEventType
37
+ PROVISIONING_EVENT_TYPE_INSTALLING: ProvisioningEventType
38
+ PROVISIONING_EVENT_TYPE_BOOTING_NEW_KERNEL: ProvisioningEventType
39
+ PROVISIONING_EVENT_TYPE_PHONED_HOME: ProvisioningEventType
40
+ PROVISIONING_EVENT_TYPE_MACHINE_RECLAIM: ProvisioningEventType
41
+
42
+ class EventServiceSendRequest(_message.Message):
43
+ __slots__ = ("events",)
44
+ class EventsEntry(_message.Message):
45
+ __slots__ = ("key", "value")
46
+ KEY_FIELD_NUMBER: _ClassVar[int]
47
+ VALUE_FIELD_NUMBER: _ClassVar[int]
48
+ key: str
49
+ value: MachineProvisioningEvent
50
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[MachineProvisioningEvent, _Mapping]] = ...) -> None: ...
51
+ EVENTS_FIELD_NUMBER: _ClassVar[int]
52
+ events: _containers.MessageMap[str, MachineProvisioningEvent]
53
+ def __init__(self, events: _Optional[_Mapping[str, MachineProvisioningEvent]] = ...) -> None: ...
54
+
55
+ class EventServiceSendResponse(_message.Message):
56
+ __slots__ = ("events", "failed")
57
+ EVENTS_FIELD_NUMBER: _ClassVar[int]
58
+ FAILED_FIELD_NUMBER: _ClassVar[int]
59
+ events: int
60
+ failed: _containers.RepeatedScalarFieldContainer[str]
61
+ def __init__(self, events: _Optional[int] = ..., failed: _Optional[_Iterable[str]] = ...) -> None: ...
62
+
63
+ class MachineProvisioningEvent(_message.Message):
64
+ __slots__ = ("time", "event", "message")
65
+ TIME_FIELD_NUMBER: _ClassVar[int]
66
+ EVENT_FIELD_NUMBER: _ClassVar[int]
67
+ MESSAGE_FIELD_NUMBER: _ClassVar[int]
68
+ time: _timestamp_pb2.Timestamp
69
+ event: ProvisioningEventType
70
+ message: str
71
+ def __init__(self, time: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., event: _Optional[_Union[ProvisioningEventType, str]] = ..., message: _Optional[str] = ...) -> None: ...