stackit-alb 0.9.0__tar.gz → 0.9.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_alb-0.9.2/.gitignore +267 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/PKG-INFO +10 -11
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/pyproject.toml +48 -36
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/api/default_api.py +16 -15
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/api_client.py +22 -9
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/exceptions.py +1 -1
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/__init__.py +0 -1
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/create_load_balancer_payload.py +12 -12
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/get_quota_response.py +4 -5
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/host_config.py +3 -3
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/list_credentials_response.py +3 -3
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/list_load_balancers_response.py +3 -3
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/list_plans_response.py +3 -3
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/load_balancer.py +12 -12
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/network.py +3 -2
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/protocol_options_http.py +3 -3
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/rule.py +6 -6
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/status.py +3 -3
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/target_pool.py +3 -3
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/update_load_balancer_payload.py +12 -12
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/update_target_pool_payload.py +3 -3
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/rest.py +19 -3
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/LICENSE.md +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/NOTICE.txt +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/README.md +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/__init__.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/api/__init__.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/api_response.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/configuration.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/active_health_check.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/certificate_config.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/cookie_persistence.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/create_credentials_payload.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/create_credentials_response.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/credentials_response.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/get_credentials_response.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/google_protobuf_any.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/http_header.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/http_health_checks.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/listener.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/load_balancer_error.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/load_balancer_options.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/loadbalancer_option_access_control.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/loadbalancer_option_logs.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/loadbalancer_option_metrics.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/loadbalancer_option_observability.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/path.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/plan_details.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/protocol_options_https.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/query_parameter.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/security_group.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/target.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/tls_config.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/update_credentials_payload.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/update_credentials_response.py +0 -0
- {stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/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-alb
|
|
3
|
-
Version: 0.9.
|
|
3
|
+
Version: 0.9.2
|
|
4
4
|
Summary: Application 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.alb
|
|
@@ -47,4 +46,4 @@ import stackit.alb
|
|
|
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-alb"
|
|
3
|
-
|
|
4
|
-
[tool.poetry]
|
|
5
|
-
name = "stackit-alb"
|
|
6
|
-
version = "v0.9.0"
|
|
7
|
-
authors = [
|
|
8
|
-
"STACKIT Developer Tools <developer-tools@stackit.cloud>",
|
|
9
|
-
]
|
|
3
|
+
version = "v0.9.2"
|
|
10
4
|
description = "Application 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 = [
|
|
@@ -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
|
|
@@ -55,7 +56,7 @@ class DefaultApi:
|
|
|
55
56
|
project_id: StrictStr,
|
|
56
57
|
region: StrictStr,
|
|
57
58
|
create_credentials_payload: CreateCredentialsPayload,
|
|
58
|
-
x_request_id: Optional[
|
|
59
|
+
x_request_id: Optional[UUID] = None,
|
|
59
60
|
_request_timeout: Union[
|
|
60
61
|
None,
|
|
61
62
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -77,7 +78,7 @@ class DefaultApi:
|
|
|
77
78
|
:param create_credentials_payload: (required)
|
|
78
79
|
:type create_credentials_payload: CreateCredentialsPayload
|
|
79
80
|
:param x_request_id:
|
|
80
|
-
:type x_request_id:
|
|
81
|
+
:type x_request_id: UUID
|
|
81
82
|
:param _request_timeout: timeout setting for this request. If one
|
|
82
83
|
number provided, it will be total request
|
|
83
84
|
timeout. It can also be a pair (tuple) of
|
|
@@ -131,7 +132,7 @@ class DefaultApi:
|
|
|
131
132
|
project_id: StrictStr,
|
|
132
133
|
region: StrictStr,
|
|
133
134
|
create_credentials_payload: CreateCredentialsPayload,
|
|
134
|
-
x_request_id: Optional[
|
|
135
|
+
x_request_id: Optional[UUID] = None,
|
|
135
136
|
_request_timeout: Union[
|
|
136
137
|
None,
|
|
137
138
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -153,7 +154,7 @@ class DefaultApi:
|
|
|
153
154
|
:param create_credentials_payload: (required)
|
|
154
155
|
:type create_credentials_payload: CreateCredentialsPayload
|
|
155
156
|
:param x_request_id:
|
|
156
|
-
:type x_request_id:
|
|
157
|
+
:type x_request_id: UUID
|
|
157
158
|
:param _request_timeout: timeout setting for this request. If one
|
|
158
159
|
number provided, it will be total request
|
|
159
160
|
timeout. It can also be a pair (tuple) of
|
|
@@ -207,7 +208,7 @@ class DefaultApi:
|
|
|
207
208
|
project_id: StrictStr,
|
|
208
209
|
region: StrictStr,
|
|
209
210
|
create_credentials_payload: CreateCredentialsPayload,
|
|
210
|
-
x_request_id: Optional[
|
|
211
|
+
x_request_id: Optional[UUID] = None,
|
|
211
212
|
_request_timeout: Union[
|
|
212
213
|
None,
|
|
213
214
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -229,7 +230,7 @@ class DefaultApi:
|
|
|
229
230
|
:param create_credentials_payload: (required)
|
|
230
231
|
:type create_credentials_payload: CreateCredentialsPayload
|
|
231
232
|
:param x_request_id:
|
|
232
|
-
:type x_request_id:
|
|
233
|
+
:type x_request_id: UUID
|
|
233
234
|
:param _request_timeout: timeout setting for this request. If one
|
|
234
235
|
number provided, it will be total request
|
|
235
236
|
timeout. It can also be a pair (tuple) of
|
|
@@ -346,7 +347,7 @@ class DefaultApi:
|
|
|
346
347
|
project_id: StrictStr,
|
|
347
348
|
region: StrictStr,
|
|
348
349
|
create_load_balancer_payload: CreateLoadBalancerPayload,
|
|
349
|
-
x_request_id: Optional[
|
|
350
|
+
x_request_id: Optional[UUID] = None,
|
|
350
351
|
_request_timeout: Union[
|
|
351
352
|
None,
|
|
352
353
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -368,7 +369,7 @@ class DefaultApi:
|
|
|
368
369
|
:param create_load_balancer_payload: (required)
|
|
369
370
|
:type create_load_balancer_payload: CreateLoadBalancerPayload
|
|
370
371
|
:param x_request_id:
|
|
371
|
-
:type x_request_id:
|
|
372
|
+
:type x_request_id: UUID
|
|
372
373
|
:param _request_timeout: timeout setting for this request. If one
|
|
373
374
|
number provided, it will be total request
|
|
374
375
|
timeout. It can also be a pair (tuple) of
|
|
@@ -423,7 +424,7 @@ class DefaultApi:
|
|
|
423
424
|
project_id: StrictStr,
|
|
424
425
|
region: StrictStr,
|
|
425
426
|
create_load_balancer_payload: CreateLoadBalancerPayload,
|
|
426
|
-
x_request_id: Optional[
|
|
427
|
+
x_request_id: Optional[UUID] = None,
|
|
427
428
|
_request_timeout: Union[
|
|
428
429
|
None,
|
|
429
430
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -445,7 +446,7 @@ class DefaultApi:
|
|
|
445
446
|
:param create_load_balancer_payload: (required)
|
|
446
447
|
:type create_load_balancer_payload: CreateLoadBalancerPayload
|
|
447
448
|
:param x_request_id:
|
|
448
|
-
:type x_request_id:
|
|
449
|
+
:type x_request_id: UUID
|
|
449
450
|
:param _request_timeout: timeout setting for this request. If one
|
|
450
451
|
number provided, it will be total request
|
|
451
452
|
timeout. It can also be a pair (tuple) of
|
|
@@ -500,7 +501,7 @@ class DefaultApi:
|
|
|
500
501
|
project_id: StrictStr,
|
|
501
502
|
region: StrictStr,
|
|
502
503
|
create_load_balancer_payload: CreateLoadBalancerPayload,
|
|
503
|
-
x_request_id: Optional[
|
|
504
|
+
x_request_id: Optional[UUID] = None,
|
|
504
505
|
_request_timeout: Union[
|
|
505
506
|
None,
|
|
506
507
|
Annotated[StrictFloat, Field(gt=0)],
|
|
@@ -522,7 +523,7 @@ class DefaultApi:
|
|
|
522
523
|
:param create_load_balancer_payload: (required)
|
|
523
524
|
:type create_load_balancer_payload: CreateLoadBalancerPayload
|
|
524
525
|
:param x_request_id:
|
|
525
|
-
:type x_request_id:
|
|
526
|
+
:type x_request_id: UUID
|
|
526
527
|
:param _request_timeout: timeout setting for this request. If one
|
|
527
528
|
number provided, it will be total request
|
|
528
529
|
timeout. It can also be a pair (tuple) of
|
|
@@ -1729,7 +1730,7 @@ class DefaultApi:
|
|
|
1729
1730
|
) -> GetQuotaResponse:
|
|
1730
1731
|
"""Get the quota of Application Load Balancers in a project.
|
|
1731
1732
|
|
|
1732
|
-
Retrieves the configured Application Load Balancer quota for the project. Limit can be changed via service request.
|
|
1733
|
+
Retrieves the configured Application Load Balancer quota for the project. Limit can be changed via service request.
|
|
1733
1734
|
|
|
1734
1735
|
:param project_id: (required)
|
|
1735
1736
|
:type project_id: str
|
|
@@ -1797,7 +1798,7 @@ class DefaultApi:
|
|
|
1797
1798
|
) -> ApiResponse[GetQuotaResponse]:
|
|
1798
1799
|
"""Get the quota of Application Load Balancers in a project.
|
|
1799
1800
|
|
|
1800
|
-
Retrieves the configured Application Load Balancer quota for the project. Limit can be changed via service request.
|
|
1801
|
+
Retrieves the configured Application Load Balancer quota for the project. Limit can be changed via service request.
|
|
1801
1802
|
|
|
1802
1803
|
:param project_id: (required)
|
|
1803
1804
|
:type project_id: str
|
|
@@ -1865,7 +1866,7 @@ class DefaultApi:
|
|
|
1865
1866
|
) -> RESTResponseType:
|
|
1866
1867
|
"""Get the quota of Application Load Balancers in a project.
|
|
1867
1868
|
|
|
1868
|
-
Retrieves the configured Application Load Balancer quota for the project. Limit can be changed via service request.
|
|
1869
|
+
Retrieves the configured Application Load Balancer quota for the project. Limit can be changed via service request.
|
|
1869
1870
|
|
|
1870
1871
|
:param project_id: (required)
|
|
1871
1872
|
:type project_id: str
|
|
@@ -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:
|
{stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/create_load_balancer_payload.py
RENAMED
|
@@ -198,16 +198,16 @@ class CreateLoadBalancerPayload(BaseModel):
|
|
|
198
198
|
# override the default output from pydantic by calling `to_dict()` of each item in errors (list)
|
|
199
199
|
_items = []
|
|
200
200
|
if self.errors:
|
|
201
|
-
for
|
|
202
|
-
if
|
|
203
|
-
_items.append(
|
|
201
|
+
for _item_errors in self.errors:
|
|
202
|
+
if _item_errors:
|
|
203
|
+
_items.append(_item_errors.to_dict())
|
|
204
204
|
_dict["errors"] = _items
|
|
205
205
|
# override the default output from pydantic by calling `to_dict()` of each item in listeners (list)
|
|
206
206
|
_items = []
|
|
207
207
|
if self.listeners:
|
|
208
|
-
for
|
|
209
|
-
if
|
|
210
|
-
_items.append(
|
|
208
|
+
for _item_listeners in self.listeners:
|
|
209
|
+
if _item_listeners:
|
|
210
|
+
_items.append(_item_listeners.to_dict())
|
|
211
211
|
_dict["listeners"] = _items
|
|
212
212
|
# override the default output from pydantic by calling `to_dict()` of load_balancer_security_group
|
|
213
213
|
if self.load_balancer_security_group:
|
|
@@ -215,9 +215,9 @@ class CreateLoadBalancerPayload(BaseModel):
|
|
|
215
215
|
# override the default output from pydantic by calling `to_dict()` of each item in networks (list)
|
|
216
216
|
_items = []
|
|
217
217
|
if self.networks:
|
|
218
|
-
for
|
|
219
|
-
if
|
|
220
|
-
_items.append(
|
|
218
|
+
for _item_networks in self.networks:
|
|
219
|
+
if _item_networks:
|
|
220
|
+
_items.append(_item_networks.to_dict())
|
|
221
221
|
_dict["networks"] = _items
|
|
222
222
|
# override the default output from pydantic by calling `to_dict()` of options
|
|
223
223
|
if self.options:
|
|
@@ -225,9 +225,9 @@ class CreateLoadBalancerPayload(BaseModel):
|
|
|
225
225
|
# override the default output from pydantic by calling `to_dict()` of each item in target_pools (list)
|
|
226
226
|
_items = []
|
|
227
227
|
if self.target_pools:
|
|
228
|
-
for
|
|
229
|
-
if
|
|
230
|
-
_items.append(
|
|
228
|
+
for _item_target_pools in self.target_pools:
|
|
229
|
+
if _item_target_pools:
|
|
230
|
+
_items.append(_item_target_pools.to_dict())
|
|
231
231
|
_dict["targetPools"] = _items
|
|
232
232
|
# override the default output from pydantic by calling `to_dict()` of target_security_group
|
|
233
233
|
if self.target_security_group:
|
|
@@ -17,6 +17,7 @@ import json
|
|
|
17
17
|
import pprint
|
|
18
18
|
import re # noqa: F401
|
|
19
19
|
from typing import Any, ClassVar, Dict, List, Optional, Set
|
|
20
|
+
from uuid import UUID
|
|
20
21
|
|
|
21
22
|
from pydantic import BaseModel, ConfigDict, Field, field_validator
|
|
22
23
|
from typing_extensions import Annotated, Self
|
|
@@ -27,19 +28,17 @@ class GetQuotaResponse(BaseModel):
|
|
|
27
28
|
GetQuotaResponse
|
|
28
29
|
""" # noqa: E501
|
|
29
30
|
|
|
30
|
-
max_credentials: Optional[Annotated[int, Field(le=
|
|
31
|
+
max_credentials: Optional[Annotated[int, Field(le=1000000, strict=True, ge=-1)]] = Field(
|
|
31
32
|
default=None,
|
|
32
33
|
description="The maximum number of observability credentials that can be stored in this project.",
|
|
33
34
|
alias="maxCredentials",
|
|
34
35
|
)
|
|
35
|
-
max_load_balancers: Optional[Annotated[int, Field(le=
|
|
36
|
+
max_load_balancers: Optional[Annotated[int, Field(le=1000000, strict=True, ge=-1)]] = Field(
|
|
36
37
|
default=None,
|
|
37
38
|
description="The maximum number of load balancing servers in this project.",
|
|
38
39
|
alias="maxLoadBalancers",
|
|
39
40
|
)
|
|
40
|
-
project_id: Optional[
|
|
41
|
-
default=None, description="Project identifier", alias="projectId"
|
|
42
|
-
)
|
|
41
|
+
project_id: Optional[UUID] = Field(default=None, description="Project identifier", alias="projectId")
|
|
43
42
|
region: Optional[Annotated[str, Field(strict=True)]] = Field(default=None, description="Region")
|
|
44
43
|
used_credentials: Optional[Annotated[int, Field(le=1000000, strict=True, ge=-1)]] = Field(
|
|
45
44
|
default=None,
|
|
@@ -76,9 +76,9 @@ class HostConfig(BaseModel):
|
|
|
76
76
|
# override the default output from pydantic by calling `to_dict()` of each item in rules (list)
|
|
77
77
|
_items = []
|
|
78
78
|
if self.rules:
|
|
79
|
-
for
|
|
80
|
-
if
|
|
81
|
-
_items.append(
|
|
79
|
+
for _item_rules in self.rules:
|
|
80
|
+
if _item_rules:
|
|
81
|
+
_items.append(_item_rules.to_dict())
|
|
82
82
|
_dict["rules"] = _items
|
|
83
83
|
return _dict
|
|
84
84
|
|
|
@@ -71,9 +71,9 @@ class ListCredentialsResponse(BaseModel):
|
|
|
71
71
|
# override the default output from pydantic by calling `to_dict()` of each item in credentials (list)
|
|
72
72
|
_items = []
|
|
73
73
|
if self.credentials:
|
|
74
|
-
for
|
|
75
|
-
if
|
|
76
|
-
_items.append(
|
|
74
|
+
for _item_credentials in self.credentials:
|
|
75
|
+
if _item_credentials:
|
|
76
|
+
_items.append(_item_credentials.to_dict())
|
|
77
77
|
_dict["credentials"] = _items
|
|
78
78
|
return _dict
|
|
79
79
|
|
{stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/list_load_balancers_response.py
RENAMED
|
@@ -87,9 +87,9 @@ class ListLoadBalancersResponse(BaseModel):
|
|
|
87
87
|
# override the default output from pydantic by calling `to_dict()` of each item in load_balancers (list)
|
|
88
88
|
_items = []
|
|
89
89
|
if self.load_balancers:
|
|
90
|
-
for
|
|
91
|
-
if
|
|
92
|
-
_items.append(
|
|
90
|
+
for _item_load_balancers in self.load_balancers:
|
|
91
|
+
if _item_load_balancers:
|
|
92
|
+
_items.append(_item_load_balancers.to_dict())
|
|
93
93
|
_dict["loadBalancers"] = _items
|
|
94
94
|
return _dict
|
|
95
95
|
|
|
@@ -73,9 +73,9 @@ class ListPlansResponse(BaseModel):
|
|
|
73
73
|
# override the default output from pydantic by calling `to_dict()` of each item in valid_plans (list)
|
|
74
74
|
_items = []
|
|
75
75
|
if self.valid_plans:
|
|
76
|
-
for
|
|
77
|
-
if
|
|
78
|
-
_items.append(
|
|
76
|
+
for _item_valid_plans in self.valid_plans:
|
|
77
|
+
if _item_valid_plans:
|
|
78
|
+
_items.append(_item_valid_plans.to_dict())
|
|
79
79
|
_dict["validPlans"] = _items
|
|
80
80
|
return _dict
|
|
81
81
|
|
|
@@ -198,16 +198,16 @@ class LoadBalancer(BaseModel):
|
|
|
198
198
|
# override the default output from pydantic by calling `to_dict()` of each item in errors (list)
|
|
199
199
|
_items = []
|
|
200
200
|
if self.errors:
|
|
201
|
-
for
|
|
202
|
-
if
|
|
203
|
-
_items.append(
|
|
201
|
+
for _item_errors in self.errors:
|
|
202
|
+
if _item_errors:
|
|
203
|
+
_items.append(_item_errors.to_dict())
|
|
204
204
|
_dict["errors"] = _items
|
|
205
205
|
# override the default output from pydantic by calling `to_dict()` of each item in listeners (list)
|
|
206
206
|
_items = []
|
|
207
207
|
if self.listeners:
|
|
208
|
-
for
|
|
209
|
-
if
|
|
210
|
-
_items.append(
|
|
208
|
+
for _item_listeners in self.listeners:
|
|
209
|
+
if _item_listeners:
|
|
210
|
+
_items.append(_item_listeners.to_dict())
|
|
211
211
|
_dict["listeners"] = _items
|
|
212
212
|
# override the default output from pydantic by calling `to_dict()` of load_balancer_security_group
|
|
213
213
|
if self.load_balancer_security_group:
|
|
@@ -215,9 +215,9 @@ class LoadBalancer(BaseModel):
|
|
|
215
215
|
# override the default output from pydantic by calling `to_dict()` of each item in networks (list)
|
|
216
216
|
_items = []
|
|
217
217
|
if self.networks:
|
|
218
|
-
for
|
|
219
|
-
if
|
|
220
|
-
_items.append(
|
|
218
|
+
for _item_networks in self.networks:
|
|
219
|
+
if _item_networks:
|
|
220
|
+
_items.append(_item_networks.to_dict())
|
|
221
221
|
_dict["networks"] = _items
|
|
222
222
|
# override the default output from pydantic by calling `to_dict()` of options
|
|
223
223
|
if self.options:
|
|
@@ -225,9 +225,9 @@ class LoadBalancer(BaseModel):
|
|
|
225
225
|
# override the default output from pydantic by calling `to_dict()` of each item in target_pools (list)
|
|
226
226
|
_items = []
|
|
227
227
|
if self.target_pools:
|
|
228
|
-
for
|
|
229
|
-
if
|
|
230
|
-
_items.append(
|
|
228
|
+
for _item_target_pools in self.target_pools:
|
|
229
|
+
if _item_target_pools:
|
|
230
|
+
_items.append(_item_target_pools.to_dict())
|
|
231
231
|
_dict["targetPools"] = _items
|
|
232
232
|
# override the default output from pydantic by calling `to_dict()` of target_security_group
|
|
233
233
|
if self.target_security_group:
|
|
@@ -17,9 +17,10 @@ import json
|
|
|
17
17
|
import pprint
|
|
18
18
|
import re # noqa: F401
|
|
19
19
|
from typing import Any, ClassVar, Dict, List, Optional, Set
|
|
20
|
+
from uuid import UUID
|
|
20
21
|
|
|
21
22
|
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
|
|
22
|
-
from typing_extensions import
|
|
23
|
+
from typing_extensions import Self
|
|
23
24
|
|
|
24
25
|
|
|
25
26
|
class Network(BaseModel):
|
|
@@ -27,7 +28,7 @@ class Network(BaseModel):
|
|
|
27
28
|
Network
|
|
28
29
|
""" # noqa: E501
|
|
29
30
|
|
|
30
|
-
network_id: Optional[
|
|
31
|
+
network_id: Optional[UUID] = Field(
|
|
31
32
|
default=None,
|
|
32
33
|
description="STACKIT network ID the Application Load Balancer and/or targets are in.",
|
|
33
34
|
alias="networkId",
|
|
@@ -71,9 +71,9 @@ class ProtocolOptionsHTTP(BaseModel):
|
|
|
71
71
|
# override the default output from pydantic by calling `to_dict()` of each item in hosts (list)
|
|
72
72
|
_items = []
|
|
73
73
|
if self.hosts:
|
|
74
|
-
for
|
|
75
|
-
if
|
|
76
|
-
_items.append(
|
|
74
|
+
for _item_hosts in self.hosts:
|
|
75
|
+
if _item_hosts:
|
|
76
|
+
_items.append(_item_hosts.to_dict())
|
|
77
77
|
_dict["hosts"] = _items
|
|
78
78
|
return _dict
|
|
79
79
|
|
|
@@ -103,9 +103,9 @@ class Rule(BaseModel):
|
|
|
103
103
|
# override the default output from pydantic by calling `to_dict()` of each item in headers (list)
|
|
104
104
|
_items = []
|
|
105
105
|
if self.headers:
|
|
106
|
-
for
|
|
107
|
-
if
|
|
108
|
-
_items.append(
|
|
106
|
+
for _item_headers in self.headers:
|
|
107
|
+
if _item_headers:
|
|
108
|
+
_items.append(_item_headers.to_dict())
|
|
109
109
|
_dict["headers"] = _items
|
|
110
110
|
# override the default output from pydantic by calling `to_dict()` of path
|
|
111
111
|
if self.path:
|
|
@@ -113,9 +113,9 @@ class Rule(BaseModel):
|
|
|
113
113
|
# override the default output from pydantic by calling `to_dict()` of each item in query_parameters (list)
|
|
114
114
|
_items = []
|
|
115
115
|
if self.query_parameters:
|
|
116
|
-
for
|
|
117
|
-
if
|
|
118
|
-
_items.append(
|
|
116
|
+
for _item_query_parameters in self.query_parameters:
|
|
117
|
+
if _item_query_parameters:
|
|
118
|
+
_items.append(_item_query_parameters.to_dict())
|
|
119
119
|
_dict["queryParameters"] = _items
|
|
120
120
|
return _dict
|
|
121
121
|
|
|
@@ -82,9 +82,9 @@ class Status(BaseModel):
|
|
|
82
82
|
# override the default output from pydantic by calling `to_dict()` of each item in details (list)
|
|
83
83
|
_items = []
|
|
84
84
|
if self.details:
|
|
85
|
-
for
|
|
86
|
-
if
|
|
87
|
-
_items.append(
|
|
85
|
+
for _item_details in self.details:
|
|
86
|
+
if _item_details:
|
|
87
|
+
_items.append(_item_details.to_dict())
|
|
88
88
|
_dict["details"] = _items
|
|
89
89
|
return _dict
|
|
90
90
|
|
|
@@ -97,9 +97,9 @@ class TargetPool(BaseModel):
|
|
|
97
97
|
# override the default output from pydantic by calling `to_dict()` of each item in targets (list)
|
|
98
98
|
_items = []
|
|
99
99
|
if self.targets:
|
|
100
|
-
for
|
|
101
|
-
if
|
|
102
|
-
_items.append(
|
|
100
|
+
for _item_targets in self.targets:
|
|
101
|
+
if _item_targets:
|
|
102
|
+
_items.append(_item_targets.to_dict())
|
|
103
103
|
_dict["targets"] = _items
|
|
104
104
|
# override the default output from pydantic by calling `to_dict()` of tls_config
|
|
105
105
|
if self.tls_config:
|
{stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/update_load_balancer_payload.py
RENAMED
|
@@ -196,16 +196,16 @@ class UpdateLoadBalancerPayload(BaseModel):
|
|
|
196
196
|
# override the default output from pydantic by calling `to_dict()` of each item in errors (list)
|
|
197
197
|
_items = []
|
|
198
198
|
if self.errors:
|
|
199
|
-
for
|
|
200
|
-
if
|
|
201
|
-
_items.append(
|
|
199
|
+
for _item_errors in self.errors:
|
|
200
|
+
if _item_errors:
|
|
201
|
+
_items.append(_item_errors.to_dict())
|
|
202
202
|
_dict["errors"] = _items
|
|
203
203
|
# override the default output from pydantic by calling `to_dict()` of each item in listeners (list)
|
|
204
204
|
_items = []
|
|
205
205
|
if self.listeners:
|
|
206
|
-
for
|
|
207
|
-
if
|
|
208
|
-
_items.append(
|
|
206
|
+
for _item_listeners in self.listeners:
|
|
207
|
+
if _item_listeners:
|
|
208
|
+
_items.append(_item_listeners.to_dict())
|
|
209
209
|
_dict["listeners"] = _items
|
|
210
210
|
# override the default output from pydantic by calling `to_dict()` of load_balancer_security_group
|
|
211
211
|
if self.load_balancer_security_group:
|
|
@@ -213,9 +213,9 @@ class UpdateLoadBalancerPayload(BaseModel):
|
|
|
213
213
|
# override the default output from pydantic by calling `to_dict()` of each item in networks (list)
|
|
214
214
|
_items = []
|
|
215
215
|
if self.networks:
|
|
216
|
-
for
|
|
217
|
-
if
|
|
218
|
-
_items.append(
|
|
216
|
+
for _item_networks in self.networks:
|
|
217
|
+
if _item_networks:
|
|
218
|
+
_items.append(_item_networks.to_dict())
|
|
219
219
|
_dict["networks"] = _items
|
|
220
220
|
# override the default output from pydantic by calling `to_dict()` of options
|
|
221
221
|
if self.options:
|
|
@@ -223,9 +223,9 @@ class UpdateLoadBalancerPayload(BaseModel):
|
|
|
223
223
|
# override the default output from pydantic by calling `to_dict()` of each item in target_pools (list)
|
|
224
224
|
_items = []
|
|
225
225
|
if self.target_pools:
|
|
226
|
-
for
|
|
227
|
-
if
|
|
228
|
-
_items.append(
|
|
226
|
+
for _item_target_pools in self.target_pools:
|
|
227
|
+
if _item_target_pools:
|
|
228
|
+
_items.append(_item_target_pools.to_dict())
|
|
229
229
|
_dict["targetPools"] = _items
|
|
230
230
|
# override the default output from pydantic by calling `to_dict()` of target_security_group
|
|
231
231
|
if self.target_security_group:
|
{stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/update_target_pool_payload.py
RENAMED
|
@@ -97,9 +97,9 @@ class UpdateTargetPoolPayload(BaseModel):
|
|
|
97
97
|
# override the default output from pydantic by calling `to_dict()` of each item in targets (list)
|
|
98
98
|
_items = []
|
|
99
99
|
if self.targets:
|
|
100
|
-
for
|
|
101
|
-
if
|
|
102
|
-
_items.append(
|
|
100
|
+
for _item_targets in self.targets:
|
|
101
|
+
if _item_targets:
|
|
102
|
+
_items.append(_item_targets.to_dict())
|
|
103
103
|
_dict["targets"] = _items
|
|
104
104
|
# override the default output from pydantic by calling `to_dict()` of tls_config
|
|
105
105
|
if self.tls_config:
|
|
@@ -38,12 +38,17 @@ class RESTResponse(io.IOBase):
|
|
|
38
38
|
self.data = self.response.content
|
|
39
39
|
return self.data
|
|
40
40
|
|
|
41
|
+
@property
|
|
42
|
+
def headers(self):
|
|
43
|
+
"""Returns a dictionary of response headers."""
|
|
44
|
+
return self.response.headers
|
|
45
|
+
|
|
41
46
|
def getheaders(self):
|
|
42
|
-
"""Returns a dictionary of the response headers."""
|
|
47
|
+
"""Returns a dictionary of the response headers; use ``headers`` instead."""
|
|
43
48
|
return self.response.headers
|
|
44
49
|
|
|
45
50
|
def getheader(self, name, default=None):
|
|
46
|
-
"""Returns a given response header."""
|
|
51
|
+
"""Returns a given response header; use ``headers.get()`` instead."""
|
|
47
52
|
return self.response.headers.get(name, default)
|
|
48
53
|
|
|
49
54
|
|
|
@@ -93,6 +98,7 @@ class RESTClientObject:
|
|
|
93
98
|
url,
|
|
94
99
|
data=request_body,
|
|
95
100
|
headers=headers,
|
|
101
|
+
timeout=_request_timeout,
|
|
96
102
|
)
|
|
97
103
|
elif content_type == "application/x-www-form-urlencoded":
|
|
98
104
|
r = self.session.request(
|
|
@@ -100,6 +106,7 @@ class RESTClientObject:
|
|
|
100
106
|
url,
|
|
101
107
|
params=post_params,
|
|
102
108
|
headers=headers,
|
|
109
|
+
timeout=_request_timeout,
|
|
103
110
|
)
|
|
104
111
|
elif content_type == "multipart/form-data":
|
|
105
112
|
# must del headers['Content-Type'], or the correct
|
|
@@ -113,6 +120,7 @@ class RESTClientObject:
|
|
|
113
120
|
url,
|
|
114
121
|
files=post_params,
|
|
115
122
|
headers=headers,
|
|
123
|
+
timeout=_request_timeout,
|
|
116
124
|
)
|
|
117
125
|
# Pass a `string` parameter directly in the body to support
|
|
118
126
|
# other content types than JSON when `body` argument is
|
|
@@ -123,10 +131,17 @@ class RESTClientObject:
|
|
|
123
131
|
url,
|
|
124
132
|
data=body,
|
|
125
133
|
headers=headers,
|
|
134
|
+
timeout=_request_timeout,
|
|
126
135
|
)
|
|
127
136
|
elif headers["Content-Type"].startswith("text/") and isinstance(body, bool):
|
|
128
137
|
request_body = "true" if body else "false"
|
|
129
|
-
r = self.session.request(
|
|
138
|
+
r = self.session.request(
|
|
139
|
+
method,
|
|
140
|
+
url,
|
|
141
|
+
data=request_body,
|
|
142
|
+
headers=headers,
|
|
143
|
+
timeout=_request_timeout,
|
|
144
|
+
)
|
|
130
145
|
else:
|
|
131
146
|
# Cannot generate the request from given parameters
|
|
132
147
|
msg = """Cannot prepare a request message for provided
|
|
@@ -140,6 +155,7 @@ class RESTClientObject:
|
|
|
140
155
|
url,
|
|
141
156
|
params={},
|
|
142
157
|
headers=headers,
|
|
158
|
+
timeout=_request_timeout,
|
|
143
159
|
)
|
|
144
160
|
except requests.exceptions.SSLError as e:
|
|
145
161
|
msg = "\n".join([type(e).__name__, str(e)])
|
|
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_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/create_credentials_payload.py
RENAMED
|
File without changes
|
{stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/create_credentials_response.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
|
{stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/loadbalancer_option_access_control.py
RENAMED
|
File without changes
|
|
File without changes
|
{stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/loadbalancer_option_metrics.py
RENAMED
|
File without changes
|
{stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/loadbalancer_option_observability.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
|
{stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/update_credentials_payload.py
RENAMED
|
File without changes
|
{stackit_alb-0.9.0 → stackit_alb-0.9.2}/src/stackit/alb/models/update_credentials_response.py
RENAMED
|
File without changes
|
|
File without changes
|