Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions services/vpn/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# stackit.vpn
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


This package is part of the STACKIT Python SDK. For additional information, please visit the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK.


## Installation & Usage
### pip install

```sh
pip install stackit-vpn
```

Then import the package:
```python
import stackit.vpn
```

## Getting Started

[Examples](https://github.com/stackitcloud/stackit-sdk-python/tree/main/examples) for the usage of the package can be found in the [GitHub repository](https://github.com/stackitcloud/stackit-sdk-python) of the SDK.
1 change: 1 addition & 0 deletions services/vpn/oas_commit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ffa0c3c04916b86d11ad34b8bd357d8e32b5275f
111 changes: 111 additions & 0 deletions services/vpn/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
[project]
name = "stackit-vpn"
version = "v0.0.1a"
description = "STACKIT VPN API"
authors = [{name = "STACKIT Developer Tools", email = "developer-tools@stackit.cloud"}]
requires-python = ">=3.9,<4.0"
readme = "README.md"
classifiers = [
"Programming Language :: Python :: 3",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Programming Language :: Python :: 3.14",
]
dependencies = [
"stackit-core>=0.0.1a",
"requests>=2.32.3",
"pydantic>=2.9.2",
"python-dateutil>=2.9.0.post0",
]

[project.urls]
Homepage = "https://github.com/stackitcloud/stackit-sdk-python"
Issues = "https://github.com/stackitcloud/stackit-sdk-python/issues"

[dependency-groups]
dev = [
"black>=24.8.0",
"pytest>=8.3.3",
"flake8>=5.0.3 ; python_full_version < '3.12'",
"flake8>=6.0.1 ; python_full_version >= '3.12'",
"flake8-black>=0.3.6",
"flake8-pyproject>=1.2.3",
"autoimport>=1.6.1",
"flake8-eol>=0.0.8",
"flake8-eradicate>=1.5.0",
"flake8-bandit>=4.1.1",
"flake8-bugbear>=23.1.14",
"flake8-quotes>=3.4.0",
"isort>=5.13.2",
]

[tool.uv]
default-groups = "all"

[tool.uv.sources]
stackit-core = { path = "../../core" }

[tool.hatch.build.targets.sdist]
include = ["src/stackit"]

[tool.hatch.build.targets.wheel]
include = ["src/stackit"]

[tool.hatch.build.targets.wheel-sources]
"src/stackit" = "stackit"

[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"

[tool.pytest.ini_options]
pythonpath = [
"src"
]
testpaths = [
"tests"
]

[tool.black]
line-length = 120
exclude = """
/(
.eggs
| .git
| .hg
| .mypy_cache
| .nox
| .pants.d
| .tox
| .venv
| _build
| buck-out
| build
| dist
| node_modules
| venv
)/
"""

[tool.isort]
profile = 'black'

[tool.flake8]
exclude= [".eggs", ".git", ".hg", ".mypy_cache", ".tox", ".venv", ".devcontainer", "venv", "_build", "buck-out", "build", "dist"]
statistics = true
show-source = false
max-line-length = 120
# E203,W503 and E704 are incompatible with the formatter black
# W291 needs to be disabled because some doc-strings get generated with trailing whitespace but black won't re-format comments
ignore = ["E203", "W503", "E704", "W291"]
inline-quotes = '"'
docstring-quotes = '"""'
multiline-quotes = '"""'
ban-relative-imports = true
# Exclude generated code
extend-exclude = [ "src/stackit/*/models/*", "src/stackit/*/api/*", "src/stackit/*/*.py" ]
145 changes: 145 additions & 0 deletions services/vpn/src/stackit/vpn/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
# coding: utf-8

# flake8: noqa

"""
STACKIT VPN API

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

The version of the OpenAPI document: 1beta1
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
""" # noqa: E501


__version__ = "1.0.0"

# Define package exports
__all__ = [
"DefaultApi",
"ApiResponse",
"ApiClient",
"HostConfiguration",
"OpenApiException",
"ApiTypeError",
"ApiValueError",
"ApiKeyError",
"ApiAttributeError",
"ApiException",
"APIError",
"APIErrorDetail",
"APIErrorResponse",
"BGPGatewayConfig",
"BGPStatus",
"BGPStatusPeers",
"BGPStatusRoutes",
"BGPTunnelConfig",
"ConnectionList",
"ConnectionResponse",
"ConnectionStatusResponse",
"CreateGatewayConnectionPayload",
"CreateVPNGatewayPayload",
"CreateVPNGatewayPayloadAvailabilityZones",
"Gateway",
"GatewayList",
"GatewayResponse",
"GatewayStatus",
"GatewayStatusResponse",
"PeeringConfig",
"Phase",
"Phase1Status",
"Phase2Status",
"Plan",
"PlanList",
"Quota",
"QuotaList",
"QuotaListResponse",
"Region",
"RoutingType",
"TunnelConfiguration",
"TunnelConfigurationPhase1",
"TunnelConfigurationPhase2",
"TunnelStatus",
"UpdateGatewayConnectionPayload",
"UpdateVPNGatewayPayload",
"VPNTunnels",
]

# import apis into sdk package
from stackit.vpn.api.default_api import DefaultApi as DefaultApi
from stackit.vpn.api_client import ApiClient as ApiClient

# import ApiClient
from stackit.vpn.api_response import ApiResponse as ApiResponse
from stackit.vpn.configuration import HostConfiguration as HostConfiguration
from stackit.vpn.exceptions import ApiAttributeError as ApiAttributeError
from stackit.vpn.exceptions import ApiException as ApiException
from stackit.vpn.exceptions import ApiKeyError as ApiKeyError
from stackit.vpn.exceptions import ApiTypeError as ApiTypeError
from stackit.vpn.exceptions import ApiValueError as ApiValueError
from stackit.vpn.exceptions import OpenApiException as OpenApiException

# import models into sdk package
from stackit.vpn.models.api_error import APIError as APIError
from stackit.vpn.models.api_error_detail import APIErrorDetail as APIErrorDetail
from stackit.vpn.models.api_error_response import APIErrorResponse as APIErrorResponse
from stackit.vpn.models.bgp_gateway_config import BGPGatewayConfig as BGPGatewayConfig
from stackit.vpn.models.bgp_status import BGPStatus as BGPStatus
from stackit.vpn.models.bgp_status_peers import BGPStatusPeers as BGPStatusPeers
from stackit.vpn.models.bgp_status_routes import BGPStatusRoutes as BGPStatusRoutes
from stackit.vpn.models.bgp_tunnel_config import BGPTunnelConfig as BGPTunnelConfig
from stackit.vpn.models.connection_list import ConnectionList as ConnectionList
from stackit.vpn.models.connection_response import (
ConnectionResponse as ConnectionResponse,
)
from stackit.vpn.models.connection_status_response import (
ConnectionStatusResponse as ConnectionStatusResponse,
)
from stackit.vpn.models.create_gateway_connection_payload import (
CreateGatewayConnectionPayload as CreateGatewayConnectionPayload,
)
from stackit.vpn.models.create_vpn_gateway_payload import (
CreateVPNGatewayPayload as CreateVPNGatewayPayload,
)
from stackit.vpn.models.create_vpn_gateway_payload_availability_zones import (
CreateVPNGatewayPayloadAvailabilityZones as CreateVPNGatewayPayloadAvailabilityZones,
)
from stackit.vpn.models.gateway import Gateway as Gateway
from stackit.vpn.models.gateway_list import GatewayList as GatewayList
from stackit.vpn.models.gateway_response import GatewayResponse as GatewayResponse
from stackit.vpn.models.gateway_status import GatewayStatus as GatewayStatus
from stackit.vpn.models.gateway_status_response import (
GatewayStatusResponse as GatewayStatusResponse,
)
from stackit.vpn.models.peering_config import PeeringConfig as PeeringConfig
from stackit.vpn.models.phase import Phase as Phase
from stackit.vpn.models.phase1_status import Phase1Status as Phase1Status
from stackit.vpn.models.phase2_status import Phase2Status as Phase2Status
from stackit.vpn.models.plan import Plan as Plan
from stackit.vpn.models.plan_list import PlanList as PlanList
from stackit.vpn.models.quota import Quota as Quota
from stackit.vpn.models.quota_list import QuotaList as QuotaList
from stackit.vpn.models.quota_list_response import (
QuotaListResponse as QuotaListResponse,
)
from stackit.vpn.models.region import Region as Region
from stackit.vpn.models.routing_type import RoutingType as RoutingType
from stackit.vpn.models.tunnel_configuration import (
TunnelConfiguration as TunnelConfiguration,
)
from stackit.vpn.models.tunnel_configuration_phase1 import (
TunnelConfigurationPhase1 as TunnelConfigurationPhase1,
)
from stackit.vpn.models.tunnel_configuration_phase2 import (
TunnelConfigurationPhase2 as TunnelConfigurationPhase2,
)
from stackit.vpn.models.tunnel_status import TunnelStatus as TunnelStatus
from stackit.vpn.models.update_gateway_connection_payload import (
UpdateGatewayConnectionPayload as UpdateGatewayConnectionPayload,
)
from stackit.vpn.models.update_vpn_gateway_payload import (
UpdateVPNGatewayPayload as UpdateVPNGatewayPayload,
)
from stackit.vpn.models.vpn_tunnels import VPNTunnels as VPNTunnels
4 changes: 4 additions & 0 deletions services/vpn/src/stackit/vpn/api/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# flake8: noqa

# import apis into api package
from stackit.vpn.api.default_api import DefaultApi
Loading
Loading