stackit-vpn 0.1.0__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.
- src/stackit/vpn/__init__.py +145 -0
- src/stackit/vpn/api/__init__.py +4 -0
- src/stackit/vpn/api/default_api.py +3947 -0
- src/stackit/vpn/api_client.py +652 -0
- src/stackit/vpn/api_response.py +23 -0
- src/stackit/vpn/configuration.py +164 -0
- src/stackit/vpn/exceptions.py +217 -0
- src/stackit/vpn/models/__init__.py +58 -0
- src/stackit/vpn/models/api_error.py +104 -0
- src/stackit/vpn/models/api_error_detail.py +99 -0
- src/stackit/vpn/models/api_error_response.py +86 -0
- src/stackit/vpn/models/bgp_gateway_config.py +94 -0
- src/stackit/vpn/models/bgp_status.py +112 -0
- src/stackit/vpn/models/bgp_status_peers.py +97 -0
- src/stackit/vpn/models/bgp_status_routes.py +93 -0
- src/stackit/vpn/models/bgp_tunnel_config.py +84 -0
- src/stackit/vpn/models/connection_list.py +98 -0
- src/stackit/vpn/models/connection_response.py +149 -0
- src/stackit/vpn/models/connection_status_response.py +113 -0
- src/stackit/vpn/models/create_gateway_connection_payload.py +139 -0
- src/stackit/vpn/models/create_vpn_gateway_payload.py +124 -0
- src/stackit/vpn/models/create_vpn_gateway_payload_availability_zones.py +82 -0
- src/stackit/vpn/models/gateway.py +124 -0
- src/stackit/vpn/models/gateway_list.py +98 -0
- src/stackit/vpn/models/gateway_response.py +144 -0
- src/stackit/vpn/models/gateway_status.py +38 -0
- src/stackit/vpn/models/gateway_status_response.py +122 -0
- src/stackit/vpn/models/peering_config.py +103 -0
- src/stackit/vpn/models/phase.py +122 -0
- src/stackit/vpn/models/phase1_status.py +99 -0
- src/stackit/vpn/models/phase2_status.py +143 -0
- src/stackit/vpn/models/plan.py +101 -0
- src/stackit/vpn/models/plan_list.py +98 -0
- src/stackit/vpn/models/quota.py +82 -0
- src/stackit/vpn/models/quota_list.py +88 -0
- src/stackit/vpn/models/quota_list_response.py +88 -0
- src/stackit/vpn/models/region.py +36 -0
- src/stackit/vpn/models/routing_type.py +37 -0
- src/stackit/vpn/models/tunnel_configuration.py +124 -0
- src/stackit/vpn/models/tunnel_configuration_phase1.py +126 -0
- src/stackit/vpn/models/tunnel_configuration_phase2.py +165 -0
- src/stackit/vpn/models/tunnel_status.py +110 -0
- src/stackit/vpn/models/update_gateway_connection_payload.py +139 -0
- src/stackit/vpn/models/update_vpn_gateway_payload.py +124 -0
- src/stackit/vpn/models/vpn_tunnels.py +114 -0
- src/stackit/vpn/py.typed +0 -0
- src/stackit/vpn/rest.py +164 -0
- stackit_vpn-0.1.0.dist-info/METADATA +53 -0
- stackit_vpn-0.1.0.dist-info/RECORD +52 -0
- stackit_vpn-0.1.0.dist-info/WHEEL +4 -0
- stackit_vpn-0.1.0.dist-info/licenses/LICENSE.md +201 -0
- stackit_vpn-0.1.0.dist-info/licenses/NOTICE.txt +2 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
STACKIT VPN API
|
|
5
|
+
|
|
6
|
+
Provision and manage STACKIT VPN gateways. Use this API to establish secure, encrypted IPsec tunnels between your STACKIT Network Area (SNA) and external networks. The service supports the following routing architectures: - Policy-based IPsec - Static route-based IPsec - Dynamic BGP IPsec
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1beta1
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import json
|
|
17
|
+
import pprint
|
|
18
|
+
from typing import Any, ClassVar, Dict, List, Optional, Set
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict
|
|
21
|
+
from typing_extensions import Self
|
|
22
|
+
|
|
23
|
+
from stackit.vpn.models.api_error import APIError
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class APIErrorResponse(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
APIErrorResponse
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
|
|
31
|
+
error: APIError
|
|
32
|
+
__properties: ClassVar[List[str]] = ["error"]
|
|
33
|
+
|
|
34
|
+
model_config = ConfigDict(
|
|
35
|
+
populate_by_name=True,
|
|
36
|
+
validate_assignment=True,
|
|
37
|
+
protected_namespaces=(),
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
def to_str(self) -> str:
|
|
41
|
+
"""Returns the string representation of the model using alias"""
|
|
42
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
43
|
+
|
|
44
|
+
def to_json(self) -> str:
|
|
45
|
+
"""Returns the JSON representation of the model using alias"""
|
|
46
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
47
|
+
return json.dumps(self.to_dict())
|
|
48
|
+
|
|
49
|
+
@classmethod
|
|
50
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
51
|
+
"""Create an instance of APIErrorResponse from a JSON string"""
|
|
52
|
+
return cls.from_dict(json.loads(json_str))
|
|
53
|
+
|
|
54
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
55
|
+
"""Return the dictionary representation of the model using alias.
|
|
56
|
+
|
|
57
|
+
This has the following differences from calling pydantic's
|
|
58
|
+
`self.model_dump(by_alias=True)`:
|
|
59
|
+
|
|
60
|
+
* `None` is only added to the output dict for nullable fields that
|
|
61
|
+
were set at model initialization. Other fields with value `None`
|
|
62
|
+
are ignored.
|
|
63
|
+
"""
|
|
64
|
+
excluded_fields: Set[str] = set([])
|
|
65
|
+
|
|
66
|
+
_dict = self.model_dump(
|
|
67
|
+
by_alias=True,
|
|
68
|
+
exclude=excluded_fields,
|
|
69
|
+
exclude_none=True,
|
|
70
|
+
)
|
|
71
|
+
# override the default output from pydantic by calling `to_dict()` of error
|
|
72
|
+
if self.error:
|
|
73
|
+
_dict["error"] = self.error.to_dict()
|
|
74
|
+
return _dict
|
|
75
|
+
|
|
76
|
+
@classmethod
|
|
77
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
78
|
+
"""Create an instance of APIErrorResponse from a dict"""
|
|
79
|
+
if obj is None:
|
|
80
|
+
return None
|
|
81
|
+
|
|
82
|
+
if not isinstance(obj, dict):
|
|
83
|
+
return cls.model_validate(obj)
|
|
84
|
+
|
|
85
|
+
_obj = cls.model_validate({"error": APIError.from_dict(obj["error"]) if obj.get("error") is not None else None})
|
|
86
|
+
return _obj
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
STACKIT VPN API
|
|
5
|
+
|
|
6
|
+
Provision and manage STACKIT VPN gateways. Use this API to establish secure, encrypted IPsec tunnels between your STACKIT Network Area (SNA) and external networks. The service supports the following routing architectures: - Policy-based IPsec - Static route-based IPsec - Dynamic BGP IPsec
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1beta1
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import json
|
|
17
|
+
import pprint
|
|
18
|
+
from typing import Any, ClassVar, Dict, List, Optional, Set
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
21
|
+
from typing_extensions import Annotated, Self
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class BGPGatewayConfig(BaseModel):
|
|
25
|
+
"""
|
|
26
|
+
BGP configuration effects all connections. (only for routingMode=BGP_ROUTE_BASED)
|
|
27
|
+
""" # noqa: E501
|
|
28
|
+
|
|
29
|
+
local_asn: Optional[Annotated[int, Field(le=4294967294, strict=True, ge=64512)]] = Field(
|
|
30
|
+
default=None,
|
|
31
|
+
description="ASN for private use (reserved by IANA), both 16Bit and 32Bit ranges are valid (RFC 6996). ",
|
|
32
|
+
alias="localAsn",
|
|
33
|
+
)
|
|
34
|
+
override_advertised_routes: Optional[Annotated[List[Annotated[str, Field(strict=True)]], Field(max_length=100)]] = (
|
|
35
|
+
Field(
|
|
36
|
+
default=None,
|
|
37
|
+
description="A list of IPv4 Prefixes to advertise via BGP. If omitted, the SNA network ranges will be advertised. ",
|
|
38
|
+
alias="overrideAdvertisedRoutes",
|
|
39
|
+
)
|
|
40
|
+
)
|
|
41
|
+
__properties: ClassVar[List[str]] = ["localAsn", "overrideAdvertisedRoutes"]
|
|
42
|
+
|
|
43
|
+
model_config = ConfigDict(
|
|
44
|
+
populate_by_name=True,
|
|
45
|
+
validate_assignment=True,
|
|
46
|
+
protected_namespaces=(),
|
|
47
|
+
)
|
|
48
|
+
|
|
49
|
+
def to_str(self) -> str:
|
|
50
|
+
"""Returns the string representation of the model using alias"""
|
|
51
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
52
|
+
|
|
53
|
+
def to_json(self) -> str:
|
|
54
|
+
"""Returns the JSON representation of the model using alias"""
|
|
55
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
56
|
+
return json.dumps(self.to_dict())
|
|
57
|
+
|
|
58
|
+
@classmethod
|
|
59
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
60
|
+
"""Create an instance of BGPGatewayConfig from a JSON string"""
|
|
61
|
+
return cls.from_dict(json.loads(json_str))
|
|
62
|
+
|
|
63
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
64
|
+
"""Return the dictionary representation of the model using alias.
|
|
65
|
+
|
|
66
|
+
This has the following differences from calling pydantic's
|
|
67
|
+
`self.model_dump(by_alias=True)`:
|
|
68
|
+
|
|
69
|
+
* `None` is only added to the output dict for nullable fields that
|
|
70
|
+
were set at model initialization. Other fields with value `None`
|
|
71
|
+
are ignored.
|
|
72
|
+
"""
|
|
73
|
+
excluded_fields: Set[str] = set([])
|
|
74
|
+
|
|
75
|
+
_dict = self.model_dump(
|
|
76
|
+
by_alias=True,
|
|
77
|
+
exclude=excluded_fields,
|
|
78
|
+
exclude_none=True,
|
|
79
|
+
)
|
|
80
|
+
return _dict
|
|
81
|
+
|
|
82
|
+
@classmethod
|
|
83
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
84
|
+
"""Create an instance of BGPGatewayConfig from a dict"""
|
|
85
|
+
if obj is None:
|
|
86
|
+
return None
|
|
87
|
+
|
|
88
|
+
if not isinstance(obj, dict):
|
|
89
|
+
return cls.model_validate(obj)
|
|
90
|
+
|
|
91
|
+
_obj = cls.model_validate(
|
|
92
|
+
{"localAsn": obj.get("localAsn"), "overrideAdvertisedRoutes": obj.get("overrideAdvertisedRoutes")}
|
|
93
|
+
)
|
|
94
|
+
return _obj
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
STACKIT VPN API
|
|
5
|
+
|
|
6
|
+
Provision and manage STACKIT VPN gateways. Use this API to establish secure, encrypted IPsec tunnels between your STACKIT Network Area (SNA) and external networks. The service supports the following routing architectures: - Policy-based IPsec - Static route-based IPsec - Dynamic BGP IPsec
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1beta1
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import json
|
|
17
|
+
import pprint
|
|
18
|
+
from typing import Any, ClassVar, Dict, List, Optional, Set
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict
|
|
21
|
+
from typing_extensions import Self
|
|
22
|
+
|
|
23
|
+
from stackit.vpn.models.bgp_status_peers import BGPStatusPeers
|
|
24
|
+
from stackit.vpn.models.bgp_status_routes import BGPStatusRoutes
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class BGPStatus(BaseModel):
|
|
28
|
+
"""
|
|
29
|
+
BGPStatus
|
|
30
|
+
""" # noqa: E501
|
|
31
|
+
|
|
32
|
+
peers: Optional[List[BGPStatusPeers]] = None
|
|
33
|
+
routes: Optional[List[BGPStatusRoutes]] = None
|
|
34
|
+
__properties: ClassVar[List[str]] = ["peers", "routes"]
|
|
35
|
+
|
|
36
|
+
model_config = ConfigDict(
|
|
37
|
+
populate_by_name=True,
|
|
38
|
+
validate_assignment=True,
|
|
39
|
+
protected_namespaces=(),
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
def to_str(self) -> str:
|
|
43
|
+
"""Returns the string representation of the model using alias"""
|
|
44
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
45
|
+
|
|
46
|
+
def to_json(self) -> str:
|
|
47
|
+
"""Returns the JSON representation of the model using alias"""
|
|
48
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
49
|
+
return json.dumps(self.to_dict())
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
+
"""Create an instance of BGPStatus from a JSON string"""
|
|
54
|
+
return cls.from_dict(json.loads(json_str))
|
|
55
|
+
|
|
56
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
57
|
+
"""Return the dictionary representation of the model using alias.
|
|
58
|
+
|
|
59
|
+
This has the following differences from calling pydantic's
|
|
60
|
+
`self.model_dump(by_alias=True)`:
|
|
61
|
+
|
|
62
|
+
* `None` is only added to the output dict for nullable fields that
|
|
63
|
+
were set at model initialization. Other fields with value `None`
|
|
64
|
+
are ignored.
|
|
65
|
+
"""
|
|
66
|
+
excluded_fields: Set[str] = set([])
|
|
67
|
+
|
|
68
|
+
_dict = self.model_dump(
|
|
69
|
+
by_alias=True,
|
|
70
|
+
exclude=excluded_fields,
|
|
71
|
+
exclude_none=True,
|
|
72
|
+
)
|
|
73
|
+
# override the default output from pydantic by calling `to_dict()` of each item in peers (list)
|
|
74
|
+
_items = []
|
|
75
|
+
if self.peers:
|
|
76
|
+
for _item_peers in self.peers:
|
|
77
|
+
if _item_peers:
|
|
78
|
+
_items.append(_item_peers.to_dict())
|
|
79
|
+
_dict["peers"] = _items
|
|
80
|
+
# override the default output from pydantic by calling `to_dict()` of each item in routes (list)
|
|
81
|
+
_items = []
|
|
82
|
+
if self.routes:
|
|
83
|
+
for _item_routes in self.routes:
|
|
84
|
+
if _item_routes:
|
|
85
|
+
_items.append(_item_routes.to_dict())
|
|
86
|
+
_dict["routes"] = _items
|
|
87
|
+
return _dict
|
|
88
|
+
|
|
89
|
+
@classmethod
|
|
90
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
91
|
+
"""Create an instance of BGPStatus from a dict"""
|
|
92
|
+
if obj is None:
|
|
93
|
+
return None
|
|
94
|
+
|
|
95
|
+
if not isinstance(obj, dict):
|
|
96
|
+
return cls.model_validate(obj)
|
|
97
|
+
|
|
98
|
+
_obj = cls.model_validate(
|
|
99
|
+
{
|
|
100
|
+
"peers": (
|
|
101
|
+
[BGPStatusPeers.from_dict(_item) for _item in obj["peers"]]
|
|
102
|
+
if obj.get("peers") is not None
|
|
103
|
+
else None
|
|
104
|
+
),
|
|
105
|
+
"routes": (
|
|
106
|
+
[BGPStatusRoutes.from_dict(_item) for _item in obj["routes"]]
|
|
107
|
+
if obj.get("routes") is not None
|
|
108
|
+
else None
|
|
109
|
+
),
|
|
110
|
+
}
|
|
111
|
+
)
|
|
112
|
+
return _obj
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
STACKIT VPN API
|
|
5
|
+
|
|
6
|
+
Provision and manage STACKIT VPN gateways. Use this API to establish secure, encrypted IPsec tunnels between your STACKIT Network Area (SNA) and external networks. The service supports the following routing architectures: - Policy-based IPsec - Static route-based IPsec - Dynamic BGP IPsec
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1beta1
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import json
|
|
17
|
+
import pprint
|
|
18
|
+
from typing import Any, ClassVar, Dict, List, Optional, Set
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
|
|
21
|
+
from typing_extensions import Self
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class BGPStatusPeers(BaseModel):
|
|
25
|
+
"""
|
|
26
|
+
BGPStatusPeers
|
|
27
|
+
""" # noqa: E501
|
|
28
|
+
|
|
29
|
+
local_as: StrictInt = Field(description="The ASN of the local STACKIT gateway.", alias="localAs")
|
|
30
|
+
peer_uptime: StrictStr = Field(description="Duration the session has been established", alias="peerUptime")
|
|
31
|
+
pfx_rcd: StrictInt = Field(description="Count of prefixes received from the neighbor.", alias="pfxRcd")
|
|
32
|
+
pfx_snt: StrictInt = Field(description="Count of prefixes advertised to the neighbor.", alias="pfxSnt")
|
|
33
|
+
remote_as: StrictInt = Field(description="The ASN of the remote neighbor.", alias="remoteAs")
|
|
34
|
+
remote_ip: StrictStr = Field(description="The IP address of the remote BGP neighbor.", alias="remoteIP")
|
|
35
|
+
state: StrictStr = Field(description="The current BGP session state.")
|
|
36
|
+
__properties: ClassVar[List[str]] = ["localAs", "peerUptime", "pfxRcd", "pfxSnt", "remoteAs", "remoteIP", "state"]
|
|
37
|
+
|
|
38
|
+
model_config = ConfigDict(
|
|
39
|
+
populate_by_name=True,
|
|
40
|
+
validate_assignment=True,
|
|
41
|
+
protected_namespaces=(),
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
def to_str(self) -> str:
|
|
45
|
+
"""Returns the string representation of the model using alias"""
|
|
46
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
47
|
+
|
|
48
|
+
def to_json(self) -> str:
|
|
49
|
+
"""Returns the JSON representation of the model using alias"""
|
|
50
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
51
|
+
return json.dumps(self.to_dict())
|
|
52
|
+
|
|
53
|
+
@classmethod
|
|
54
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
55
|
+
"""Create an instance of BGPStatusPeers from a JSON string"""
|
|
56
|
+
return cls.from_dict(json.loads(json_str))
|
|
57
|
+
|
|
58
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
59
|
+
"""Return the dictionary representation of the model using alias.
|
|
60
|
+
|
|
61
|
+
This has the following differences from calling pydantic's
|
|
62
|
+
`self.model_dump(by_alias=True)`:
|
|
63
|
+
|
|
64
|
+
* `None` is only added to the output dict for nullable fields that
|
|
65
|
+
were set at model initialization. Other fields with value `None`
|
|
66
|
+
are ignored.
|
|
67
|
+
"""
|
|
68
|
+
excluded_fields: Set[str] = set([])
|
|
69
|
+
|
|
70
|
+
_dict = self.model_dump(
|
|
71
|
+
by_alias=True,
|
|
72
|
+
exclude=excluded_fields,
|
|
73
|
+
exclude_none=True,
|
|
74
|
+
)
|
|
75
|
+
return _dict
|
|
76
|
+
|
|
77
|
+
@classmethod
|
|
78
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
79
|
+
"""Create an instance of BGPStatusPeers from a dict"""
|
|
80
|
+
if obj is None:
|
|
81
|
+
return None
|
|
82
|
+
|
|
83
|
+
if not isinstance(obj, dict):
|
|
84
|
+
return cls.model_validate(obj)
|
|
85
|
+
|
|
86
|
+
_obj = cls.model_validate(
|
|
87
|
+
{
|
|
88
|
+
"localAs": obj.get("localAs"),
|
|
89
|
+
"peerUptime": obj.get("peerUptime"),
|
|
90
|
+
"pfxRcd": obj.get("pfxRcd"),
|
|
91
|
+
"pfxSnt": obj.get("pfxSnt"),
|
|
92
|
+
"remoteAs": obj.get("remoteAs"),
|
|
93
|
+
"remoteIP": obj.get("remoteIP"),
|
|
94
|
+
"state": obj.get("state"),
|
|
95
|
+
}
|
|
96
|
+
)
|
|
97
|
+
return _obj
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
STACKIT VPN API
|
|
5
|
+
|
|
6
|
+
Provision and manage STACKIT VPN gateways. Use this API to establish secure, encrypted IPsec tunnels between your STACKIT Network Area (SNA) and external networks. The service supports the following routing architectures: - Policy-based IPsec - Static route-based IPsec - Dynamic BGP IPsec
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1beta1
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import json
|
|
17
|
+
import pprint
|
|
18
|
+
from typing import Any, ClassVar, Dict, List, Optional, Set
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
|
|
21
|
+
from typing_extensions import Self
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class BGPStatusRoutes(BaseModel):
|
|
25
|
+
"""
|
|
26
|
+
BGPStatusRoutes
|
|
27
|
+
""" # noqa: E501
|
|
28
|
+
|
|
29
|
+
network: StrictStr = Field(description="The destination network")
|
|
30
|
+
origin: StrictStr
|
|
31
|
+
path: StrictStr = Field(description="The AS-PATH")
|
|
32
|
+
peer_id: StrictStr = Field(description="BGP Router ID of the neighbor that advertised this route", alias="peerId")
|
|
33
|
+
weight: StrictInt
|
|
34
|
+
__properties: ClassVar[List[str]] = ["network", "origin", "path", "peerId", "weight"]
|
|
35
|
+
|
|
36
|
+
model_config = ConfigDict(
|
|
37
|
+
populate_by_name=True,
|
|
38
|
+
validate_assignment=True,
|
|
39
|
+
protected_namespaces=(),
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
def to_str(self) -> str:
|
|
43
|
+
"""Returns the string representation of the model using alias"""
|
|
44
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
45
|
+
|
|
46
|
+
def to_json(self) -> str:
|
|
47
|
+
"""Returns the JSON representation of the model using alias"""
|
|
48
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
49
|
+
return json.dumps(self.to_dict())
|
|
50
|
+
|
|
51
|
+
@classmethod
|
|
52
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
53
|
+
"""Create an instance of BGPStatusRoutes from a JSON string"""
|
|
54
|
+
return cls.from_dict(json.loads(json_str))
|
|
55
|
+
|
|
56
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
57
|
+
"""Return the dictionary representation of the model using alias.
|
|
58
|
+
|
|
59
|
+
This has the following differences from calling pydantic's
|
|
60
|
+
`self.model_dump(by_alias=True)`:
|
|
61
|
+
|
|
62
|
+
* `None` is only added to the output dict for nullable fields that
|
|
63
|
+
were set at model initialization. Other fields with value `None`
|
|
64
|
+
are ignored.
|
|
65
|
+
"""
|
|
66
|
+
excluded_fields: Set[str] = set([])
|
|
67
|
+
|
|
68
|
+
_dict = self.model_dump(
|
|
69
|
+
by_alias=True,
|
|
70
|
+
exclude=excluded_fields,
|
|
71
|
+
exclude_none=True,
|
|
72
|
+
)
|
|
73
|
+
return _dict
|
|
74
|
+
|
|
75
|
+
@classmethod
|
|
76
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
77
|
+
"""Create an instance of BGPStatusRoutes from a dict"""
|
|
78
|
+
if obj is None:
|
|
79
|
+
return None
|
|
80
|
+
|
|
81
|
+
if not isinstance(obj, dict):
|
|
82
|
+
return cls.model_validate(obj)
|
|
83
|
+
|
|
84
|
+
_obj = cls.model_validate(
|
|
85
|
+
{
|
|
86
|
+
"network": obj.get("network"),
|
|
87
|
+
"origin": obj.get("origin"),
|
|
88
|
+
"path": obj.get("path"),
|
|
89
|
+
"peerId": obj.get("peerId"),
|
|
90
|
+
"weight": obj.get("weight"),
|
|
91
|
+
}
|
|
92
|
+
)
|
|
93
|
+
return _obj
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
STACKIT VPN API
|
|
5
|
+
|
|
6
|
+
Provision and manage STACKIT VPN gateways. Use this API to establish secure, encrypted IPsec tunnels between your STACKIT Network Area (SNA) and external networks. The service supports the following routing architectures: - Policy-based IPsec - Static route-based IPsec - Dynamic BGP IPsec
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1beta1
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import json
|
|
17
|
+
import pprint
|
|
18
|
+
from typing import Any, ClassVar, Dict, List, Optional, Set
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict, Field
|
|
21
|
+
from typing_extensions import Annotated, Self
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
class BGPTunnelConfig(BaseModel):
|
|
25
|
+
"""
|
|
26
|
+
BGPTunnelConfig
|
|
27
|
+
""" # noqa: E501
|
|
28
|
+
|
|
29
|
+
remote_asn: Annotated[int, Field(le=4294967294, strict=True, ge=64512)] = Field(
|
|
30
|
+
description="ASN for private use (reserved by IANA), both 16Bit and 32Bit ranges are valid (RFC 6996). ",
|
|
31
|
+
alias="remoteAsn",
|
|
32
|
+
)
|
|
33
|
+
__properties: ClassVar[List[str]] = ["remoteAsn"]
|
|
34
|
+
|
|
35
|
+
model_config = ConfigDict(
|
|
36
|
+
populate_by_name=True,
|
|
37
|
+
validate_assignment=True,
|
|
38
|
+
protected_namespaces=(),
|
|
39
|
+
)
|
|
40
|
+
|
|
41
|
+
def to_str(self) -> str:
|
|
42
|
+
"""Returns the string representation of the model using alias"""
|
|
43
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
44
|
+
|
|
45
|
+
def to_json(self) -> str:
|
|
46
|
+
"""Returns the JSON representation of the model using alias"""
|
|
47
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
48
|
+
return json.dumps(self.to_dict())
|
|
49
|
+
|
|
50
|
+
@classmethod
|
|
51
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
52
|
+
"""Create an instance of BGPTunnelConfig from a JSON string"""
|
|
53
|
+
return cls.from_dict(json.loads(json_str))
|
|
54
|
+
|
|
55
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
56
|
+
"""Return the dictionary representation of the model using alias.
|
|
57
|
+
|
|
58
|
+
This has the following differences from calling pydantic's
|
|
59
|
+
`self.model_dump(by_alias=True)`:
|
|
60
|
+
|
|
61
|
+
* `None` is only added to the output dict for nullable fields that
|
|
62
|
+
were set at model initialization. Other fields with value `None`
|
|
63
|
+
are ignored.
|
|
64
|
+
"""
|
|
65
|
+
excluded_fields: Set[str] = set([])
|
|
66
|
+
|
|
67
|
+
_dict = self.model_dump(
|
|
68
|
+
by_alias=True,
|
|
69
|
+
exclude=excluded_fields,
|
|
70
|
+
exclude_none=True,
|
|
71
|
+
)
|
|
72
|
+
return _dict
|
|
73
|
+
|
|
74
|
+
@classmethod
|
|
75
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
76
|
+
"""Create an instance of BGPTunnelConfig from a dict"""
|
|
77
|
+
if obj is None:
|
|
78
|
+
return None
|
|
79
|
+
|
|
80
|
+
if not isinstance(obj, dict):
|
|
81
|
+
return cls.model_validate(obj)
|
|
82
|
+
|
|
83
|
+
_obj = cls.model_validate({"remoteAsn": obj.get("remoteAsn")})
|
|
84
|
+
return _obj
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
"""
|
|
4
|
+
STACKIT VPN API
|
|
5
|
+
|
|
6
|
+
Provision and manage STACKIT VPN gateways. Use this API to establish secure, encrypted IPsec tunnels between your STACKIT Network Area (SNA) and external networks. The service supports the following routing architectures: - Policy-based IPsec - Static route-based IPsec - Dynamic BGP IPsec
|
|
7
|
+
|
|
8
|
+
The version of the OpenAPI document: 1beta1
|
|
9
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
10
|
+
|
|
11
|
+
Do not edit the class manually.
|
|
12
|
+
""" # noqa: E501
|
|
13
|
+
|
|
14
|
+
from __future__ import annotations
|
|
15
|
+
|
|
16
|
+
import json
|
|
17
|
+
import pprint
|
|
18
|
+
from typing import Any, ClassVar, Dict, List, Optional, Set
|
|
19
|
+
|
|
20
|
+
from pydantic import BaseModel, ConfigDict
|
|
21
|
+
from typing_extensions import Self
|
|
22
|
+
|
|
23
|
+
from stackit.vpn.models.connection_response import ConnectionResponse
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class ConnectionList(BaseModel):
|
|
27
|
+
"""
|
|
28
|
+
ConnectionList
|
|
29
|
+
""" # noqa: E501
|
|
30
|
+
|
|
31
|
+
connections: List[ConnectionResponse]
|
|
32
|
+
__properties: ClassVar[List[str]] = ["connections"]
|
|
33
|
+
|
|
34
|
+
model_config = ConfigDict(
|
|
35
|
+
populate_by_name=True,
|
|
36
|
+
validate_assignment=True,
|
|
37
|
+
protected_namespaces=(),
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
def to_str(self) -> str:
|
|
41
|
+
"""Returns the string representation of the model using alias"""
|
|
42
|
+
return pprint.pformat(self.model_dump(by_alias=True))
|
|
43
|
+
|
|
44
|
+
def to_json(self) -> str:
|
|
45
|
+
"""Returns the JSON representation of the model using alias"""
|
|
46
|
+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
|
|
47
|
+
return json.dumps(self.to_dict())
|
|
48
|
+
|
|
49
|
+
@classmethod
|
|
50
|
+
def from_json(cls, json_str: str) -> Optional[Self]:
|
|
51
|
+
"""Create an instance of ConnectionList from a JSON string"""
|
|
52
|
+
return cls.from_dict(json.loads(json_str))
|
|
53
|
+
|
|
54
|
+
def to_dict(self) -> Dict[str, Any]:
|
|
55
|
+
"""Return the dictionary representation of the model using alias.
|
|
56
|
+
|
|
57
|
+
This has the following differences from calling pydantic's
|
|
58
|
+
`self.model_dump(by_alias=True)`:
|
|
59
|
+
|
|
60
|
+
* `None` is only added to the output dict for nullable fields that
|
|
61
|
+
were set at model initialization. Other fields with value `None`
|
|
62
|
+
are ignored.
|
|
63
|
+
"""
|
|
64
|
+
excluded_fields: Set[str] = set([])
|
|
65
|
+
|
|
66
|
+
_dict = self.model_dump(
|
|
67
|
+
by_alias=True,
|
|
68
|
+
exclude=excluded_fields,
|
|
69
|
+
exclude_none=True,
|
|
70
|
+
)
|
|
71
|
+
# override the default output from pydantic by calling `to_dict()` of each item in connections (list)
|
|
72
|
+
_items = []
|
|
73
|
+
if self.connections:
|
|
74
|
+
for _item_connections in self.connections:
|
|
75
|
+
if _item_connections:
|
|
76
|
+
_items.append(_item_connections.to_dict())
|
|
77
|
+
_dict["connections"] = _items
|
|
78
|
+
return _dict
|
|
79
|
+
|
|
80
|
+
@classmethod
|
|
81
|
+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
|
|
82
|
+
"""Create an instance of ConnectionList from a dict"""
|
|
83
|
+
if obj is None:
|
|
84
|
+
return None
|
|
85
|
+
|
|
86
|
+
if not isinstance(obj, dict):
|
|
87
|
+
return cls.model_validate(obj)
|
|
88
|
+
|
|
89
|
+
_obj = cls.model_validate(
|
|
90
|
+
{
|
|
91
|
+
"connections": (
|
|
92
|
+
[ConnectionResponse.from_dict(_item) for _item in obj["connections"]]
|
|
93
|
+
if obj.get("connections") is not None
|
|
94
|
+
else None
|
|
95
|
+
)
|
|
96
|
+
}
|
|
97
|
+
)
|
|
98
|
+
return _obj
|