stackit-loadbalancer 0.8.1__tar.gz → 0.9.1__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_loadbalancer-0.9.1/.gitignore +267 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/PKG-INFO +10 -11
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/pyproject.toml +48 -36
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/__init__.py +6 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/api/default_api.py +13 -12
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/api_client.py +22 -9
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/exceptions.py +1 -1
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/__init__.py +2 -1
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/active_health_check.py +18 -1
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/create_load_balancer_payload.py +12 -12
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/get_quota_response.py +2 -3
- stackit_loadbalancer-0.9.1/src/stackit/loadbalancer/models/http_health_checks.py +96 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/list_credentials_response.py +3 -3
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/list_load_balancers_response.py +3 -3
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/list_plans_response.py +3 -3
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/listener.py +3 -3
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/load_balancer.py +12 -12
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/network.py +3 -4
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/status.py +3 -3
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/target_pool.py +3 -3
- stackit_loadbalancer-0.9.1/src/stackit/loadbalancer/models/tls_config.py +106 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/update_load_balancer_payload.py +12 -12
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/update_target_pool_payload.py +3 -3
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/rest.py +19 -3
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/LICENSE.md +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/NOTICE.txt +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/README.md +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/api/__init__.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/api_response.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/configuration.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/create_credentials_payload.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/create_credentials_response.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/credentials_response.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/get_credentials_response.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/google_protobuf_any.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/load_balancer_error.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/load_balancer_options.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/loadbalancer_option_access_control.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/loadbalancer_option_logs.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/loadbalancer_option_metrics.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/loadbalancer_option_observability.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/options_tcp.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/options_udp.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/plan_details.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/security_group.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/server_name_indicator.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/session_persistence.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/target.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/update_credentials_payload.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/models/update_credentials_response.py +0 -0
- {stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/py.typed +0 -0
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
### VisualStudioCode template
|
|
2
|
+
.vscode/*
|
|
3
|
+
!.vscode/settings.json
|
|
4
|
+
!.vscode/tasks.json
|
|
5
|
+
!.vscode/launch.json
|
|
6
|
+
!.vscode/extensions.json
|
|
7
|
+
!.vscode/*.code-snippets
|
|
8
|
+
|
|
9
|
+
# Local History for Visual Studio Code
|
|
10
|
+
.history/
|
|
11
|
+
|
|
12
|
+
# Built Visual Studio Code Extensions
|
|
13
|
+
*.vsix
|
|
14
|
+
|
|
15
|
+
### JetBrains template
|
|
16
|
+
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider
|
|
17
|
+
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839
|
|
18
|
+
|
|
19
|
+
# User-specific stuff
|
|
20
|
+
.idea/**/workspace.xml
|
|
21
|
+
.idea/**/tasks.xml
|
|
22
|
+
.idea/**/usage.statistics.xml
|
|
23
|
+
.idea/**/dictionaries
|
|
24
|
+
.idea/**/shelf
|
|
25
|
+
|
|
26
|
+
# AWS User-specific
|
|
27
|
+
.idea/**/aws.xml
|
|
28
|
+
|
|
29
|
+
# Generated files
|
|
30
|
+
.idea/**/contentModel.xml
|
|
31
|
+
|
|
32
|
+
# Sensitive or high-churn files
|
|
33
|
+
.idea/**/dataSources/
|
|
34
|
+
.idea/**/dataSources.ids
|
|
35
|
+
.idea/**/dataSources.local.xml
|
|
36
|
+
.idea/**/sqlDataSources.xml
|
|
37
|
+
.idea/**/dynamic.xml
|
|
38
|
+
.idea/**/uiDesigner.xml
|
|
39
|
+
.idea/**/dbnavigator.xml
|
|
40
|
+
|
|
41
|
+
# Gradle
|
|
42
|
+
.idea/**/gradle.xml
|
|
43
|
+
.idea/**/libraries
|
|
44
|
+
|
|
45
|
+
# Gradle and Maven with auto-import
|
|
46
|
+
# When using Gradle or Maven with auto-import, you should exclude module files,
|
|
47
|
+
# since they will be recreated, and may cause churn. Uncomment if using
|
|
48
|
+
# auto-import.
|
|
49
|
+
# .idea/artifacts
|
|
50
|
+
# .idea/compiler.xml
|
|
51
|
+
# .idea/jarRepositories.xml
|
|
52
|
+
# .idea/modules.xml
|
|
53
|
+
# .idea/*.iml
|
|
54
|
+
# .idea/modules
|
|
55
|
+
# *.iml
|
|
56
|
+
# *.ipr
|
|
57
|
+
|
|
58
|
+
# CMake
|
|
59
|
+
cmake-build-*/
|
|
60
|
+
|
|
61
|
+
# Mongo Explorer plugin
|
|
62
|
+
.idea/**/mongoSettings.xml
|
|
63
|
+
|
|
64
|
+
# File-based project format
|
|
65
|
+
*.iws
|
|
66
|
+
|
|
67
|
+
# IntelliJ
|
|
68
|
+
out/
|
|
69
|
+
|
|
70
|
+
# mpeltonen/sbt-idea plugin
|
|
71
|
+
.idea_modules/
|
|
72
|
+
|
|
73
|
+
# JIRA plugin
|
|
74
|
+
atlassian-ide-plugin.xml
|
|
75
|
+
|
|
76
|
+
# Cursive Clojure plugin
|
|
77
|
+
.idea/replstate.xml
|
|
78
|
+
|
|
79
|
+
# SonarLint plugin
|
|
80
|
+
.idea/sonarlint/
|
|
81
|
+
|
|
82
|
+
# Crashlytics plugin (for Android Studio and IntelliJ)
|
|
83
|
+
com_crashlytics_export_strings.xml
|
|
84
|
+
crashlytics.properties
|
|
85
|
+
crashlytics-build.properties
|
|
86
|
+
fabric.properties
|
|
87
|
+
|
|
88
|
+
# Editor-based Rest Client
|
|
89
|
+
.idea/httpRequests
|
|
90
|
+
|
|
91
|
+
# Android studio 3.1+ serialized cache file
|
|
92
|
+
.idea/caches/build_file_checksums.ser
|
|
93
|
+
|
|
94
|
+
### VirtualEnv template
|
|
95
|
+
# Virtualenv
|
|
96
|
+
# http://iamzed.com/2009/05/07/a-primer-on-virtualenv/
|
|
97
|
+
.Python
|
|
98
|
+
[Bb]in
|
|
99
|
+
[Ii]nclude
|
|
100
|
+
[Ll]ib
|
|
101
|
+
[Ll]ib64
|
|
102
|
+
[Ll]ocal
|
|
103
|
+
[Ss]cripts
|
|
104
|
+
pyvenv.cfg
|
|
105
|
+
.venv
|
|
106
|
+
pip-selfcheck.json
|
|
107
|
+
|
|
108
|
+
### Python template
|
|
109
|
+
# Byte-compiled / optimized / DLL files
|
|
110
|
+
__pycache__/
|
|
111
|
+
*.py[cod]
|
|
112
|
+
*$py.class
|
|
113
|
+
|
|
114
|
+
# C extensions
|
|
115
|
+
*.so
|
|
116
|
+
|
|
117
|
+
# Distribution / packaging
|
|
118
|
+
build/
|
|
119
|
+
develop-eggs/
|
|
120
|
+
dist/
|
|
121
|
+
downloads/
|
|
122
|
+
eggs/
|
|
123
|
+
.eggs/
|
|
124
|
+
lib/
|
|
125
|
+
lib64/
|
|
126
|
+
parts/
|
|
127
|
+
sdist/
|
|
128
|
+
var/
|
|
129
|
+
wheels/
|
|
130
|
+
share/python-wheels/
|
|
131
|
+
*.egg-info/
|
|
132
|
+
.installed.cfg
|
|
133
|
+
*.egg
|
|
134
|
+
MANIFEST
|
|
135
|
+
|
|
136
|
+
# PyInstaller
|
|
137
|
+
# Usually these files are written by a python script from a template
|
|
138
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
139
|
+
*.manifest
|
|
140
|
+
*.spec
|
|
141
|
+
|
|
142
|
+
# Installer logs
|
|
143
|
+
pip-log.txt
|
|
144
|
+
pip-delete-this-directory.txt
|
|
145
|
+
|
|
146
|
+
# Unit test / coverage reports
|
|
147
|
+
htmlcov/
|
|
148
|
+
.tox/
|
|
149
|
+
.nox/
|
|
150
|
+
.coverage
|
|
151
|
+
.coverage.*
|
|
152
|
+
.cache
|
|
153
|
+
nosetests.xml
|
|
154
|
+
coverage.xml
|
|
155
|
+
*.cover
|
|
156
|
+
*.py,cover
|
|
157
|
+
.hypothesis/
|
|
158
|
+
.pytest_cache/
|
|
159
|
+
cover/
|
|
160
|
+
|
|
161
|
+
# Translations
|
|
162
|
+
*.mo
|
|
163
|
+
*.pot
|
|
164
|
+
|
|
165
|
+
# Django stuff:
|
|
166
|
+
*.log
|
|
167
|
+
local_settings.py
|
|
168
|
+
db.sqlite3
|
|
169
|
+
db.sqlite3-journal
|
|
170
|
+
|
|
171
|
+
# Flask stuff:
|
|
172
|
+
instance/
|
|
173
|
+
.webassets-cache
|
|
174
|
+
|
|
175
|
+
# Scrapy stuff:
|
|
176
|
+
.scrapy
|
|
177
|
+
|
|
178
|
+
# Sphinx documentation
|
|
179
|
+
docs/_build/
|
|
180
|
+
|
|
181
|
+
# PyBuilder
|
|
182
|
+
.pybuilder/
|
|
183
|
+
target/
|
|
184
|
+
|
|
185
|
+
# Jupyter Notebook
|
|
186
|
+
.ipynb_checkpoints
|
|
187
|
+
|
|
188
|
+
# IPython
|
|
189
|
+
profile_default/
|
|
190
|
+
ipython_config.py
|
|
191
|
+
|
|
192
|
+
# pyenv
|
|
193
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
194
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
195
|
+
# .python-version
|
|
196
|
+
|
|
197
|
+
# pipenv
|
|
198
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
199
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
200
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
201
|
+
# install all needed dependencies.
|
|
202
|
+
#Pipfile.lock
|
|
203
|
+
|
|
204
|
+
# poetry
|
|
205
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
206
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
207
|
+
# commonly ignored for libraries.
|
|
208
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
209
|
+
#poetry.lock
|
|
210
|
+
|
|
211
|
+
# pdm
|
|
212
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
213
|
+
#pdm.lock
|
|
214
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
215
|
+
# in version control.
|
|
216
|
+
# https://pdm.fming.dev/#use-with-ide
|
|
217
|
+
.pdm.toml
|
|
218
|
+
|
|
219
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
220
|
+
__pypackages__/
|
|
221
|
+
|
|
222
|
+
# Celery stuff
|
|
223
|
+
celerybeat-schedule
|
|
224
|
+
celerybeat.pid
|
|
225
|
+
|
|
226
|
+
# SageMath parsed files
|
|
227
|
+
*.sage.py
|
|
228
|
+
|
|
229
|
+
# Environments
|
|
230
|
+
.env
|
|
231
|
+
env/
|
|
232
|
+
venv/
|
|
233
|
+
ENV/
|
|
234
|
+
env.bak/
|
|
235
|
+
venv.bak/
|
|
236
|
+
|
|
237
|
+
# Spyder project settings
|
|
238
|
+
.spyderproject
|
|
239
|
+
.spyproject
|
|
240
|
+
|
|
241
|
+
# Rope project settings
|
|
242
|
+
.ropeproject
|
|
243
|
+
|
|
244
|
+
# mkdocs documentation
|
|
245
|
+
/site
|
|
246
|
+
|
|
247
|
+
# mypy
|
|
248
|
+
.mypy_cache/
|
|
249
|
+
.dmypy.json
|
|
250
|
+
dmypy.json
|
|
251
|
+
|
|
252
|
+
# Pyre type checker
|
|
253
|
+
.pyre/
|
|
254
|
+
|
|
255
|
+
# pytype static type analyzer
|
|
256
|
+
.pytype/
|
|
257
|
+
|
|
258
|
+
# Cython debug symbols
|
|
259
|
+
cython_debug/
|
|
260
|
+
|
|
261
|
+
# PyCharm
|
|
262
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
263
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
264
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
265
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
266
|
+
.idea/
|
|
267
|
+
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: stackit-loadbalancer
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.1
|
|
4
4
|
Summary: Load Balancer API
|
|
5
|
+
Project-URL: Homepage, https://github.com/stackitcloud/stackit-sdk-python
|
|
6
|
+
Project-URL: Issues, https://github.com/stackitcloud/stackit-sdk-python/issues
|
|
7
|
+
Author-email: STACKIT Developer Tools <developer-tools@stackit.cloud>
|
|
5
8
|
License-File: LICENSE.md
|
|
6
9
|
License-File: NOTICE.txt
|
|
7
|
-
Author: STACKIT Developer Tools
|
|
8
|
-
Author-email: developer-tools@stackit.cloud
|
|
9
|
-
Requires-Python: >=3.9,<4.0
|
|
10
10
|
Classifier: License :: OSI Approved :: Apache Software License
|
|
11
11
|
Classifier: Operating System :: OS Independent
|
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -16,12 +16,11 @@ Classifier: Programming Language :: Python :: 3.11
|
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
17
|
Classifier: Programming Language :: Python :: 3.13
|
|
18
18
|
Classifier: Programming Language :: Python :: 3.14
|
|
19
|
-
Requires-
|
|
20
|
-
Requires-Dist:
|
|
21
|
-
Requires-Dist:
|
|
22
|
-
Requires-Dist:
|
|
23
|
-
|
|
24
|
-
Project-URL: Issues, https://github.com/stackitcloud/stackit-sdk-python/issues
|
|
19
|
+
Requires-Python: <4.0,>=3.9
|
|
20
|
+
Requires-Dist: pydantic>=2.9.2
|
|
21
|
+
Requires-Dist: python-dateutil>=2.9.0.post0
|
|
22
|
+
Requires-Dist: requests>=2.32.3
|
|
23
|
+
Requires-Dist: stackit-core>=0.0.1a
|
|
25
24
|
Description-Content-Type: text/markdown
|
|
26
25
|
|
|
27
26
|
# stackit.loadbalancer
|
|
@@ -47,4 +46,4 @@ import stackit.loadbalancer
|
|
|
47
46
|
|
|
48
47
|
## Getting Started
|
|
49
48
|
|
|
50
|
-
[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.
|
|
49
|
+
[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,55 +1,67 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "stackit-loadbalancer"
|
|
3
|
-
|
|
4
|
-
[tool.poetry]
|
|
5
|
-
name = "stackit-loadbalancer"
|
|
6
|
-
version = "v0.8.1"
|
|
7
|
-
authors = [
|
|
8
|
-
"STACKIT Developer Tools <developer-tools@stackit.cloud>",
|
|
9
|
-
]
|
|
3
|
+
version = "v0.9.1"
|
|
10
4
|
description = "Load Balancer API"
|
|
5
|
+
authors = [{ name = "STACKIT Developer Tools", email = "developer-tools@stackit.cloud" }]
|
|
6
|
+
requires-python = ">=3.9,<4.0"
|
|
11
7
|
readme = "README.md"
|
|
12
|
-
#license = "NoLicense"
|
|
13
8
|
classifiers = [
|
|
14
9
|
"Programming Language :: Python :: 3",
|
|
15
10
|
"License :: OSI Approved :: Apache Software License",
|
|
16
11
|
"Operating System :: OS Independent",
|
|
12
|
+
"Programming Language :: Python :: 3.9",
|
|
13
|
+
"Programming Language :: Python :: 3.10",
|
|
14
|
+
"Programming Language :: Python :: 3.11",
|
|
15
|
+
"Programming Language :: Python :: 3.12",
|
|
16
|
+
"Programming Language :: Python :: 3.13",
|
|
17
|
+
"Programming Language :: Python :: 3.14",
|
|
17
18
|
]
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
dependencies = [
|
|
20
|
+
"stackit-core>=0.0.1a",
|
|
21
|
+
"requests>=2.32.3",
|
|
22
|
+
"pydantic>=2.9.2",
|
|
23
|
+
"python-dateutil>=2.9.0.post0",
|
|
20
24
|
]
|
|
21
25
|
|
|
22
|
-
[tool.poetry.dependencies]
|
|
23
|
-
python = ">=3.9,<4.0"
|
|
24
|
-
stackit-core = ">=0.0.1a"
|
|
25
|
-
requests = ">=2.32.3"
|
|
26
|
-
pydantic = ">=2.9.2"
|
|
27
|
-
python-dateutil = ">=2.9.0.post0"
|
|
28
|
-
|
|
29
|
-
[tool.poetry.group.dev.dependencies]
|
|
30
|
-
black = ">=24.8.0"
|
|
31
|
-
pytest = ">=8.3.3"
|
|
32
|
-
flake8 = [
|
|
33
|
-
{ version= ">=5.0.3", python="<3.12"},
|
|
34
|
-
{ version= ">=6.0.1", python=">=3.12"}
|
|
35
|
-
]
|
|
36
|
-
flake8-black = ">=0.3.6"
|
|
37
|
-
flake8-pyproject = ">=1.2.3"
|
|
38
|
-
autoimport = ">=1.6.1"
|
|
39
|
-
flake8-eol = ">=0.0.8"
|
|
40
|
-
flake8-eradicate = ">=1.5.0"
|
|
41
|
-
flake8-bandit = ">=4.1.1"
|
|
42
|
-
flake8-bugbear = ">=23.1.14"
|
|
43
|
-
flake8-quotes = ">=3.4.0"
|
|
44
|
-
isort = ">=5.13.2"
|
|
45
|
-
|
|
46
26
|
[project.urls]
|
|
47
27
|
Homepage = "https://github.com/stackitcloud/stackit-sdk-python"
|
|
48
28
|
Issues = "https://github.com/stackitcloud/stackit-sdk-python/issues"
|
|
49
29
|
|
|
30
|
+
[dependency-groups]
|
|
31
|
+
dev = [
|
|
32
|
+
"black>=24.8.0",
|
|
33
|
+
"pytest>=8.3.3",
|
|
34
|
+
"flake8>=5.0.3 ; python_full_version < '3.12'",
|
|
35
|
+
"flake8>=6.0.1 ; python_full_version >= '3.12'",
|
|
36
|
+
"flake8-black>=0.3.6",
|
|
37
|
+
"flake8-pyproject>=1.2.3",
|
|
38
|
+
"autoimport>=1.6.1",
|
|
39
|
+
"flake8-eol>=0.0.8",
|
|
40
|
+
"flake8-eradicate>=1.5.0",
|
|
41
|
+
"flake8-bandit>=4.1.1",
|
|
42
|
+
"flake8-bugbear>=23.1.14",
|
|
43
|
+
"flake8-quotes>=3.4.0",
|
|
44
|
+
"isort>=5.13.2",
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
[tool.uv]
|
|
48
|
+
default-groups = "all"
|
|
49
|
+
|
|
50
|
+
[tool.uv.sources]
|
|
51
|
+
stackit-core = { path = "../../core" }
|
|
52
|
+
|
|
53
|
+
[tool.hatch.build.targets.sdist]
|
|
54
|
+
include = ["src/stackit"]
|
|
55
|
+
|
|
56
|
+
[tool.hatch.build.targets.wheel]
|
|
57
|
+
include = ["src/stackit"]
|
|
58
|
+
|
|
59
|
+
[tool.hatch.build.targets.wheel.sources]
|
|
60
|
+
"src/stackit" = "stackit"
|
|
61
|
+
|
|
50
62
|
[build-system]
|
|
51
|
-
requires = ["
|
|
52
|
-
build-backend = "
|
|
63
|
+
requires = ["hatchling"]
|
|
64
|
+
build-backend = "hatchling.build"
|
|
53
65
|
|
|
54
66
|
[tool.pytest.ini_options]
|
|
55
67
|
pythonpath = [
|
{stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/__init__.py
RENAMED
|
@@ -36,6 +36,7 @@ __all__ = [
|
|
|
36
36
|
"GetCredentialsResponse",
|
|
37
37
|
"GetQuotaResponse",
|
|
38
38
|
"GoogleProtobufAny",
|
|
39
|
+
"HttpHealthChecks",
|
|
39
40
|
"ListCredentialsResponse",
|
|
40
41
|
"ListLoadBalancersResponse",
|
|
41
42
|
"ListPlansResponse",
|
|
@@ -57,6 +58,7 @@ __all__ = [
|
|
|
57
58
|
"Status",
|
|
58
59
|
"Target",
|
|
59
60
|
"TargetPool",
|
|
61
|
+
"TlsConfig",
|
|
60
62
|
"UpdateCredentialsPayload",
|
|
61
63
|
"UpdateCredentialsResponse",
|
|
62
64
|
"UpdateLoadBalancerPayload",
|
|
@@ -102,6 +104,9 @@ from stackit.loadbalancer.models.get_quota_response import (
|
|
|
102
104
|
from stackit.loadbalancer.models.google_protobuf_any import (
|
|
103
105
|
GoogleProtobufAny as GoogleProtobufAny,
|
|
104
106
|
)
|
|
107
|
+
from stackit.loadbalancer.models.http_health_checks import (
|
|
108
|
+
HttpHealthChecks as HttpHealthChecks,
|
|
109
|
+
)
|
|
105
110
|
from stackit.loadbalancer.models.list_credentials_response import (
|
|
106
111
|
ListCredentialsResponse as ListCredentialsResponse,
|
|
107
112
|
)
|
|
@@ -145,6 +150,7 @@ from stackit.loadbalancer.models.session_persistence import (
|
|
|
145
150
|
from stackit.loadbalancer.models.status import Status as Status
|
|
146
151
|
from stackit.loadbalancer.models.target import Target as Target
|
|
147
152
|
from stackit.loadbalancer.models.target_pool import TargetPool as TargetPool
|
|
153
|
+
from stackit.loadbalancer.models.tls_config import TlsConfig as TlsConfig
|
|
148
154
|
from stackit.loadbalancer.models.update_credentials_payload import (
|
|
149
155
|
UpdateCredentialsPayload as UpdateCredentialsPayload,
|
|
150
156
|
)
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
""" # noqa: E501
|
|
13
13
|
|
|
14
14
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
|
15
|
+
from uuid import UUID
|
|
15
16
|
|
|
16
17
|
from pydantic import Field, StrictFloat, StrictInt, StrictStr, validate_call
|
|
17
18
|
from stackit.core.configuration import Configuration
|
|
@@ -73,7 +74,7 @@ class DefaultApi:
|
|
|
73
74
|
project_id: StrictStr,
|
|
74
75
|
region: StrictStr,
|
|
75
76
|
create_credentials_payload: CreateCredentialsPayload,
|
|
76
|
-
x_request_id: Optional[
|
|
77
|
+
x_request_id: Optional[UUID] = None,
|
|
77
78
|
_request_timeout: Union[
|
|
78
79
|
None,
|
|
79
80
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -95,7 +96,7 @@ class DefaultApi:
|
|
|
95
96
|
:param create_credentials_payload: (required)
|
|
96
97
|
:type create_credentials_payload: CreateCredentialsPayload
|
|
97
98
|
:param x_request_id:
|
|
98
|
-
:type x_request_id:
|
|
99
|
+
:type x_request_id: UUID
|
|
99
100
|
:param _request_timeout: timeout setting for this request. If one
|
|
100
101
|
number provided, it will be total request
|
|
101
102
|
timeout. It can also be a pair (tuple) of
|
|
@@ -149,7 +150,7 @@ class DefaultApi:
|
|
|
149
150
|
project_id: StrictStr,
|
|
150
151
|
region: StrictStr,
|
|
151
152
|
create_credentials_payload: CreateCredentialsPayload,
|
|
152
|
-
x_request_id: Optional[
|
|
153
|
+
x_request_id: Optional[UUID] = None,
|
|
153
154
|
_request_timeout: Union[
|
|
154
155
|
None,
|
|
155
156
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -171,7 +172,7 @@ class DefaultApi:
|
|
|
171
172
|
:param create_credentials_payload: (required)
|
|
172
173
|
:type create_credentials_payload: CreateCredentialsPayload
|
|
173
174
|
:param x_request_id:
|
|
174
|
-
:type x_request_id:
|
|
175
|
+
:type x_request_id: UUID
|
|
175
176
|
:param _request_timeout: timeout setting for this request. If one
|
|
176
177
|
number provided, it will be total request
|
|
177
178
|
timeout. It can also be a pair (tuple) of
|
|
@@ -225,7 +226,7 @@ class DefaultApi:
|
|
|
225
226
|
project_id: StrictStr,
|
|
226
227
|
region: StrictStr,
|
|
227
228
|
create_credentials_payload: CreateCredentialsPayload,
|
|
228
|
-
x_request_id: Optional[
|
|
229
|
+
x_request_id: Optional[UUID] = None,
|
|
229
230
|
_request_timeout: Union[
|
|
230
231
|
None,
|
|
231
232
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -247,7 +248,7 @@ class DefaultApi:
|
|
|
247
248
|
:param create_credentials_payload: (required)
|
|
248
249
|
:type create_credentials_payload: CreateCredentialsPayload
|
|
249
250
|
:param x_request_id:
|
|
250
|
-
:type x_request_id:
|
|
251
|
+
:type x_request_id: UUID
|
|
251
252
|
:param _request_timeout: timeout setting for this request. If one
|
|
252
253
|
number provided, it will be total request
|
|
253
254
|
timeout. It can also be a pair (tuple) of
|
|
@@ -364,7 +365,7 @@ class DefaultApi:
|
|
|
364
365
|
project_id: StrictStr,
|
|
365
366
|
region: StrictStr,
|
|
366
367
|
create_load_balancer_payload: CreateLoadBalancerPayload,
|
|
367
|
-
x_request_id: Optional[
|
|
368
|
+
x_request_id: Optional[UUID] = None,
|
|
368
369
|
_request_timeout: Union[
|
|
369
370
|
None,
|
|
370
371
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -386,7 +387,7 @@ class DefaultApi:
|
|
|
386
387
|
:param create_load_balancer_payload: (required)
|
|
387
388
|
:type create_load_balancer_payload: CreateLoadBalancerPayload
|
|
388
389
|
:param x_request_id:
|
|
389
|
-
:type x_request_id:
|
|
390
|
+
:type x_request_id: UUID
|
|
390
391
|
:param _request_timeout: timeout setting for this request. If one
|
|
391
392
|
number provided, it will be total request
|
|
392
393
|
timeout. It can also be a pair (tuple) of
|
|
@@ -441,7 +442,7 @@ class DefaultApi:
|
|
|
441
442
|
project_id: StrictStr,
|
|
442
443
|
region: StrictStr,
|
|
443
444
|
create_load_balancer_payload: CreateLoadBalancerPayload,
|
|
444
|
-
x_request_id: Optional[
|
|
445
|
+
x_request_id: Optional[UUID] = None,
|
|
445
446
|
_request_timeout: Union[
|
|
446
447
|
None,
|
|
447
448
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -463,7 +464,7 @@ class DefaultApi:
|
|
|
463
464
|
:param create_load_balancer_payload: (required)
|
|
464
465
|
:type create_load_balancer_payload: CreateLoadBalancerPayload
|
|
465
466
|
:param x_request_id:
|
|
466
|
-
:type x_request_id:
|
|
467
|
+
:type x_request_id: UUID
|
|
467
468
|
:param _request_timeout: timeout setting for this request. If one
|
|
468
469
|
number provided, it will be total request
|
|
469
470
|
timeout. It can also be a pair (tuple) of
|
|
@@ -518,7 +519,7 @@ class DefaultApi:
|
|
|
518
519
|
project_id: StrictStr,
|
|
519
520
|
region: StrictStr,
|
|
520
521
|
create_load_balancer_payload: CreateLoadBalancerPayload,
|
|
521
|
-
x_request_id: Optional[
|
|
522
|
+
x_request_id: Optional[UUID] = None,
|
|
522
523
|
_request_timeout: Union[
|
|
523
524
|
None,
|
|
524
525
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -540,7 +541,7 @@ class DefaultApi:
|
|
|
540
541
|
:param create_load_balancer_payload: (required)
|
|
541
542
|
:type create_load_balancer_payload: CreateLoadBalancerPayload
|
|
542
543
|
:param x_request_id:
|
|
543
|
-
:type x_request_id:
|
|
544
|
+
:type x_request_id: UUID
|
|
544
545
|
:param _request_timeout: timeout setting for this request. If one
|
|
545
546
|
number provided, it will be total request
|
|
546
547
|
timeout. It can also be a pair (tuple) of
|
{stackit_loadbalancer-0.8.1 → stackit_loadbalancer-0.9.1}/src/stackit/loadbalancer/api_client.py
RENAMED
|
@@ -12,11 +12,13 @@
|
|
|
12
12
|
""" # noqa: E501
|
|
13
13
|
|
|
14
14
|
import datetime
|
|
15
|
+
import decimal
|
|
15
16
|
import json
|
|
16
17
|
import mimetypes
|
|
17
18
|
import os
|
|
18
19
|
import re
|
|
19
20
|
import tempfile
|
|
21
|
+
import uuid
|
|
20
22
|
from enum import Enum
|
|
21
23
|
from typing import Dict, List, Optional, Tuple, Union
|
|
22
24
|
from urllib.parse import quote
|
|
@@ -63,8 +65,10 @@ class ApiClient:
|
|
|
63
65
|
"bool": bool,
|
|
64
66
|
"date": datetime.date,
|
|
65
67
|
"datetime": datetime.datetime,
|
|
68
|
+
"decimal": decimal.Decimal,
|
|
66
69
|
"object": object,
|
|
67
70
|
}
|
|
71
|
+
_pool = None
|
|
68
72
|
|
|
69
73
|
def __init__(self, configuration, header_name=None, header_value=None, cookie=None) -> None:
|
|
70
74
|
self.config: Configuration = configuration
|
|
@@ -267,7 +271,7 @@ class ApiClient:
|
|
|
267
271
|
return_data = self.__deserialize_file(response_data)
|
|
268
272
|
elif response_type is not None:
|
|
269
273
|
match = None
|
|
270
|
-
content_type = response_data.
|
|
274
|
+
content_type = response_data.headers.get("content-type")
|
|
271
275
|
if content_type is not None:
|
|
272
276
|
match = re.search(r"charset=([a-zA-Z\-\d]+)[\s;]?", content_type)
|
|
273
277
|
encoding = match.group(1) if match else "utf-8"
|
|
@@ -284,7 +288,7 @@ class ApiClient:
|
|
|
284
288
|
return ApiResponse(
|
|
285
289
|
status_code=response_data.status,
|
|
286
290
|
data=return_data,
|
|
287
|
-
headers=response_data.
|
|
291
|
+
headers=response_data.headers,
|
|
288
292
|
raw_data=response_data.data,
|
|
289
293
|
)
|
|
290
294
|
|
|
@@ -296,6 +300,7 @@ class ApiClient:
|
|
|
296
300
|
If obj is str, int, long, float, bool, return directly.
|
|
297
301
|
If obj is datetime.datetime, datetime.date
|
|
298
302
|
convert to string in iso8601 format.
|
|
303
|
+
If obj is decimal.Decimal return string representation.
|
|
299
304
|
If obj is list, sanitize each element in the list.
|
|
300
305
|
If obj is dict, return the dict.
|
|
301
306
|
If obj is OpenAPI model, return the properties dict.
|
|
@@ -311,12 +316,16 @@ class ApiClient:
|
|
|
311
316
|
return obj.get_secret_value()
|
|
312
317
|
elif isinstance(obj, self.PRIMITIVE_TYPES):
|
|
313
318
|
return obj
|
|
319
|
+
elif isinstance(obj, uuid.UUID):
|
|
320
|
+
return str(obj)
|
|
314
321
|
elif isinstance(obj, list):
|
|
315
322
|
return [self.sanitize_for_serialization(sub_obj) for sub_obj in obj]
|
|
316
323
|
elif isinstance(obj, tuple):
|
|
317
324
|
return tuple(self.sanitize_for_serialization(sub_obj) for sub_obj in obj)
|
|
318
325
|
elif isinstance(obj, (datetime.datetime, datetime.date)):
|
|
319
326
|
return obj.isoformat()
|
|
327
|
+
elif isinstance(obj, decimal.Decimal):
|
|
328
|
+
return str(obj)
|
|
320
329
|
|
|
321
330
|
elif isinstance(obj, dict):
|
|
322
331
|
obj_dict = obj
|
|
@@ -326,7 +335,7 @@ class ApiClient:
|
|
|
326
335
|
# and attributes which value is not None.
|
|
327
336
|
# Convert attribute name to json key in
|
|
328
337
|
# model definition for request.
|
|
329
|
-
if hasattr(obj, "to_dict") and callable(obj
|
|
338
|
+
if hasattr(obj, "to_dict") and callable(getattr(obj, "to_dict")): # noqa: B009
|
|
330
339
|
obj_dict = obj.to_dict()
|
|
331
340
|
else:
|
|
332
341
|
obj_dict = obj.__dict__
|
|
@@ -354,7 +363,7 @@ class ApiClient:
|
|
|
354
363
|
data = json.loads(response_text)
|
|
355
364
|
except ValueError:
|
|
356
365
|
data = response_text
|
|
357
|
-
elif re.match(r"^application/(json|[\w
|
|
366
|
+
elif re.match(r"^application/(json|[\w!#$&.+\-^_]+\+json)\s*(;|$)", content_type, re.IGNORECASE):
|
|
358
367
|
if response_text == "":
|
|
359
368
|
data = ""
|
|
360
369
|
else:
|
|
@@ -400,12 +409,14 @@ class ApiClient:
|
|
|
400
409
|
|
|
401
410
|
if klass in self.PRIMITIVE_TYPES:
|
|
402
411
|
return self.__deserialize_primitive(data, klass)
|
|
403
|
-
elif klass
|
|
412
|
+
elif klass is object:
|
|
404
413
|
return self.__deserialize_object(data)
|
|
405
|
-
elif klass
|
|
414
|
+
elif klass is datetime.date:
|
|
406
415
|
return self.__deserialize_date(data)
|
|
407
|
-
elif klass
|
|
416
|
+
elif klass is datetime.datetime:
|
|
408
417
|
return self.__deserialize_datetime(data)
|
|
418
|
+
elif klass is decimal.Decimal:
|
|
419
|
+
return decimal.Decimal(data)
|
|
409
420
|
elif issubclass(klass, Enum):
|
|
410
421
|
return self.__deserialize_enum(data, klass)
|
|
411
422
|
else:
|
|
@@ -553,12 +564,14 @@ class ApiClient:
|
|
|
553
564
|
os.close(fd)
|
|
554
565
|
os.remove(path)
|
|
555
566
|
|
|
556
|
-
content_disposition = response.
|
|
567
|
+
content_disposition = response.headers.get("Content-Disposition")
|
|
557
568
|
if content_disposition:
|
|
558
569
|
m = re.search(r'filename=[\'"]?([^\'"\s]+)[\'"]?', content_disposition)
|
|
559
570
|
if m is None:
|
|
560
571
|
raise ValueError("Unexpected 'content-disposition' header value")
|
|
561
|
-
filename = m.group(1)
|
|
572
|
+
filename = os.path.basename(m.group(1)) # Strip any directory traversal
|
|
573
|
+
if filename in ("", ".", ".."): # fall back to tmp filename
|
|
574
|
+
filename = os.path.basename(path)
|
|
562
575
|
path = os.path.join(os.path.dirname(path), filename)
|
|
563
576
|
|
|
564
577
|
with open(path, "wb") as f:
|