stackit-vpn 0.7.0__tar.gz → 0.7.2__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.
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/PKG-INFO +1 -1
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/pyproject.toml +2 -2
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/bgp_filter_rule_match.py +2 -2
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/bgp_tunnel_config.py +2 -2
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/network_config.py +18 -2
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/.gitignore +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/LICENSE.md +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/NOTICE.txt +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/README.md +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/__init__.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/api/__init__.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/api/default_api.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/api_client.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/api_response.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/configuration.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/exceptions.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/__init__.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/api_error.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/api_error_detail.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/api_error_response.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/bgp_filter.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/bgp_filter_list.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/bgp_filter_rule.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/bgp_filter_rule_list.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/bgp_filter_rule_set.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/bgp_gateway_config.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/bgp_status.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/bgp_status_peers.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/bgp_status_routes.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/connection_list.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/connection_response.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/connection_status_response.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/create_gateway_bgp_filter_payload.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/create_gateway_bgp_filter_rule_payload.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/create_gateway_connection_payload.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/create_gateway_payload.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/create_gateway_payload_availability_zones.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/gateway.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/gateway_list.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/gateway_response.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/gateway_status.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/gateway_status_response.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/peering_config.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/phase.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/phase1_status.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/phase2_status.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/plan.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/plan_list.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/quota.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/quota_list.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/quota_list_response.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/region.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/routing_type.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/tunnel_configuration.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/tunnel_configuration_phase1.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/tunnel_configuration_phase2.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/tunnel_status.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/update_gateway_bgp_filter_payload.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/update_gateway_bgp_filter_rule_payload.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/update_gateway_connection_payload.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/update_gateway_payload.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/vpn_tunnels.py +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/py.typed +0 -0
- {stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/rest.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "stackit-vpn"
|
|
3
|
-
version = "v0.7.
|
|
3
|
+
version = "v0.7.2"
|
|
4
4
|
description = "STACKIT VPN API"
|
|
5
5
|
authors = [{name = "STACKIT Developer Tools", email = "developer-tools@stackit.cloud"}]
|
|
6
6
|
requires-python = ">=3.10,<4.0"
|
|
@@ -55,7 +55,7 @@ include = ["src/stackit"]
|
|
|
55
55
|
[tool.hatch.build.targets.wheel]
|
|
56
56
|
include = ["src/stackit"]
|
|
57
57
|
|
|
58
|
-
[tool.hatch.build.targets.wheel
|
|
58
|
+
[tool.hatch.build.targets.wheel.sources]
|
|
59
59
|
"src/stackit" = "stackit"
|
|
60
60
|
|
|
61
61
|
[build-system]
|
|
@@ -29,7 +29,7 @@ class BGPFilterRuleMatch(BaseModel):
|
|
|
29
29
|
""" # noqa: E501
|
|
30
30
|
|
|
31
31
|
as_path_contains_any: Optional[
|
|
32
|
-
Annotated[List[Annotated[int, Field(le=4294967294, strict=True, ge=
|
|
32
|
+
Annotated[List[Annotated[int, Field(le=4294967294, strict=True, ge=1)]], Field(max_length=10)]
|
|
33
33
|
] = Field(
|
|
34
34
|
default=None,
|
|
35
35
|
description="Matches if the AS-PATH contains any one of the listed ASNs (logical OR within the list). Treated as an unordered set; ordering is not preserved by the storage layer. When combined with firstASN, both conditions must hold (logical AND, consistent with the rest of the match block). If firstASN is also listed here, its presence as the first hop is sufficient to satisfy this list; no duplicate hop is required. ",
|
|
@@ -39,7 +39,7 @@ class BGPFilterRuleMatch(BaseModel):
|
|
|
39
39
|
default=None,
|
|
40
40
|
description="Matches if the route carries any one of these BGP standard communities (logical OR within the list). Format is 'asn:value' per RFC 1997 (both halves must fit in a uint32, i.e. 0..4294967295). Extended, large and well-known communities are not supported. ",
|
|
41
41
|
)
|
|
42
|
-
first_asn: Optional[Annotated[int, Field(le=4294967294, strict=True, ge=
|
|
42
|
+
first_asn: Optional[Annotated[int, Field(le=4294967294, strict=True, ge=1)]] = Field(
|
|
43
43
|
default=None,
|
|
44
44
|
description="Matches if the first ASN (immediate neighbor) in the AS-PATH equals this ASN. Combines with asPathContainsAny using logical AND: when both are set, the first ASN must equal firstASN AND the path must additionally contain at least one ASN from asPathContainsAny. ",
|
|
45
45
|
alias="firstASN",
|
|
@@ -33,8 +33,8 @@ class BGPTunnelConfig(BaseModel):
|
|
|
33
33
|
description="UUID of the BGPFilter to apply to incoming routes from this tunnel's BGP neighbor. The filter must exist in the same gateway. Multiple tunnels may reference the same BGPFilter; in that case the rules' 'match.peer' field can be used to scope behavior per neighbor. Outbound filtering is not yet supported; use gateway.bgp.overrideAdvertisedRoutes to control what is advertised. ",
|
|
34
34
|
alias="inboundFilterId",
|
|
35
35
|
)
|
|
36
|
-
remote_asn: Annotated[int, Field(le=4294967294, strict=True, ge=
|
|
37
|
-
description=
|
|
36
|
+
remote_asn: Annotated[int, Field(le=4294967294, strict=True, ge=1)] = Field(
|
|
37
|
+
description='Number of an Autonomous System. Both 16Bit and 32Bit ranges are supported, excluding values reserved by: * RFC 7607 (0) * RFC 6793 (23456, AS_TRANS) * RFC 7300 (65535 and 4294967295, the "Last ASNs") ',
|
|
38
38
|
alias="remoteAsn",
|
|
39
39
|
)
|
|
40
40
|
__properties: ClassVar[List[str]] = ["inboundFilterId", "remoteAsn"]
|
|
@@ -15,10 +15,11 @@ from __future__ import annotations
|
|
|
15
15
|
|
|
16
16
|
import json
|
|
17
17
|
import pprint
|
|
18
|
+
import re # noqa: F401
|
|
18
19
|
from typing import Any, ClassVar, Dict, List, Optional, Set
|
|
19
20
|
from uuid import UUID
|
|
20
21
|
|
|
21
|
-
from pydantic import BaseModel, ConfigDict, Field
|
|
22
|
+
from pydantic import BaseModel, ConfigDict, Field, field_validator
|
|
22
23
|
from pydantic_core import to_jsonable_python
|
|
23
24
|
from typing_extensions import Annotated, Self
|
|
24
25
|
|
|
@@ -28,7 +29,7 @@ class NetworkConfig(BaseModel):
|
|
|
28
29
|
NetworkConfig
|
|
29
30
|
""" # noqa: E501
|
|
30
31
|
|
|
31
|
-
predefined_network_prefix: Optional[
|
|
32
|
+
predefined_network_prefix: Optional[Annotated[str, Field(strict=True)]] = Field(
|
|
32
33
|
default=None,
|
|
33
34
|
description="The IPv4 network prefix (CIDR notation) allocated for the VPN gateway. Must have a prefix length of /28 or larger. Once the gateway is created, is not possible to change this attribute. ",
|
|
34
35
|
alias="predefinedNetworkPrefix",
|
|
@@ -38,6 +39,21 @@ class NetworkConfig(BaseModel):
|
|
|
38
39
|
)
|
|
39
40
|
__properties: ClassVar[List[str]] = ["predefinedNetworkPrefix", "routingTableId"]
|
|
40
41
|
|
|
42
|
+
@field_validator("predefined_network_prefix")
|
|
43
|
+
def predefined_network_prefix_validate_regular_expression(cls, value):
|
|
44
|
+
"""Validates the regular expression"""
|
|
45
|
+
if value is None:
|
|
46
|
+
return value
|
|
47
|
+
|
|
48
|
+
if not isinstance(value, str):
|
|
49
|
+
value = str(value)
|
|
50
|
+
|
|
51
|
+
if not re.match(r"^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}(\/([0-9]|[1-2][0-9]|3[0-2]))?$", value):
|
|
52
|
+
raise ValueError(
|
|
53
|
+
r"must validate the regular expression /^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}(\/([0-9]|[1-2][0-9]|3[0-2]))?$/"
|
|
54
|
+
)
|
|
55
|
+
return value
|
|
56
|
+
|
|
41
57
|
model_config = ConfigDict(
|
|
42
58
|
validate_by_name=True,
|
|
43
59
|
validate_by_alias=True,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/connection_status_response.py
RENAMED
|
File without changes
|
{stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/create_gateway_bgp_filter_payload.py
RENAMED
|
File without changes
|
|
File without changes
|
{stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/create_gateway_connection_payload.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/tunnel_configuration_phase1.py
RENAMED
|
File without changes
|
{stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/tunnel_configuration_phase2.py
RENAMED
|
File without changes
|
|
File without changes
|
{stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/update_gateway_bgp_filter_payload.py
RENAMED
|
File without changes
|
|
File without changes
|
{stackit_vpn-0.7.0 → stackit_vpn-0.7.2}/src/stackit/vpn/models/update_gateway_connection_payload.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|