mergetbapi 1.3.51__tar.gz → 1.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/PKG-INFO +1 -1
  2. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi/portal/v1/__init__.py +279 -6
  3. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi/xir/__init__.py +21 -5
  4. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi.egg-info/PKG-INFO +1 -1
  5. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/LICENSE.md +0 -0
  6. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/README.md +0 -0
  7. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi/__init__.py +0 -0
  8. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi/google/__init__.py +0 -0
  9. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi/google/api/__init__.py +0 -0
  10. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi/grpc/__init__.py +0 -0
  11. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi/grpc/gateway/__init__.py +0 -0
  12. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi/grpc/gateway/protoc_gen_openapiv2/__init__.py +0 -0
  13. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi/grpc/gateway/protoc_gen_openapiv2/options/__init__.py +0 -0
  14. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi/portal/__init__.py +0 -0
  15. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi/reconcile/__init__.py +0 -0
  16. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi/validator/__init__.py +0 -0
  17. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi.egg-info/SOURCES.txt +0 -0
  18. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi.egg-info/dependency_links.txt +0 -0
  19. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi.egg-info/not-zip-safe +0 -0
  20. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi.egg-info/requires.txt +0 -0
  21. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/mergetbapi.egg-info/top_level.txt +0 -0
  22. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/setup.cfg +0 -0
  23. {mergetbapi-1.3.51 → mergetbapi-1.4.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mergetbapi
3
- Version: 1.3.51
3
+ Version: 1.4.0
4
4
  Summary: Client interface to the MergeTB API
5
5
  Home-page: https://gitlab.com/mergetb/api
6
6
  Author: Brian Kocoloski
@@ -1,5 +1,5 @@
1
1
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # sources: portal/v1/alloc_types.proto, portal/v1/artifact_types.proto, portal/v1/commission_types.proto, portal/v1/communications_types.proto, portal/v1/cred_types.proto, portal/v1/identity_types.proto, portal/v1/internal.proto, portal/v1/kv_types.proto, portal/v1/materialize_types.proto, portal/v1/model_types.proto, portal/v1/patch_types.proto, portal/v1/realize_types.proto, portal/v1/status_types.proto, portal/v1/time_types.proto, portal/v1/wg_types.proto, portal/v1/workspace_types.proto, portal/v1/xdc_types.proto, proto/portal/v1/portal.proto
2
+ # sources: portal/v1/alloc_types.proto, portal/v1/artifact_types.proto, portal/v1/commission_types.proto, portal/v1/communications_types.proto, portal/v1/cred_types.proto, portal/v1/deployment_types.proto, portal/v1/identity_types.proto, portal/v1/internal.proto, portal/v1/kv_types.proto, portal/v1/materialize_types.proto, portal/v1/model_types.proto, portal/v1/patch_types.proto, portal/v1/realize_types.proto, portal/v1/status_types.proto, portal/v1/time_types.proto, portal/v1/wg_types.proto, portal/v1/workspace_types.proto, portal/v1/xdc_types.proto, proto/portal/v1/portal.proto
3
3
  # plugin: python-betterproto
4
4
  # This file has been @generated
5
5
  import warnings
@@ -157,6 +157,13 @@ class ArtifactGetDetail(betterproto.Enum):
157
157
  MetaOnly = 2
158
158
 
159
159
 
160
+ class BgpPeerRole(betterproto.Enum):
161
+ Unspecified = 0
162
+ Regular = 1
163
+ BorderGateway = 2
164
+ RouteReflector = 3
165
+
166
+
160
167
  class DiagnosticLevel(betterproto.Enum):
161
168
  DiagUnspec = 0
162
169
  Error = 1
@@ -645,7 +652,7 @@ class UpdateUserRequest(betterproto.Message):
645
652
  usstate: str = betterproto.string_field(14)
646
653
  toggle_email_valid: bool = betterproto.bool_field(15)
647
654
  """
648
- Set the user email as validated or not. If true will toggle the state.
655
+ Set the user email as validated or not. If true will toggle the state.
649
656
  (Only useful if your portal supports email validation.)
650
657
  """
651
658
 
@@ -1994,6 +2001,64 @@ class GetUserSshCertResponse(betterproto.Message):
1994
2001
  cert: "SshCert" = betterproto.message_field(1)
1995
2002
 
1996
2003
 
2004
+ @dataclass(eq=False, repr=False)
2005
+ class DeploymentId(betterproto.Message):
2006
+ realization: str = betterproto.string_field(1)
2007
+ experiment: str = betterproto.string_field(2)
2008
+ project: str = betterproto.string_field(3)
2009
+
2010
+
2011
+ @dataclass(eq=False, repr=False)
2012
+ class CreateDeploymentRequest(betterproto.Message):
2013
+ dont_cleanup_on_fail: bool = betterproto.bool_field(1)
2014
+ model: str = betterproto.string_field(2)
2015
+ id: "DeploymentId" = betterproto.message_field(3)
2016
+ xdc: str = betterproto.string_field(4)
2017
+
2018
+
2019
+ @dataclass(eq=False, repr=False)
2020
+ class CreateDeploymentResponse(betterproto.Message):
2021
+ id: "DeploymentId" = betterproto.message_field(1)
2022
+
2023
+
2024
+ @dataclass(eq=False, repr=False)
2025
+ class CancelDeploymentRequest(betterproto.Message):
2026
+ id: "DeploymentId" = betterproto.message_field(1)
2027
+
2028
+
2029
+ @dataclass(eq=False, repr=False)
2030
+ class CancelDeploymentResponse(betterproto.Message):
2031
+ pass
2032
+
2033
+
2034
+ @dataclass(eq=False, repr=False)
2035
+ class DeploymentInfo(betterproto.Message):
2036
+ id: "DeploymentId" = betterproto.message_field(1)
2037
+ xdc: str = betterproto.string_field(2)
2038
+ status: str = betterproto.string_field(3)
2039
+
2040
+
2041
+ @dataclass(eq=False, repr=False)
2042
+ class ListDeploymentsRequest(betterproto.Message):
2043
+ pass
2044
+
2045
+
2046
+ @dataclass(eq=False, repr=False)
2047
+ class ListDeploymentsResponse(betterproto.Message):
2048
+ deployments: List["DeploymentInfo"] = betterproto.message_field(1)
2049
+
2050
+
2051
+ @dataclass(eq=False, repr=False)
2052
+ class GetDeploymentStatusRequest(betterproto.Message):
2053
+ id: "DeploymentId" = betterproto.message_field(1)
2054
+ status_ms: int = betterproto.int32_field(2)
2055
+
2056
+
2057
+ @dataclass(eq=False, repr=False)
2058
+ class GetDeploymentStatusResponse(betterproto.Message):
2059
+ status: "TaskTree" = betterproto.message_field(1)
2060
+
2061
+
1997
2062
  @dataclass(eq=False, repr=False)
1998
2063
  class VerifiableAddress(betterproto.Message):
1999
2064
  value: str = betterproto.string_field(1)
@@ -2232,6 +2297,7 @@ class Realization(betterproto.Message):
2232
2297
  link_emulation: "LinkEmulationParams" = betterproto.message_field(15)
2233
2298
  created: datetime = betterproto.message_field(16)
2234
2299
  expires: datetime = betterproto.message_field(17)
2300
+ embed_version: str = betterproto.string_field(18)
2235
2301
 
2236
2302
 
2237
2303
  @dataclass(eq=False, repr=False)
@@ -2258,21 +2324,48 @@ class RealizationSummary(betterproto.Message):
2258
2324
  @dataclass(eq=False, repr=False)
2259
2325
  class InfrapodConfig(betterproto.Message):
2260
2326
  phy: str = betterproto.string_field(1)
2261
- addr: str = betterproto.string_field(2)
2327
+ local_addr: str = betterproto.string_field(2)
2262
2328
  subnet: str = betterproto.string_field(3)
2263
2329
  gw: str = betterproto.string_field(4)
2264
2330
  vid: int = betterproto.uint32_field(5)
2265
2331
  mgmt_phy: str = betterproto.string_field(6)
2266
2332
  vni: int = betterproto.uint32_field(7)
2267
- endpoint: "Endpoint" = betterproto.message_field(8)
2333
+ local_endpoint: "Endpoint" = betterproto.message_field(8)
2334
+ ifr_net_endpoint: "Endpoint" = betterproto.message_field(9)
2335
+ ifr_net_addr: str = betterproto.string_field(10)
2336
+
2337
+ def __post_init__(self) -> None:
2338
+ super().__post_init__()
2339
+ if self.is_set("phy"):
2340
+ warnings.warn("InfrapodConfig.phy is deprecated", DeprecationWarning)
2341
+ if self.is_set("subnet"):
2342
+ warnings.warn("InfrapodConfig.subnet is deprecated", DeprecationWarning)
2343
+ if self.is_set("gw"):
2344
+ warnings.warn("InfrapodConfig.gw is deprecated", DeprecationWarning)
2345
+ if self.is_set("vid"):
2346
+ warnings.warn("InfrapodConfig.vid is deprecated", DeprecationWarning)
2347
+ if self.is_set("mgmt_phy"):
2348
+ warnings.warn("InfrapodConfig.mgmt_phy is deprecated", DeprecationWarning)
2349
+ if self.is_set("vni"):
2350
+ warnings.warn("InfrapodConfig.vni is deprecated", DeprecationWarning)
2268
2351
 
2269
2352
 
2270
2353
  @dataclass(eq=False, repr=False)
2271
2354
  class InfranetEmbedding(betterproto.Message):
2272
2355
  infrapod_server: str = betterproto.string_field(1)
2273
- """hostname of infrapod server"""
2274
-
2275
2356
  infrapod_site: str = betterproto.string_field(2)
2357
+ configs: List["InfrapodConfig"] = betterproto.message_field(3)
2358
+
2359
+ def __post_init__(self) -> None:
2360
+ super().__post_init__()
2361
+ if self.is_set("infrapod_server"):
2362
+ warnings.warn(
2363
+ "InfranetEmbedding.infrapod_server is deprecated", DeprecationWarning
2364
+ )
2365
+ if self.is_set("infrapod_site"):
2366
+ warnings.warn(
2367
+ "InfranetEmbedding.infrapod_site is deprecated", DeprecationWarning
2368
+ )
2276
2369
 
2277
2370
 
2278
2371
  @dataclass(eq=False, repr=False)
@@ -2445,6 +2538,9 @@ class BgpPeer(betterproto.Message):
2445
2538
  local_asn: int = betterproto.uint32_field(2)
2446
2539
  remote_asn: int = betterproto.uint32_field(3)
2447
2540
  network: str = betterproto.string_field(4)
2541
+ router_id: str = betterproto.string_field(5)
2542
+ transit_ip: str = betterproto.string_field(6)
2543
+ role: "BgpPeerRole" = betterproto.enum_field(7)
2448
2544
 
2449
2545
 
2450
2546
  @dataclass(eq=False, repr=False)
@@ -2512,6 +2608,7 @@ class LinkEmulation(betterproto.Message):
2512
2608
  interfaces: List[str] = betterproto.string_field(5)
2513
2609
  nodes: List[str] = betterproto.string_field(6)
2514
2610
  server: str = betterproto.string_field(7)
2611
+ facility: str = betterproto.string_field(8)
2515
2612
 
2516
2613
 
2517
2614
  @dataclass(eq=False, repr=False)
@@ -2677,6 +2774,27 @@ class MzParameters(betterproto.Message):
2677
2774
  infranet_vni: int = betterproto.uint32_field(6)
2678
2775
  resolve_expnet: bool = betterproto.bool_field(7)
2679
2776
 
2777
+ def __post_init__(self) -> None:
2778
+ super().__post_init__()
2779
+ if self.is_set("infrapod_server"):
2780
+ warnings.warn(
2781
+ "MzParameters.infrapod_server is deprecated", DeprecationWarning
2782
+ )
2783
+ if self.is_set("infrapod_phy"):
2784
+ warnings.warn("MzParameters.infrapod_phy is deprecated", DeprecationWarning)
2785
+ if self.is_set("infranet_addr"):
2786
+ warnings.warn(
2787
+ "MzParameters.infranet_addr is deprecated", DeprecationWarning
2788
+ )
2789
+ if self.is_set("infranet_subnet"):
2790
+ warnings.warn(
2791
+ "MzParameters.infranet_subnet is deprecated", DeprecationWarning
2792
+ )
2793
+ if self.is_set("infranet_gw"):
2794
+ warnings.warn("MzParameters.infranet_gw is deprecated", DeprecationWarning)
2795
+ if self.is_set("infranet_vni"):
2796
+ warnings.warn("MzParameters.infranet_vni is deprecated", DeprecationWarning)
2797
+
2680
2798
 
2681
2799
  @dataclass(eq=False, repr=False)
2682
2800
  class Materialization(betterproto.Message):
@@ -2699,6 +2817,8 @@ class Materialization(betterproto.Message):
2699
2817
  """Moa"""
2700
2818
 
2701
2819
  created: datetime = betterproto.message_field(13)
2820
+ infranet: "InfranetEmbedding" = betterproto.message_field(14)
2821
+ embed_version: str = betterproto.string_field(15)
2702
2822
 
2703
2823
 
2704
2824
  @dataclass(eq=False, repr=False)
@@ -5865,6 +5985,76 @@ class KeyValueStub(betterproto.ServiceStub):
5865
5985
  )
5866
5986
 
5867
5987
 
5988
+ class DeployStub(betterproto.ServiceStub):
5989
+ async def create_deployment(
5990
+ self,
5991
+ create_deployment_request: "CreateDeploymentRequest",
5992
+ *,
5993
+ timeout: Optional[float] = None,
5994
+ deadline: Optional["Deadline"] = None,
5995
+ metadata: Optional["MetadataLike"] = None
5996
+ ) -> "CreateDeploymentResponse":
5997
+ return await self._unary_unary(
5998
+ "/portal.v1.Deploy/CreateDeployment",
5999
+ create_deployment_request,
6000
+ CreateDeploymentResponse,
6001
+ timeout=timeout,
6002
+ deadline=deadline,
6003
+ metadata=metadata,
6004
+ )
6005
+
6006
+ async def get_deployment_status(
6007
+ self,
6008
+ get_deployment_status_request: "GetDeploymentStatusRequest",
6009
+ *,
6010
+ timeout: Optional[float] = None,
6011
+ deadline: Optional["Deadline"] = None,
6012
+ metadata: Optional["MetadataLike"] = None
6013
+ ) -> "GetDeploymentStatusResponse":
6014
+ return await self._unary_unary(
6015
+ "/portal.v1.Deploy/GetDeploymentStatus",
6016
+ get_deployment_status_request,
6017
+ GetDeploymentStatusResponse,
6018
+ timeout=timeout,
6019
+ deadline=deadline,
6020
+ metadata=metadata,
6021
+ )
6022
+
6023
+ async def cancel_deployment(
6024
+ self,
6025
+ cancel_deployment_request: "CancelDeploymentRequest",
6026
+ *,
6027
+ timeout: Optional[float] = None,
6028
+ deadline: Optional["Deadline"] = None,
6029
+ metadata: Optional["MetadataLike"] = None
6030
+ ) -> "CancelDeploymentResponse":
6031
+ return await self._unary_unary(
6032
+ "/portal.v1.Deploy/CancelDeployment",
6033
+ cancel_deployment_request,
6034
+ CancelDeploymentResponse,
6035
+ timeout=timeout,
6036
+ deadline=deadline,
6037
+ metadata=metadata,
6038
+ )
6039
+
6040
+ async def list_deployments(
6041
+ self,
6042
+ list_deployments_request: "ListDeploymentsRequest",
6043
+ *,
6044
+ timeout: Optional[float] = None,
6045
+ deadline: Optional["Deadline"] = None,
6046
+ metadata: Optional["MetadataLike"] = None
6047
+ ) -> "ListDeploymentsResponse":
6048
+ return await self._unary_unary(
6049
+ "/portal.v1.Deploy/ListDeployments",
6050
+ list_deployments_request,
6051
+ ListDeploymentsResponse,
6052
+ timeout=timeout,
6053
+ deadline=deadline,
6054
+ metadata=metadata,
6055
+ )
6056
+
6057
+
5868
6058
  class WorkspaceBase(ServiceBase):
5869
6059
 
5870
6060
  async def activate_user(
@@ -8637,3 +8827,86 @@ class KeyValueBase(ServiceBase):
8637
8827
  KvArtifactDeleteResponse,
8638
8828
  ),
8639
8829
  }
8830
+
8831
+
8832
+ class DeployBase(ServiceBase):
8833
+
8834
+ async def create_deployment(
8835
+ self, create_deployment_request: "CreateDeploymentRequest"
8836
+ ) -> "CreateDeploymentResponse":
8837
+ raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
8838
+
8839
+ async def get_deployment_status(
8840
+ self, get_deployment_status_request: "GetDeploymentStatusRequest"
8841
+ ) -> "GetDeploymentStatusResponse":
8842
+ raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
8843
+
8844
+ async def cancel_deployment(
8845
+ self, cancel_deployment_request: "CancelDeploymentRequest"
8846
+ ) -> "CancelDeploymentResponse":
8847
+ raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
8848
+
8849
+ async def list_deployments(
8850
+ self, list_deployments_request: "ListDeploymentsRequest"
8851
+ ) -> "ListDeploymentsResponse":
8852
+ raise grpclib.GRPCError(grpclib.const.Status.UNIMPLEMENTED)
8853
+
8854
+ async def __rpc_create_deployment(
8855
+ self,
8856
+ stream: "grpclib.server.Stream[CreateDeploymentRequest, CreateDeploymentResponse]",
8857
+ ) -> None:
8858
+ request = await stream.recv_message()
8859
+ response = await self.create_deployment(request)
8860
+ await stream.send_message(response)
8861
+
8862
+ async def __rpc_get_deployment_status(
8863
+ self,
8864
+ stream: "grpclib.server.Stream[GetDeploymentStatusRequest, GetDeploymentStatusResponse]",
8865
+ ) -> None:
8866
+ request = await stream.recv_message()
8867
+ response = await self.get_deployment_status(request)
8868
+ await stream.send_message(response)
8869
+
8870
+ async def __rpc_cancel_deployment(
8871
+ self,
8872
+ stream: "grpclib.server.Stream[CancelDeploymentRequest, CancelDeploymentResponse]",
8873
+ ) -> None:
8874
+ request = await stream.recv_message()
8875
+ response = await self.cancel_deployment(request)
8876
+ await stream.send_message(response)
8877
+
8878
+ async def __rpc_list_deployments(
8879
+ self,
8880
+ stream: "grpclib.server.Stream[ListDeploymentsRequest, ListDeploymentsResponse]",
8881
+ ) -> None:
8882
+ request = await stream.recv_message()
8883
+ response = await self.list_deployments(request)
8884
+ await stream.send_message(response)
8885
+
8886
+ def __mapping__(self) -> Dict[str, grpclib.const.Handler]:
8887
+ return {
8888
+ "/portal.v1.Deploy/CreateDeployment": grpclib.const.Handler(
8889
+ self.__rpc_create_deployment,
8890
+ grpclib.const.Cardinality.UNARY_UNARY,
8891
+ CreateDeploymentRequest,
8892
+ CreateDeploymentResponse,
8893
+ ),
8894
+ "/portal.v1.Deploy/GetDeploymentStatus": grpclib.const.Handler(
8895
+ self.__rpc_get_deployment_status,
8896
+ grpclib.const.Cardinality.UNARY_UNARY,
8897
+ GetDeploymentStatusRequest,
8898
+ GetDeploymentStatusResponse,
8899
+ ),
8900
+ "/portal.v1.Deploy/CancelDeployment": grpclib.const.Handler(
8901
+ self.__rpc_cancel_deployment,
8902
+ grpclib.const.Cardinality.UNARY_UNARY,
8903
+ CancelDeploymentRequest,
8904
+ CancelDeploymentResponse,
8905
+ ),
8906
+ "/portal.v1.Deploy/ListDeployments": grpclib.const.Handler(
8907
+ self.__rpc_list_deployments,
8908
+ grpclib.const.Cardinality.UNARY_UNARY,
8909
+ ListDeploymentsRequest,
8910
+ ListDeploymentsResponse,
8911
+ ),
8912
+ }
@@ -1,8 +1,8 @@
1
1
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # sources: mergetb/xir/v0.3/core.proto
2
+ # sources: mergetb/xir/pb/core.proto
3
3
  # plugin: python-betterproto
4
4
  # This file has been @generated
5
-
5
+ import warnings
6
6
  from dataclasses import dataclass
7
7
  from typing import (
8
8
  Dict,
@@ -310,7 +310,7 @@ class Capability(betterproto.Enum):
310
310
 
311
311
 
312
312
  class LinkRole(betterproto.Enum):
313
- LinkRole_Unspecified = 0
313
+ Unspecified = 0
314
314
  InfraLink = 1
315
315
  XpLink = 2
316
316
  Tor = 3
@@ -319,6 +319,9 @@ class LinkRole(betterproto.Enum):
319
319
  GatewayLink = 6
320
320
  SimLink = 7
321
321
  HarborEndpoint = 8
322
+ InternalLink = 9
323
+ BorderGatewayLink = 10
324
+ WireguardLink = 11
322
325
 
323
326
 
324
327
  class DiskRole(betterproto.Enum):
@@ -437,6 +440,7 @@ class Node(betterproto.Message):
437
440
 
438
441
  host: "StringConstraint" = betterproto.message_field(14)
439
442
  tags: "SetConstraint" = betterproto.message_field(15)
443
+ facility: "StringConstraint" = betterproto.message_field(16)
440
444
 
441
445
 
442
446
  @dataclass(eq=False, repr=False)
@@ -571,7 +575,7 @@ class Resource(betterproto.Message):
571
575
  firmware: "Firmware" = betterproto.message_field(9)
572
576
  os: "OsConfig" = betterproto.message_field(10)
573
577
  product_info: "ProductInfo" = betterproto.message_field(11)
574
- tpa: int = betterproto.uint64_field(12)
578
+ rlz_ordering: int = betterproto.uint64_field(12)
575
579
  ipmi: "Bmc" = betterproto.message_field(13, group="power_control")
576
580
  relayboard: "RelayBoard" = betterproto.message_field(14, group="power_control")
577
581
  pdu: "PowerDistributionUnit" = betterproto.message_field(15, group="power_control")
@@ -582,6 +586,7 @@ class Resource(betterproto.Message):
582
586
  )
583
587
  realization_tags: List[str] = betterproto.string_field(19)
584
588
  capabilities: List["Capability"] = betterproto.enum_field(20)
589
+ bgp_id: int = betterproto.uint32_field(21)
585
590
 
586
591
 
587
592
  @dataclass(eq=False, repr=False)
@@ -695,6 +700,7 @@ class BgpRouterConfig(betterproto.Message):
695
700
  asn: int = betterproto.uint32_field(2)
696
701
  interfaces: List["InterfaceConfig"] = betterproto.message_field(3)
697
702
  evpn: "EvpnConfig" = betterproto.message_field(4)
703
+ router_id: str = betterproto.string_field(5)
698
704
 
699
705
 
700
706
  @dataclass(eq=False, repr=False)
@@ -758,12 +764,19 @@ class Port(betterproto.Message):
758
764
  form_factor: "ConnectorKind" = betterproto.enum_field(6)
759
765
  connector: "Ref" = betterproto.message_field(7)
760
766
  role: "LinkRole" = betterproto.enum_field(8)
761
- tpa: int = betterproto.uint64_field(9)
767
+ rlz_ordering: int = betterproto.uint64_field(9)
762
768
  queues: int = betterproto.uint64_field(10)
763
769
  breakout: "Breakout" = betterproto.message_field(11)
764
770
  bond: "PortBond" = betterproto.message_field(12)
765
771
  name: str = betterproto.string_field(13)
766
772
  sriov: "Sriov" = betterproto.message_field(14)
773
+ roles: List["LinkRole"] = betterproto.enum_field(15)
774
+ bridge: str = betterproto.string_field(16)
775
+
776
+ def __post_init__(self) -> None:
777
+ super().__post_init__()
778
+ if self.is_set("role"):
779
+ warnings.warn("Port.role is deprecated", DeprecationWarning)
767
780
 
768
781
 
769
782
  @dataclass(eq=False, repr=False)
@@ -816,6 +829,7 @@ class Cable(betterproto.Message):
816
829
  kind: "CableKind" = betterproto.enum_field(3)
817
830
  ends: List["End"] = betterproto.message_field(4)
818
831
  product_info: "ProductInfo" = betterproto.message_field(5)
832
+ remote_facility: str = betterproto.string_field(6)
819
833
 
820
834
 
821
835
  @dataclass(eq=False, repr=False)
@@ -855,6 +869,8 @@ class FacilityProperties(betterproto.Message):
855
869
  """Non-key-value properties"""
856
870
 
857
871
  standard_images: List[str] = betterproto.string_field(4)
872
+ facility_bgp_ids: List[int] = betterproto.uint32_field(5)
873
+ xir_version: str = betterproto.string_field(6)
858
874
 
859
875
 
860
876
  @dataclass(eq=False, repr=False)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mergetbapi
3
- Version: 1.3.51
3
+ Version: 1.4.0
4
4
  Summary: Client interface to the MergeTB API
5
5
  Home-page: https://gitlab.com/mergetb/api
6
6
  Author: Brian Kocoloski
File without changes
File without changes
File without changes
File without changes