metalstack.cloud 0.15.2__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.
Files changed (111) hide show
  1. buf/__init__.py +0 -0
  2. buf/validate/__init__.py +0 -0
  3. buf/validate/validate_pb2.py +450 -0
  4. buf/validate/validate_pb2.pyi +631 -0
  5. buf/validate/validate_pb2_grpc.py +4 -0
  6. metalstack_cloud-0.15.2.dist-info/METADATA +26 -0
  7. metalstack_cloud-0.15.2.dist-info/RECORD +111 -0
  8. metalstack_cloud-0.15.2.dist-info/WHEEL +5 -0
  9. metalstack_cloud-0.15.2.dist-info/top_level.txt +2 -0
  10. metalstackcloud/__init__.py +0 -0
  11. metalstackcloud/admin/__init__.py +0 -0
  12. metalstackcloud/admin/v1/__init__.py +0 -0
  13. metalstackcloud/admin/v1/cluster_connecpy.py +214 -0
  14. metalstackcloud/admin/v1/cluster_pb2.py +70 -0
  15. metalstackcloud/admin/v1/cluster_pb2.pyi +93 -0
  16. metalstackcloud/admin/v1/cluster_pb2_grpc.py +169 -0
  17. metalstackcloud/admin/v1/machine_pb2.py +42 -0
  18. metalstackcloud/admin/v1/machine_pb2.pyi +76 -0
  19. metalstackcloud/admin/v1/machine_pb2_grpc.py +4 -0
  20. metalstackcloud/admin/v1/payment_connecpy.py +158 -0
  21. metalstackcloud/admin/v1/payment_pb2.py +51 -0
  22. metalstackcloud/admin/v1/payment_pb2.pyi +33 -0
  23. metalstackcloud/admin/v1/payment_pb2_grpc.py +125 -0
  24. metalstackcloud/admin/v1/project_connecpy.py +102 -0
  25. metalstackcloud/admin/v1/project_pb2.py +49 -0
  26. metalstackcloud/admin/v1/project_pb2.pyi +34 -0
  27. metalstackcloud/admin/v1/project_pb2_grpc.py +81 -0
  28. metalstackcloud/admin/v1/storage_connecpy.py +214 -0
  29. metalstackcloud/admin/v1/storage_pb2.py +75 -0
  30. metalstackcloud/admin/v1/storage_pb2.pyi +149 -0
  31. metalstackcloud/admin/v1/storage_pb2_grpc.py +169 -0
  32. metalstackcloud/admin/v1/tenant_connecpy.py +270 -0
  33. metalstackcloud/admin/v1/tenant_pb2.py +66 -0
  34. metalstackcloud/admin/v1/tenant_pb2.pyi +72 -0
  35. metalstackcloud/admin/v1/tenant_pb2_grpc.py +213 -0
  36. metalstackcloud/admin/v1/token_connecpy.py +158 -0
  37. metalstackcloud/admin/v1/token_pb2.py +56 -0
  38. metalstackcloud/admin/v1/token_pb2.pyi +34 -0
  39. metalstackcloud/admin/v1/token_pb2_grpc.py +125 -0
  40. metalstackcloud/api/__init__.py +0 -0
  41. metalstackcloud/api/v1/__init__.py +0 -0
  42. metalstackcloud/api/v1/asset_connecpy.py +102 -0
  43. metalstackcloud/api/v1/asset_pb2.py +76 -0
  44. metalstackcloud/api/v1/asset_pb2.pyi +132 -0
  45. metalstackcloud/api/v1/asset_pb2_grpc.py +81 -0
  46. metalstackcloud/api/v1/audit_connecpy.py +158 -0
  47. metalstackcloud/api/v1/audit_pb2.py +84 -0
  48. metalstackcloud/api/v1/audit_pb2.pyi +95 -0
  49. metalstackcloud/api/v1/audit_pb2_grpc.py +125 -0
  50. metalstackcloud/api/v1/cluster_connecpy.py +494 -0
  51. metalstackcloud/api/v1/cluster_pb2.py +183 -0
  52. metalstackcloud/api/v1/cluster_pb2.pyi +311 -0
  53. metalstackcloud/api/v1/cluster_pb2_grpc.py +389 -0
  54. metalstackcloud/api/v1/common_pb2.py +52 -0
  55. metalstackcloud/api/v1/common_pb2.pyi +98 -0
  56. metalstackcloud/api/v1/common_pb2_grpc.py +4 -0
  57. metalstackcloud/api/v1/health_connecpy.py +102 -0
  58. metalstackcloud/api/v1/health_pb2.py +58 -0
  59. metalstackcloud/api/v1/health_pb2.pyi +74 -0
  60. metalstackcloud/api/v1/health_pb2_grpc.py +81 -0
  61. metalstackcloud/api/v1/ip_connecpy.py +326 -0
  62. metalstackcloud/api/v1/ip_pb2.py +110 -0
  63. metalstackcloud/api/v1/ip_pb2.pyi +122 -0
  64. metalstackcloud/api/v1/ip_pb2_grpc.py +257 -0
  65. metalstackcloud/api/v1/method_connecpy.py +158 -0
  66. metalstackcloud/api/v1/method_pb2.py +62 -0
  67. metalstackcloud/api/v1/method_pb2.pyi +50 -0
  68. metalstackcloud/api/v1/method_pb2_grpc.py +128 -0
  69. metalstackcloud/api/v1/payment_connecpy.py +550 -0
  70. metalstackcloud/api/v1/payment_pb2.py +134 -0
  71. metalstackcloud/api/v1/payment_pb2.pyi +291 -0
  72. metalstackcloud/api/v1/payment_pb2_grpc.py +433 -0
  73. metalstackcloud/api/v1/project_connecpy.py +718 -0
  74. metalstackcloud/api/v1/project_pb2.py +156 -0
  75. metalstackcloud/api/v1/project_pb2.pyi +234 -0
  76. metalstackcloud/api/v1/project_pb2_grpc.py +565 -0
  77. metalstackcloud/api/v1/snapshot_connecpy.py +214 -0
  78. metalstackcloud/api/v1/snapshot_pb2.py +75 -0
  79. metalstackcloud/api/v1/snapshot_pb2.pyi +109 -0
  80. metalstackcloud/api/v1/snapshot_pb2_grpc.py +169 -0
  81. metalstackcloud/api/v1/tenant_connecpy.py +774 -0
  82. metalstackcloud/api/v1/tenant_pb2.py +159 -0
  83. metalstackcloud/api/v1/tenant_pb2.pyi +305 -0
  84. metalstackcloud/api/v1/tenant_pb2_grpc.py +609 -0
  85. metalstackcloud/api/v1/token_connecpy.py +326 -0
  86. metalstackcloud/api/v1/token_pb2.py +131 -0
  87. metalstackcloud/api/v1/token_pb2.pyi +175 -0
  88. metalstackcloud/api/v1/token_pb2_grpc.py +257 -0
  89. metalstackcloud/api/v1/user_connecpy.py +102 -0
  90. metalstackcloud/api/v1/user_pb2.py +48 -0
  91. metalstackcloud/api/v1/user_pb2.pyi +42 -0
  92. metalstackcloud/api/v1/user_pb2_grpc.py +81 -0
  93. metalstackcloud/api/v1/version_connecpy.py +102 -0
  94. metalstackcloud/api/v1/version_pb2.py +46 -0
  95. metalstackcloud/api/v1/version_pb2.pyi +29 -0
  96. metalstackcloud/api/v1/version_pb2_grpc.py +81 -0
  97. metalstackcloud/api/v1/volume_connecpy.py +270 -0
  98. metalstackcloud/api/v1/volume_pb2.py +91 -0
  99. metalstackcloud/api/v1/volume_pb2.pyi +165 -0
  100. metalstackcloud/api/v1/volume_pb2_grpc.py +213 -0
  101. metalstackcloud/client.py +139 -0
  102. metalstackcloud/status/__init__.py +0 -0
  103. metalstackcloud/status/v1/__init__.py +0 -0
  104. metalstackcloud/status/v1/message_connecpy.py +102 -0
  105. metalstackcloud/status/v1/message_pb2.py +51 -0
  106. metalstackcloud/status/v1/message_pb2.pyi +65 -0
  107. metalstackcloud/status/v1/message_pb2_grpc.py +84 -0
  108. metalstackcloud/status/v1/status_connecpy.py +102 -0
  109. metalstackcloud/status/v1/status_pb2.py +45 -0
  110. metalstackcloud/status/v1/status_pb2.pyi +24 -0
  111. metalstackcloud/status/v1/status_pb2_grpc.py +84 -0
@@ -0,0 +1,122 @@
1
+ import datetime
2
+
3
+ from api.v1 import common_pb2 as _common_pb2
4
+ from buf.validate import validate_pb2 as _validate_pb2
5
+ from google.protobuf import timestamp_pb2 as _timestamp_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 IPType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper):
16
+ __slots__ = ()
17
+ IP_TYPE_UNSPECIFIED: _ClassVar[IPType]
18
+ IP_TYPE_EPHEMERAL: _ClassVar[IPType]
19
+ IP_TYPE_STATIC: _ClassVar[IPType]
20
+ IP_TYPE_UNSPECIFIED: IPType
21
+ IP_TYPE_EPHEMERAL: IPType
22
+ IP_TYPE_STATIC: IPType
23
+
24
+ class IP(_message.Message):
25
+ __slots__ = ("uuid", "ip", "name", "description", "network", "project", "type", "tags", "created_at", "updated_at", "deleted_at")
26
+ UUID_FIELD_NUMBER: _ClassVar[int]
27
+ IP_FIELD_NUMBER: _ClassVar[int]
28
+ NAME_FIELD_NUMBER: _ClassVar[int]
29
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
30
+ NETWORK_FIELD_NUMBER: _ClassVar[int]
31
+ PROJECT_FIELD_NUMBER: _ClassVar[int]
32
+ TYPE_FIELD_NUMBER: _ClassVar[int]
33
+ TAGS_FIELD_NUMBER: _ClassVar[int]
34
+ CREATED_AT_FIELD_NUMBER: _ClassVar[int]
35
+ UPDATED_AT_FIELD_NUMBER: _ClassVar[int]
36
+ DELETED_AT_FIELD_NUMBER: _ClassVar[int]
37
+ uuid: str
38
+ ip: str
39
+ name: str
40
+ description: str
41
+ network: str
42
+ project: str
43
+ type: IPType
44
+ tags: _containers.RepeatedScalarFieldContainer[str]
45
+ created_at: _timestamp_pb2.Timestamp
46
+ updated_at: _timestamp_pb2.Timestamp
47
+ deleted_at: _timestamp_pb2.Timestamp
48
+ def __init__(self, uuid: _Optional[str] = ..., ip: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., network: _Optional[str] = ..., project: _Optional[str] = ..., type: _Optional[_Union[IPType, str]] = ..., tags: _Optional[_Iterable[str]] = ..., created_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., updated_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., deleted_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ...
49
+
50
+ class IPServiceGetRequest(_message.Message):
51
+ __slots__ = ("uuid", "project")
52
+ UUID_FIELD_NUMBER: _ClassVar[int]
53
+ PROJECT_FIELD_NUMBER: _ClassVar[int]
54
+ uuid: str
55
+ project: str
56
+ def __init__(self, uuid: _Optional[str] = ..., project: _Optional[str] = ...) -> None: ...
57
+
58
+ class IPServiceAllocateRequest(_message.Message):
59
+ __slots__ = ("project", "name", "description", "tags", "static")
60
+ PROJECT_FIELD_NUMBER: _ClassVar[int]
61
+ NAME_FIELD_NUMBER: _ClassVar[int]
62
+ DESCRIPTION_FIELD_NUMBER: _ClassVar[int]
63
+ TAGS_FIELD_NUMBER: _ClassVar[int]
64
+ STATIC_FIELD_NUMBER: _ClassVar[int]
65
+ project: str
66
+ name: str
67
+ description: str
68
+ tags: _containers.RepeatedScalarFieldContainer[str]
69
+ static: bool
70
+ def __init__(self, project: _Optional[str] = ..., name: _Optional[str] = ..., description: _Optional[str] = ..., tags: _Optional[_Iterable[str]] = ..., static: bool = ...) -> None: ...
71
+
72
+ class IPServiceUpdateRequest(_message.Message):
73
+ __slots__ = ("project", "ip")
74
+ PROJECT_FIELD_NUMBER: _ClassVar[int]
75
+ IP_FIELD_NUMBER: _ClassVar[int]
76
+ project: str
77
+ ip: IP
78
+ def __init__(self, project: _Optional[str] = ..., ip: _Optional[_Union[IP, _Mapping]] = ...) -> None: ...
79
+
80
+ class IPServiceListRequest(_message.Message):
81
+ __slots__ = ("project",)
82
+ PROJECT_FIELD_NUMBER: _ClassVar[int]
83
+ project: str
84
+ def __init__(self, project: _Optional[str] = ...) -> None: ...
85
+
86
+ class IPServiceDeleteRequest(_message.Message):
87
+ __slots__ = ("uuid", "project")
88
+ UUID_FIELD_NUMBER: _ClassVar[int]
89
+ PROJECT_FIELD_NUMBER: _ClassVar[int]
90
+ uuid: str
91
+ project: str
92
+ def __init__(self, uuid: _Optional[str] = ..., project: _Optional[str] = ...) -> None: ...
93
+
94
+ class IPServiceGetResponse(_message.Message):
95
+ __slots__ = ("ip",)
96
+ IP_FIELD_NUMBER: _ClassVar[int]
97
+ ip: IP
98
+ def __init__(self, ip: _Optional[_Union[IP, _Mapping]] = ...) -> None: ...
99
+
100
+ class IPServiceUpdateResponse(_message.Message):
101
+ __slots__ = ("ip",)
102
+ IP_FIELD_NUMBER: _ClassVar[int]
103
+ ip: IP
104
+ def __init__(self, ip: _Optional[_Union[IP, _Mapping]] = ...) -> None: ...
105
+
106
+ class IPServiceAllocateResponse(_message.Message):
107
+ __slots__ = ("ip",)
108
+ IP_FIELD_NUMBER: _ClassVar[int]
109
+ ip: IP
110
+ def __init__(self, ip: _Optional[_Union[IP, _Mapping]] = ...) -> None: ...
111
+
112
+ class IPServiceListResponse(_message.Message):
113
+ __slots__ = ("ips",)
114
+ IPS_FIELD_NUMBER: _ClassVar[int]
115
+ ips: _containers.RepeatedCompositeFieldContainer[IP]
116
+ def __init__(self, ips: _Optional[_Iterable[_Union[IP, _Mapping]]] = ...) -> None: ...
117
+
118
+ class IPServiceDeleteResponse(_message.Message):
119
+ __slots__ = ("ip",)
120
+ IP_FIELD_NUMBER: _ClassVar[int]
121
+ ip: IP
122
+ def __init__(self, ip: _Optional[_Union[IP, _Mapping]] = ...) -> None: ...
@@ -0,0 +1,257 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+
5
+ from metalstackcloud.api.v1 import ip_pb2 as api_dot_v1_dot_ip__pb2
6
+
7
+
8
+ class IPServiceStub(object):
9
+ """IPService serves ip address related functions
10
+ """
11
+
12
+ def __init__(self, channel):
13
+ """Constructor.
14
+
15
+ Args:
16
+ channel: A grpc.Channel.
17
+ """
18
+ self.Get = channel.unary_unary(
19
+ '/api.v1.IPService/Get',
20
+ request_serializer=api_dot_v1_dot_ip__pb2.IPServiceGetRequest.SerializeToString,
21
+ response_deserializer=api_dot_v1_dot_ip__pb2.IPServiceGetResponse.FromString,
22
+ _registered_method=True)
23
+ self.Allocate = channel.unary_unary(
24
+ '/api.v1.IPService/Allocate',
25
+ request_serializer=api_dot_v1_dot_ip__pb2.IPServiceAllocateRequest.SerializeToString,
26
+ response_deserializer=api_dot_v1_dot_ip__pb2.IPServiceAllocateResponse.FromString,
27
+ _registered_method=True)
28
+ self.Update = channel.unary_unary(
29
+ '/api.v1.IPService/Update',
30
+ request_serializer=api_dot_v1_dot_ip__pb2.IPServiceUpdateRequest.SerializeToString,
31
+ response_deserializer=api_dot_v1_dot_ip__pb2.IPServiceUpdateResponse.FromString,
32
+ _registered_method=True)
33
+ self.List = channel.unary_unary(
34
+ '/api.v1.IPService/List',
35
+ request_serializer=api_dot_v1_dot_ip__pb2.IPServiceListRequest.SerializeToString,
36
+ response_deserializer=api_dot_v1_dot_ip__pb2.IPServiceListResponse.FromString,
37
+ _registered_method=True)
38
+ self.Delete = channel.unary_unary(
39
+ '/api.v1.IPService/Delete',
40
+ request_serializer=api_dot_v1_dot_ip__pb2.IPServiceDeleteRequest.SerializeToString,
41
+ response_deserializer=api_dot_v1_dot_ip__pb2.IPServiceDeleteResponse.FromString,
42
+ _registered_method=True)
43
+
44
+
45
+ class IPServiceServicer(object):
46
+ """IPService serves ip address related functions
47
+ """
48
+
49
+ def Get(self, request, context):
50
+ """Get a ip
51
+ """
52
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
53
+ context.set_details('Method not implemented!')
54
+ raise NotImplementedError('Method not implemented!')
55
+
56
+ def Allocate(self, request, context):
57
+ """Allocate a ip
58
+ """
59
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
60
+ context.set_details('Method not implemented!')
61
+ raise NotImplementedError('Method not implemented!')
62
+
63
+ def Update(self, request, context):
64
+ """Update a ip
65
+ """
66
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
67
+ context.set_details('Method not implemented!')
68
+ raise NotImplementedError('Method not implemented!')
69
+
70
+ def List(self, request, context):
71
+ """List all ips
72
+ """
73
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
74
+ context.set_details('Method not implemented!')
75
+ raise NotImplementedError('Method not implemented!')
76
+
77
+ def Delete(self, request, context):
78
+ """Delete a ip
79
+ """
80
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
81
+ context.set_details('Method not implemented!')
82
+ raise NotImplementedError('Method not implemented!')
83
+
84
+
85
+ def add_IPServiceServicer_to_server(servicer, server):
86
+ rpc_method_handlers = {
87
+ 'Get': grpc.unary_unary_rpc_method_handler(
88
+ servicer.Get,
89
+ request_deserializer=api_dot_v1_dot_ip__pb2.IPServiceGetRequest.FromString,
90
+ response_serializer=api_dot_v1_dot_ip__pb2.IPServiceGetResponse.SerializeToString,
91
+ ),
92
+ 'Allocate': grpc.unary_unary_rpc_method_handler(
93
+ servicer.Allocate,
94
+ request_deserializer=api_dot_v1_dot_ip__pb2.IPServiceAllocateRequest.FromString,
95
+ response_serializer=api_dot_v1_dot_ip__pb2.IPServiceAllocateResponse.SerializeToString,
96
+ ),
97
+ 'Update': grpc.unary_unary_rpc_method_handler(
98
+ servicer.Update,
99
+ request_deserializer=api_dot_v1_dot_ip__pb2.IPServiceUpdateRequest.FromString,
100
+ response_serializer=api_dot_v1_dot_ip__pb2.IPServiceUpdateResponse.SerializeToString,
101
+ ),
102
+ 'List': grpc.unary_unary_rpc_method_handler(
103
+ servicer.List,
104
+ request_deserializer=api_dot_v1_dot_ip__pb2.IPServiceListRequest.FromString,
105
+ response_serializer=api_dot_v1_dot_ip__pb2.IPServiceListResponse.SerializeToString,
106
+ ),
107
+ 'Delete': grpc.unary_unary_rpc_method_handler(
108
+ servicer.Delete,
109
+ request_deserializer=api_dot_v1_dot_ip__pb2.IPServiceDeleteRequest.FromString,
110
+ response_serializer=api_dot_v1_dot_ip__pb2.IPServiceDeleteResponse.SerializeToString,
111
+ ),
112
+ }
113
+ generic_handler = grpc.method_handlers_generic_handler(
114
+ 'api.v1.IPService', rpc_method_handlers)
115
+ server.add_generic_rpc_handlers((generic_handler,))
116
+ server.add_registered_method_handlers('api.v1.IPService', rpc_method_handlers)
117
+
118
+
119
+ # This class is part of an EXPERIMENTAL API.
120
+ class IPService(object):
121
+ """IPService serves ip address related functions
122
+ """
123
+
124
+ @staticmethod
125
+ def Get(request,
126
+ target,
127
+ options=(),
128
+ channel_credentials=None,
129
+ call_credentials=None,
130
+ insecure=False,
131
+ compression=None,
132
+ wait_for_ready=None,
133
+ timeout=None,
134
+ metadata=None):
135
+ return grpc.experimental.unary_unary(
136
+ request,
137
+ target,
138
+ '/api.v1.IPService/Get',
139
+ api_dot_v1_dot_ip__pb2.IPServiceGetRequest.SerializeToString,
140
+ api_dot_v1_dot_ip__pb2.IPServiceGetResponse.FromString,
141
+ options,
142
+ channel_credentials,
143
+ insecure,
144
+ call_credentials,
145
+ compression,
146
+ wait_for_ready,
147
+ timeout,
148
+ metadata,
149
+ _registered_method=True)
150
+
151
+ @staticmethod
152
+ def Allocate(request,
153
+ target,
154
+ options=(),
155
+ channel_credentials=None,
156
+ call_credentials=None,
157
+ insecure=False,
158
+ compression=None,
159
+ wait_for_ready=None,
160
+ timeout=None,
161
+ metadata=None):
162
+ return grpc.experimental.unary_unary(
163
+ request,
164
+ target,
165
+ '/api.v1.IPService/Allocate',
166
+ api_dot_v1_dot_ip__pb2.IPServiceAllocateRequest.SerializeToString,
167
+ api_dot_v1_dot_ip__pb2.IPServiceAllocateResponse.FromString,
168
+ options,
169
+ channel_credentials,
170
+ insecure,
171
+ call_credentials,
172
+ compression,
173
+ wait_for_ready,
174
+ timeout,
175
+ metadata,
176
+ _registered_method=True)
177
+
178
+ @staticmethod
179
+ def Update(request,
180
+ target,
181
+ options=(),
182
+ channel_credentials=None,
183
+ call_credentials=None,
184
+ insecure=False,
185
+ compression=None,
186
+ wait_for_ready=None,
187
+ timeout=None,
188
+ metadata=None):
189
+ return grpc.experimental.unary_unary(
190
+ request,
191
+ target,
192
+ '/api.v1.IPService/Update',
193
+ api_dot_v1_dot_ip__pb2.IPServiceUpdateRequest.SerializeToString,
194
+ api_dot_v1_dot_ip__pb2.IPServiceUpdateResponse.FromString,
195
+ options,
196
+ channel_credentials,
197
+ insecure,
198
+ call_credentials,
199
+ compression,
200
+ wait_for_ready,
201
+ timeout,
202
+ metadata,
203
+ _registered_method=True)
204
+
205
+ @staticmethod
206
+ def List(request,
207
+ target,
208
+ options=(),
209
+ channel_credentials=None,
210
+ call_credentials=None,
211
+ insecure=False,
212
+ compression=None,
213
+ wait_for_ready=None,
214
+ timeout=None,
215
+ metadata=None):
216
+ return grpc.experimental.unary_unary(
217
+ request,
218
+ target,
219
+ '/api.v1.IPService/List',
220
+ api_dot_v1_dot_ip__pb2.IPServiceListRequest.SerializeToString,
221
+ api_dot_v1_dot_ip__pb2.IPServiceListResponse.FromString,
222
+ options,
223
+ channel_credentials,
224
+ insecure,
225
+ call_credentials,
226
+ compression,
227
+ wait_for_ready,
228
+ timeout,
229
+ metadata,
230
+ _registered_method=True)
231
+
232
+ @staticmethod
233
+ def Delete(request,
234
+ target,
235
+ options=(),
236
+ channel_credentials=None,
237
+ call_credentials=None,
238
+ insecure=False,
239
+ compression=None,
240
+ wait_for_ready=None,
241
+ timeout=None,
242
+ metadata=None):
243
+ return grpc.experimental.unary_unary(
244
+ request,
245
+ target,
246
+ '/api.v1.IPService/Delete',
247
+ api_dot_v1_dot_ip__pb2.IPServiceDeleteRequest.SerializeToString,
248
+ api_dot_v1_dot_ip__pb2.IPServiceDeleteResponse.FromString,
249
+ options,
250
+ channel_credentials,
251
+ insecure,
252
+ call_credentials,
253
+ compression,
254
+ wait_for_ready,
255
+ timeout,
256
+ metadata,
257
+ _registered_method=True)
@@ -0,0 +1,158 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by https://github.com/i2y/connecpy/protoc-gen-connecpy. DO NOT EDIT!
3
+ # source: api/v1/method.proto
4
+
5
+ from typing import Optional, Protocol, Union
6
+
7
+ import httpx
8
+
9
+ from connecpy.async_client import AsyncConnecpyClient
10
+ from connecpy.base import Endpoint
11
+ from connecpy.server import ConnecpyServer
12
+ from connecpy.client import ConnecpyClient
13
+ from connecpy.context import ClientContext, ServiceContext
14
+ import metalstackcloud.api.v1.method_pb2 as api_dot_v1_dot_method__pb2
15
+
16
+
17
+ class MethodService(Protocol):
18
+ async def List(self, req: api_dot_v1_dot_method__pb2.MethodServiceListRequest, ctx: ServiceContext) -> api_dot_v1_dot_method__pb2.MethodServiceListResponse: ...
19
+ async def TokenScopedList(self, req: api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListRequest, ctx: ServiceContext) -> api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListResponse: ...
20
+
21
+
22
+ class MethodServiceServer(ConnecpyServer):
23
+ def __init__(self, *, service: MethodService, server_path_prefix=""):
24
+ super().__init__()
25
+ self._prefix = f"{server_path_prefix}/api.v1.MethodService"
26
+ self._endpoints = {
27
+ "List": Endpoint[api_dot_v1_dot_method__pb2.MethodServiceListRequest, api_dot_v1_dot_method__pb2.MethodServiceListResponse](
28
+ service_name="MethodService",
29
+ name="List",
30
+ function=getattr(service, "List"),
31
+ input=api_dot_v1_dot_method__pb2.MethodServiceListRequest,
32
+ output=api_dot_v1_dot_method__pb2.MethodServiceListResponse,
33
+ allowed_methods=("POST",),
34
+ ),
35
+ "TokenScopedList": Endpoint[api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListRequest, api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListResponse](
36
+ service_name="MethodService",
37
+ name="TokenScopedList",
38
+ function=getattr(service, "TokenScopedList"),
39
+ input=api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListRequest,
40
+ output=api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListResponse,
41
+ allowed_methods=("POST",),
42
+ ),
43
+ }
44
+
45
+ def serviceName(self):
46
+ return "api.v1.MethodService"
47
+
48
+
49
+ class MethodServiceSync(Protocol):
50
+ def List(self, req: api_dot_v1_dot_method__pb2.MethodServiceListRequest, ctx: ServiceContext) -> api_dot_v1_dot_method__pb2.MethodServiceListResponse: ...
51
+ def TokenScopedList(self, req: api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListRequest, ctx: ServiceContext) -> api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListResponse: ...
52
+
53
+
54
+ class MethodServiceServerSync(ConnecpyServer):
55
+ def __init__(self, *, service: MethodServiceSync, server_path_prefix=""):
56
+ super().__init__()
57
+ self._prefix = f"{server_path_prefix}/api.v1.MethodService"
58
+ self._endpoints = {
59
+ "List": Endpoint[api_dot_v1_dot_method__pb2.MethodServiceListRequest, api_dot_v1_dot_method__pb2.MethodServiceListResponse](
60
+ service_name="MethodService",
61
+ name="List",
62
+ function=getattr(service, "List"),
63
+ input=api_dot_v1_dot_method__pb2.MethodServiceListRequest,
64
+ output=api_dot_v1_dot_method__pb2.MethodServiceListResponse,
65
+ allowed_methods=("POST",),
66
+ ),
67
+ "TokenScopedList": Endpoint[api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListRequest, api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListResponse](
68
+ service_name="MethodService",
69
+ name="TokenScopedList",
70
+ function=getattr(service, "TokenScopedList"),
71
+ input=api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListRequest,
72
+ output=api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListResponse,
73
+ allowed_methods=("POST",),
74
+ ),
75
+ }
76
+
77
+ def serviceName(self):
78
+ return "api.v1.MethodService"
79
+
80
+
81
+ class MethodServiceClient(ConnecpyClient):
82
+ def List(
83
+ self,
84
+ request: api_dot_v1_dot_method__pb2.MethodServiceListRequest,
85
+ *,
86
+ ctx: Optional[ClientContext] = None,
87
+ server_path_prefix: str = "",
88
+ **kwargs,
89
+ ) -> api_dot_v1_dot_method__pb2.MethodServiceListResponse:
90
+ method = "POST"
91
+ return self._make_request(
92
+ url=f"{server_path_prefix}/api.v1.MethodService/List",
93
+ ctx=ctx,
94
+ request=request,
95
+ response_class=api_dot_v1_dot_method__pb2.MethodServiceListResponse,
96
+ method=method,
97
+ **kwargs,
98
+ )
99
+
100
+ def TokenScopedList(
101
+ self,
102
+ request: api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListRequest,
103
+ *,
104
+ ctx: Optional[ClientContext] = None,
105
+ server_path_prefix: str = "",
106
+ **kwargs,
107
+ ) -> api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListResponse:
108
+ method = "POST"
109
+ return self._make_request(
110
+ url=f"{server_path_prefix}/api.v1.MethodService/TokenScopedList",
111
+ ctx=ctx,
112
+ request=request,
113
+ response_class=api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListResponse,
114
+ method=method,
115
+ **kwargs,
116
+ )
117
+
118
+
119
+ class AsyncMethodServiceClient(AsyncConnecpyClient):
120
+ async def List(
121
+ self,
122
+ request: api_dot_v1_dot_method__pb2.MethodServiceListRequest,
123
+ *,
124
+ ctx: Optional[ClientContext] = None,
125
+ server_path_prefix: str = "",
126
+ session: Union[httpx.AsyncClient, None] = None,
127
+ **kwargs,
128
+ ) -> api_dot_v1_dot_method__pb2.MethodServiceListResponse:
129
+ method = "POST"
130
+ return await self._make_request(
131
+ url=f"{server_path_prefix}/api.v1.MethodService/List",
132
+ ctx=ctx,
133
+ request=request,
134
+ response_class=api_dot_v1_dot_method__pb2.MethodServiceListResponse,
135
+ method=method,
136
+ session=session,
137
+ **kwargs,
138
+ )
139
+
140
+ async def TokenScopedList(
141
+ self,
142
+ request: api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListRequest,
143
+ *,
144
+ ctx: Optional[ClientContext] = None,
145
+ server_path_prefix: str = "",
146
+ session: Union[httpx.AsyncClient, None] = None,
147
+ **kwargs,
148
+ ) -> api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListResponse:
149
+ method = "POST"
150
+ return await self._make_request(
151
+ url=f"{server_path_prefix}/api.v1.MethodService/TokenScopedList",
152
+ ctx=ctx,
153
+ request=request,
154
+ response_class=api_dot_v1_dot_method__pb2.MethodServiceTokenScopedListResponse,
155
+ method=method,
156
+ session=session,
157
+ **kwargs,
158
+ )
@@ -0,0 +1,62 @@
1
+ # -*- coding: utf-8 -*-
2
+ # Generated by the protocol buffer compiler. DO NOT EDIT!
3
+ # NO CHECKED-IN PROTOBUF GENCODE
4
+ # source: api/v1/method.proto
5
+ # Protobuf Python Version: 6.31.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
+ 31,
16
+ 1,
17
+ '',
18
+ 'api/v1/method.proto'
19
+ )
20
+ # @@protoc_insertion_point(imports)
21
+
22
+ _sym_db = _symbol_database.Default()
23
+
24
+
25
+ from metalstackcloud.api.v1 import common_pb2 as api_dot_v1_dot_common__pb2
26
+ from metalstackcloud.api.v1 import token_pb2 as api_dot_v1_dot_token__pb2
27
+ from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2
28
+
29
+
30
+ DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x13\x61pi/v1/method.proto\x12\x06\x61pi.v1\x1a\x13\x61pi/v1/common.proto\x1a\x12\x61pi/v1/token.proto\x1a\x1b\x62uf/validate/validate.proto\"\x1a\n\x18MethodServiceListRequest\"5\n\x19MethodServiceListResponse\x12\x18\n\x07methods\x18\x01 \x03(\tR\x07methods\"%\n#MethodServiceTokenScopedListRequest\"\xb0\x04\n$MethodServiceTokenScopedListResponse\x12:\n\x0bpermissions\x18\x01 \x03(\x0b\x32\x18.api.v1.MethodPermissionR\x0bpermissions\x12\x63\n\rproject_roles\x18\x03 \x03(\x0b\x32>.api.v1.MethodServiceTokenScopedListResponse.ProjectRolesEntryR\x0cprojectRoles\x12`\n\x0ctenant_roles\x18\x04 \x03(\x0b\x32=.api.v1.MethodServiceTokenScopedListResponse.TenantRolesEntryR\x0btenantRoles\x12?\n\nadmin_role\x18\x05 \x01(\x0e\x32\x11.api.v1.AdminRoleB\x08\xbaH\x05\x82\x01\x02\x10\x01H\x00R\tadminRole\x88\x01\x01\x1aT\n\x11ProjectRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12)\n\x05value\x18\x02 \x01(\x0e\x32\x13.api.v1.ProjectRoleR\x05value:\x02\x38\x01\x1aR\n\x10TenantRolesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12(\n\x05value\x18\x02 \x01(\x0e\x32\x12.api.v1.TenantRoleR\x05value:\x02\x38\x01\x42\r\n\x0b_admin_roleJ\x04\x08\x02\x10\x03R\x05roles2\xd6\x01\n\rMethodService\x12Q\n\x04List\x12 .api.v1.MethodServiceListRequest\x1a!.api.v1.MethodServiceListResponse\"\x04\xd8\xf3\x18\x01\x12r\n\x0fTokenScopedList\x12+.api.v1.MethodServiceTokenScopedListRequest\x1a,.api.v1.MethodServiceTokenScopedListResponse\"\x04\xd8\xf3\x18\x03\x42\x84\x01\n\ncom.api.v1B\x0bMethodProtoP\x01Z0github.com/metal-stack-cloud/api/go/api/v1;apiv1\xa2\x02\x03\x41XX\xaa\x02\x06\x41pi.V1\xca\x02\x06\x41pi\\V1\xe2\x02\x12\x41pi\\V1\\GPBMetadata\xea\x02\x07\x41pi::V1b\x06proto3')
31
+
32
+ _globals = globals()
33
+ _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals)
34
+ _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'api.v1.method_pb2', _globals)
35
+ if not _descriptor._USE_C_DESCRIPTORS:
36
+ _globals['DESCRIPTOR']._loaded_options = None
37
+ _globals['DESCRIPTOR']._serialized_options = b'\n\ncom.api.v1B\013MethodProtoP\001Z0github.com/metal-stack-cloud/api/go/api/v1;apiv1\242\002\003AXX\252\002\006Api.V1\312\002\006Api\\V1\342\002\022Api\\V1\\GPBMetadata\352\002\007Api::V1'
38
+ _globals['_METHODSERVICETOKENSCOPEDLISTRESPONSE_PROJECTROLESENTRY']._loaded_options = None
39
+ _globals['_METHODSERVICETOKENSCOPEDLISTRESPONSE_PROJECTROLESENTRY']._serialized_options = b'8\001'
40
+ _globals['_METHODSERVICETOKENSCOPEDLISTRESPONSE_TENANTROLESENTRY']._loaded_options = None
41
+ _globals['_METHODSERVICETOKENSCOPEDLISTRESPONSE_TENANTROLESENTRY']._serialized_options = b'8\001'
42
+ _globals['_METHODSERVICETOKENSCOPEDLISTRESPONSE'].fields_by_name['admin_role']._loaded_options = None
43
+ _globals['_METHODSERVICETOKENSCOPEDLISTRESPONSE'].fields_by_name['admin_role']._serialized_options = b'\272H\005\202\001\002\020\001'
44
+ _globals['_METHODSERVICE'].methods_by_name['List']._loaded_options = None
45
+ _globals['_METHODSERVICE'].methods_by_name['List']._serialized_options = b'\330\363\030\001'
46
+ _globals['_METHODSERVICE'].methods_by_name['TokenScopedList']._loaded_options = None
47
+ _globals['_METHODSERVICE'].methods_by_name['TokenScopedList']._serialized_options = b'\330\363\030\003'
48
+ _globals['_METHODSERVICELISTREQUEST']._serialized_start=101
49
+ _globals['_METHODSERVICELISTREQUEST']._serialized_end=127
50
+ _globals['_METHODSERVICELISTRESPONSE']._serialized_start=129
51
+ _globals['_METHODSERVICELISTRESPONSE']._serialized_end=182
52
+ _globals['_METHODSERVICETOKENSCOPEDLISTREQUEST']._serialized_start=184
53
+ _globals['_METHODSERVICETOKENSCOPEDLISTREQUEST']._serialized_end=221
54
+ _globals['_METHODSERVICETOKENSCOPEDLISTRESPONSE']._serialized_start=224
55
+ _globals['_METHODSERVICETOKENSCOPEDLISTRESPONSE']._serialized_end=784
56
+ _globals['_METHODSERVICETOKENSCOPEDLISTRESPONSE_PROJECTROLESENTRY']._serialized_start=588
57
+ _globals['_METHODSERVICETOKENSCOPEDLISTRESPONSE_PROJECTROLESENTRY']._serialized_end=672
58
+ _globals['_METHODSERVICETOKENSCOPEDLISTRESPONSE_TENANTROLESENTRY']._serialized_start=674
59
+ _globals['_METHODSERVICETOKENSCOPEDLISTRESPONSE_TENANTROLESENTRY']._serialized_end=756
60
+ _globals['_METHODSERVICE']._serialized_start=787
61
+ _globals['_METHODSERVICE']._serialized_end=1001
62
+ # @@protoc_insertion_point(module_scope)
@@ -0,0 +1,50 @@
1
+ from api.v1 import common_pb2 as _common_pb2
2
+ from api.v1 import token_pb2 as _token_pb2
3
+ from buf.validate import validate_pb2 as _validate_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 MethodServiceListRequest(_message.Message):
13
+ __slots__ = ()
14
+ def __init__(self) -> None: ...
15
+
16
+ class MethodServiceListResponse(_message.Message):
17
+ __slots__ = ("methods",)
18
+ METHODS_FIELD_NUMBER: _ClassVar[int]
19
+ methods: _containers.RepeatedScalarFieldContainer[str]
20
+ def __init__(self, methods: _Optional[_Iterable[str]] = ...) -> None: ...
21
+
22
+ class MethodServiceTokenScopedListRequest(_message.Message):
23
+ __slots__ = ()
24
+ def __init__(self) -> None: ...
25
+
26
+ class MethodServiceTokenScopedListResponse(_message.Message):
27
+ __slots__ = ("permissions", "project_roles", "tenant_roles", "admin_role")
28
+ class ProjectRolesEntry(_message.Message):
29
+ __slots__ = ("key", "value")
30
+ KEY_FIELD_NUMBER: _ClassVar[int]
31
+ VALUE_FIELD_NUMBER: _ClassVar[int]
32
+ key: str
33
+ value: _common_pb2.ProjectRole
34
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_common_pb2.ProjectRole, str]] = ...) -> None: ...
35
+ class TenantRolesEntry(_message.Message):
36
+ __slots__ = ("key", "value")
37
+ KEY_FIELD_NUMBER: _ClassVar[int]
38
+ VALUE_FIELD_NUMBER: _ClassVar[int]
39
+ key: str
40
+ value: _common_pb2.TenantRole
41
+ def __init__(self, key: _Optional[str] = ..., value: _Optional[_Union[_common_pb2.TenantRole, str]] = ...) -> None: ...
42
+ PERMISSIONS_FIELD_NUMBER: _ClassVar[int]
43
+ PROJECT_ROLES_FIELD_NUMBER: _ClassVar[int]
44
+ TENANT_ROLES_FIELD_NUMBER: _ClassVar[int]
45
+ ADMIN_ROLE_FIELD_NUMBER: _ClassVar[int]
46
+ permissions: _containers.RepeatedCompositeFieldContainer[_token_pb2.MethodPermission]
47
+ project_roles: _containers.ScalarMap[str, _common_pb2.ProjectRole]
48
+ tenant_roles: _containers.ScalarMap[str, _common_pb2.TenantRole]
49
+ admin_role: _common_pb2.AdminRole
50
+ def __init__(self, permissions: _Optional[_Iterable[_Union[_token_pb2.MethodPermission, _Mapping]]] = ..., project_roles: _Optional[_Mapping[str, _common_pb2.ProjectRole]] = ..., tenant_roles: _Optional[_Mapping[str, _common_pb2.TenantRole]] = ..., admin_role: _Optional[_Union[_common_pb2.AdminRole, str]] = ...) -> None: ...