stackit-albwaf 0.0.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_albwaf-0.0.1/.gitignore +267 -0
- stackit_albwaf-0.0.1/PKG-INFO +45 -0
- stackit_albwaf-0.0.1/README.md +22 -0
- stackit_albwaf-0.0.1/pyproject.toml +111 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/__init__.py +164 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/api/__init__.py +4 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/api/default_api.py +4611 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/api_client.py +649 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/api_response.py +22 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/configuration.py +162 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/exceptions.py +217 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/__init__.py +75 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/action.py +37 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/behavior.py +99 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/condition.py +102 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/condition_operator.py +87 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/condition_variable.py +87 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/create_custom_rule.py +109 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/create_custom_rule_group_payload.py +154 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/create_managed_rule_set_payload.py +141 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/create_waf_payload.py +183 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/crg_config_quota.py +87 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/crg_usage.py +87 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/get_behavior.py +107 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/get_custom_rule.py +111 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/get_custom_rule_group_response.py +118 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/get_limited_managed_rule_set_response.py +119 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/get_managed_rule_set_response.py +136 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/get_quota_response.py +132 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/get_waf_response.py +143 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/google_protobuf_any.py +98 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/list_custom_rule_group_response.py +121 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/list_managed_rule_set_response.py +121 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/list_waf_response.py +117 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/mode.py +37 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/mrs_config_quota.py +88 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/mrs_rule.py +99 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/mrs_rule_group.py +116 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/mrs_usage.py +83 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/operator.py +50 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/patch_managed_rule_set_payload.py +161 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/patch_mrs_rule.py +84 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/patch_mrs_rule_group.py +99 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/quotas.py +111 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/severity.py +42 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/status.py +112 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/transformation.py +40 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/type.py +35 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/update_custom_rule_group_payload.py +158 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/update_waf_payload.py +185 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/variable.py +56 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/waf_config_quota.py +88 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/waf_usage.py +102 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/models/waf_usage_item.py +91 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/py.typed +0 -0
- stackit_albwaf-0.0.1/src/stackit/albwaf/rest.py +163 -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
|
+
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: stackit-albwaf
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: STACKIT Application Load Balancer Web Application Firewall 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>
|
|
8
|
+
Classifier: License :: OSI Approved :: Apache Software License
|
|
9
|
+
Classifier: Operating System :: OS Independent
|
|
10
|
+
Classifier: Programming Language :: Python :: 3
|
|
11
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
13
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
17
|
+
Requires-Python: <4.0,>=3.10
|
|
18
|
+
Requires-Dist: pydantic>=2.9.2
|
|
19
|
+
Requires-Dist: python-dateutil>=2.9.0.post0
|
|
20
|
+
Requires-Dist: requests>=2.33.0
|
|
21
|
+
Requires-Dist: stackit-core>=0.0.1a
|
|
22
|
+
Description-Content-Type: text/markdown
|
|
23
|
+
|
|
24
|
+
# stackit.albwaf
|
|
25
|
+
Generate a Web Application Firewall (WAF) to use with Application Load Balancers (ALB). The name of the WAF configuration is used in the listener of the ALB. This will activate the WAF for that ALB. An ALB with a WAF can have Managed Rule Set (MRS) and in addition can have Custom Rule Group (CRG). To create a WAF one first needs to create all the configurations that are referenced in the WAF configuration. Currently this only consists of a rule configuration, which is written in Seclang. Once all configurations are created and referenced in the WAF configuration it can be used with an ALB. Currently updating a WAF configuration will not update an existing ALB until the Load Balancer VMs are restarted.
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
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.
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
## Installation & Usage
|
|
32
|
+
### pip install
|
|
33
|
+
|
|
34
|
+
```sh
|
|
35
|
+
pip install stackit-albwaf
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Then import the package:
|
|
39
|
+
```python
|
|
40
|
+
import stackit.albwaf
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Getting Started
|
|
44
|
+
|
|
45
|
+
[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.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# stackit.albwaf
|
|
2
|
+
Generate a Web Application Firewall (WAF) to use with Application Load Balancers (ALB). The name of the WAF configuration is used in the listener of the ALB. This will activate the WAF for that ALB. An ALB with a WAF can have Managed Rule Set (MRS) and in addition can have Custom Rule Group (CRG). To create a WAF one first needs to create all the configurations that are referenced in the WAF configuration. Currently this only consists of a rule configuration, which is written in Seclang. Once all configurations are created and referenced in the WAF configuration it can be used with an ALB. Currently updating a WAF configuration will not update an existing ALB until the Load Balancer VMs are restarted.
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
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.
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
## Installation & Usage
|
|
9
|
+
### pip install
|
|
10
|
+
|
|
11
|
+
```sh
|
|
12
|
+
pip install stackit-albwaf
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Then import the package:
|
|
16
|
+
```python
|
|
17
|
+
import stackit.albwaf
|
|
18
|
+
```
|
|
19
|
+
|
|
20
|
+
## Getting Started
|
|
21
|
+
|
|
22
|
+
[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.
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "stackit-albwaf"
|
|
3
|
+
version = "v0.0.1"
|
|
4
|
+
description = "STACKIT Application Load Balancer Web Application Firewall API"
|
|
5
|
+
authors = [{name = "STACKIT Developer Tools", email = "developer-tools@stackit.cloud"}]
|
|
6
|
+
requires-python = ">=3.10,<4.0"
|
|
7
|
+
readme = "README.md"
|
|
8
|
+
classifiers = [
|
|
9
|
+
"Programming Language :: Python :: 3",
|
|
10
|
+
"License :: OSI Approved :: Apache Software License",
|
|
11
|
+
"Operating System :: OS Independent",
|
|
12
|
+
"Programming Language :: Python :: 3.10",
|
|
13
|
+
"Programming Language :: Python :: 3.11",
|
|
14
|
+
"Programming Language :: Python :: 3.12",
|
|
15
|
+
"Programming Language :: Python :: 3.13",
|
|
16
|
+
"Programming Language :: Python :: 3.14",
|
|
17
|
+
"Programming Language :: Python :: 3.15",
|
|
18
|
+
]
|
|
19
|
+
dependencies = [
|
|
20
|
+
"stackit-core>=0.0.1a",
|
|
21
|
+
"requests>=2.33.0",
|
|
22
|
+
"pydantic>=2.9.2",
|
|
23
|
+
"python-dateutil>=2.9.0.post0",
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
[project.urls]
|
|
27
|
+
Homepage = "https://github.com/stackitcloud/stackit-sdk-python"
|
|
28
|
+
Issues = "https://github.com/stackitcloud/stackit-sdk-python/issues"
|
|
29
|
+
|
|
30
|
+
[dependency-groups]
|
|
31
|
+
dev = [
|
|
32
|
+
"black>=26.3.1",
|
|
33
|
+
"pytest>=9.1.1",
|
|
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
|
+
|
|
62
|
+
[build-system]
|
|
63
|
+
requires = ["hatchling"]
|
|
64
|
+
build-backend = "hatchling.build"
|
|
65
|
+
|
|
66
|
+
[tool.pytest.ini_options]
|
|
67
|
+
pythonpath = [
|
|
68
|
+
"src"
|
|
69
|
+
]
|
|
70
|
+
testpaths = [
|
|
71
|
+
"tests"
|
|
72
|
+
]
|
|
73
|
+
|
|
74
|
+
[tool.black]
|
|
75
|
+
line-length = 120
|
|
76
|
+
exclude = """
|
|
77
|
+
/(
|
|
78
|
+
.eggs
|
|
79
|
+
| .git
|
|
80
|
+
| .hg
|
|
81
|
+
| .mypy_cache
|
|
82
|
+
| .nox
|
|
83
|
+
| .pants.d
|
|
84
|
+
| .tox
|
|
85
|
+
| .venv
|
|
86
|
+
| _build
|
|
87
|
+
| buck-out
|
|
88
|
+
| build
|
|
89
|
+
| dist
|
|
90
|
+
| node_modules
|
|
91
|
+
| venv
|
|
92
|
+
)/
|
|
93
|
+
"""
|
|
94
|
+
|
|
95
|
+
[tool.isort]
|
|
96
|
+
profile = 'black'
|
|
97
|
+
|
|
98
|
+
[tool.flake8]
|
|
99
|
+
exclude= [".eggs", ".git", ".hg", ".mypy_cache", ".tox", ".venv", ".devcontainer", "venv", "_build", "buck-out", "build", "dist"]
|
|
100
|
+
statistics = true
|
|
101
|
+
show-source = false
|
|
102
|
+
max-line-length = 120
|
|
103
|
+
# E203,W503 and E704 are incompatible with the formatter black
|
|
104
|
+
# W291 needs to be disabled because some doc-strings get generated with trailing whitespace but black won't re-format comments
|
|
105
|
+
ignore = ["E203", "W503", "E704", "W291"]
|
|
106
|
+
inline-quotes = '"'
|
|
107
|
+
docstring-quotes = '"""'
|
|
108
|
+
multiline-quotes = '"""'
|
|
109
|
+
ban-relative-imports = true
|
|
110
|
+
# Exclude generated code
|
|
111
|
+
extend-exclude = [ "src/stackit/*/models/*", "src/stackit/*/api/*", "src/stackit/*/*.py" ]
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
# coding: utf-8
|
|
2
|
+
|
|
3
|
+
# flake8: noqa
|
|
4
|
+
|
|
5
|
+
"""
|
|
6
|
+
STACKIT Application Load Balancer Web Application Firewall API
|
|
7
|
+
|
|
8
|
+
Generate a Web Application Firewall (WAF) to use with Application Load Balancers (ALB). The name of the WAF configuration is used in the listener of the ALB. This will activate the WAF for that ALB. An ALB with a WAF can have Managed Rule Set (MRS) and in addition can have Custom Rule Group (CRG). To create a WAF one first needs to create all the configurations that are referenced in the WAF configuration. Currently this only consists of a rule configuration, which is written in Seclang. Once all configurations are created and referenced in the WAF configuration it can be used with an ALB. Currently updating a WAF configuration will not update an existing ALB until the Load Balancer VMs are restarted.
|
|
9
|
+
|
|
10
|
+
The version of the OpenAPI document: 1.0.0
|
|
11
|
+
Generated by OpenAPI Generator (https://openapi-generator.tech)
|
|
12
|
+
|
|
13
|
+
Do not edit the class manually.
|
|
14
|
+
""" # noqa: E501
|
|
15
|
+
|
|
16
|
+
__version__ = "1.0.0"
|
|
17
|
+
|
|
18
|
+
# Define package exports
|
|
19
|
+
__all__ = [
|
|
20
|
+
"DefaultApi",
|
|
21
|
+
"ApiResponse",
|
|
22
|
+
"ApiClient",
|
|
23
|
+
"HostConfiguration",
|
|
24
|
+
"OpenApiException",
|
|
25
|
+
"ApiTypeError",
|
|
26
|
+
"ApiValueError",
|
|
27
|
+
"ApiKeyError",
|
|
28
|
+
"ApiAttributeError",
|
|
29
|
+
"ApiException",
|
|
30
|
+
"Action",
|
|
31
|
+
"Behavior",
|
|
32
|
+
"CRGConfigQuota",
|
|
33
|
+
"CRGUsage",
|
|
34
|
+
"Condition",
|
|
35
|
+
"ConditionOperator",
|
|
36
|
+
"ConditionVariable",
|
|
37
|
+
"CreateCustomRule",
|
|
38
|
+
"CreateCustomRuleGroupPayload",
|
|
39
|
+
"CreateManagedRuleSetPayload",
|
|
40
|
+
"CreateWAFPayload",
|
|
41
|
+
"GetBehavior",
|
|
42
|
+
"GetCustomRule",
|
|
43
|
+
"GetCustomRuleGroupResponse",
|
|
44
|
+
"GetLimitedManagedRuleSetResponse",
|
|
45
|
+
"GetManagedRuleSetResponse",
|
|
46
|
+
"GetQuotaResponse",
|
|
47
|
+
"GetWAFResponse",
|
|
48
|
+
"GoogleProtobufAny",
|
|
49
|
+
"ListCustomRuleGroupResponse",
|
|
50
|
+
"ListManagedRuleSetResponse",
|
|
51
|
+
"ListWAFResponse",
|
|
52
|
+
"MRSConfigQuota",
|
|
53
|
+
"MRSRule",
|
|
54
|
+
"MRSRuleGroup",
|
|
55
|
+
"MRSUsage",
|
|
56
|
+
"Mode",
|
|
57
|
+
"Operator",
|
|
58
|
+
"PatchMRSRule",
|
|
59
|
+
"PatchMRSRuleGroup",
|
|
60
|
+
"PatchManagedRuleSetPayload",
|
|
61
|
+
"Quotas",
|
|
62
|
+
"Severity",
|
|
63
|
+
"Status",
|
|
64
|
+
"Transformation",
|
|
65
|
+
"Type",
|
|
66
|
+
"UpdateCustomRuleGroupPayload",
|
|
67
|
+
"UpdateWAFPayload",
|
|
68
|
+
"Variable",
|
|
69
|
+
"WAFConfigQuota",
|
|
70
|
+
"WAFUsage",
|
|
71
|
+
"WAFUsageItem",
|
|
72
|
+
]
|
|
73
|
+
|
|
74
|
+
# import apis into sdk package
|
|
75
|
+
from stackit.albwaf.api.default_api import DefaultApi as DefaultApi
|
|
76
|
+
from stackit.albwaf.api_client import ApiClient as ApiClient
|
|
77
|
+
|
|
78
|
+
# import ApiClient
|
|
79
|
+
from stackit.albwaf.api_response import ApiResponse as ApiResponse
|
|
80
|
+
from stackit.albwaf.configuration import HostConfiguration as HostConfiguration
|
|
81
|
+
from stackit.albwaf.exceptions import ApiAttributeError as ApiAttributeError
|
|
82
|
+
from stackit.albwaf.exceptions import ApiException as ApiException
|
|
83
|
+
from stackit.albwaf.exceptions import ApiKeyError as ApiKeyError
|
|
84
|
+
from stackit.albwaf.exceptions import ApiTypeError as ApiTypeError
|
|
85
|
+
from stackit.albwaf.exceptions import ApiValueError as ApiValueError
|
|
86
|
+
from stackit.albwaf.exceptions import OpenApiException as OpenApiException
|
|
87
|
+
|
|
88
|
+
# import models into sdk package
|
|
89
|
+
from stackit.albwaf.models.action import Action as Action
|
|
90
|
+
from stackit.albwaf.models.behavior import Behavior as Behavior
|
|
91
|
+
from stackit.albwaf.models.condition import Condition as Condition
|
|
92
|
+
from stackit.albwaf.models.condition_operator import (
|
|
93
|
+
ConditionOperator as ConditionOperator,
|
|
94
|
+
)
|
|
95
|
+
from stackit.albwaf.models.condition_variable import (
|
|
96
|
+
ConditionVariable as ConditionVariable,
|
|
97
|
+
)
|
|
98
|
+
from stackit.albwaf.models.create_custom_rule import (
|
|
99
|
+
CreateCustomRule as CreateCustomRule,
|
|
100
|
+
)
|
|
101
|
+
from stackit.albwaf.models.create_custom_rule_group_payload import (
|
|
102
|
+
CreateCustomRuleGroupPayload as CreateCustomRuleGroupPayload,
|
|
103
|
+
)
|
|
104
|
+
from stackit.albwaf.models.create_managed_rule_set_payload import (
|
|
105
|
+
CreateManagedRuleSetPayload as CreateManagedRuleSetPayload,
|
|
106
|
+
)
|
|
107
|
+
from stackit.albwaf.models.create_waf_payload import (
|
|
108
|
+
CreateWAFPayload as CreateWAFPayload,
|
|
109
|
+
)
|
|
110
|
+
from stackit.albwaf.models.crg_config_quota import CRGConfigQuota as CRGConfigQuota
|
|
111
|
+
from stackit.albwaf.models.crg_usage import CRGUsage as CRGUsage
|
|
112
|
+
from stackit.albwaf.models.get_behavior import GetBehavior as GetBehavior
|
|
113
|
+
from stackit.albwaf.models.get_custom_rule import GetCustomRule as GetCustomRule
|
|
114
|
+
from stackit.albwaf.models.get_custom_rule_group_response import (
|
|
115
|
+
GetCustomRuleGroupResponse as GetCustomRuleGroupResponse,
|
|
116
|
+
)
|
|
117
|
+
from stackit.albwaf.models.get_limited_managed_rule_set_response import (
|
|
118
|
+
GetLimitedManagedRuleSetResponse as GetLimitedManagedRuleSetResponse,
|
|
119
|
+
)
|
|
120
|
+
from stackit.albwaf.models.get_managed_rule_set_response import (
|
|
121
|
+
GetManagedRuleSetResponse as GetManagedRuleSetResponse,
|
|
122
|
+
)
|
|
123
|
+
from stackit.albwaf.models.get_quota_response import (
|
|
124
|
+
GetQuotaResponse as GetQuotaResponse,
|
|
125
|
+
)
|
|
126
|
+
from stackit.albwaf.models.get_waf_response import GetWAFResponse as GetWAFResponse
|
|
127
|
+
from stackit.albwaf.models.google_protobuf_any import (
|
|
128
|
+
GoogleProtobufAny as GoogleProtobufAny,
|
|
129
|
+
)
|
|
130
|
+
from stackit.albwaf.models.list_custom_rule_group_response import (
|
|
131
|
+
ListCustomRuleGroupResponse as ListCustomRuleGroupResponse,
|
|
132
|
+
)
|
|
133
|
+
from stackit.albwaf.models.list_managed_rule_set_response import (
|
|
134
|
+
ListManagedRuleSetResponse as ListManagedRuleSetResponse,
|
|
135
|
+
)
|
|
136
|
+
from stackit.albwaf.models.list_waf_response import ListWAFResponse as ListWAFResponse
|
|
137
|
+
from stackit.albwaf.models.mode import Mode as Mode
|
|
138
|
+
from stackit.albwaf.models.mrs_config_quota import MRSConfigQuota as MRSConfigQuota
|
|
139
|
+
from stackit.albwaf.models.mrs_rule import MRSRule as MRSRule
|
|
140
|
+
from stackit.albwaf.models.mrs_rule_group import MRSRuleGroup as MRSRuleGroup
|
|
141
|
+
from stackit.albwaf.models.mrs_usage import MRSUsage as MRSUsage
|
|
142
|
+
from stackit.albwaf.models.operator import Operator as Operator
|
|
143
|
+
from stackit.albwaf.models.patch_managed_rule_set_payload import (
|
|
144
|
+
PatchManagedRuleSetPayload as PatchManagedRuleSetPayload,
|
|
145
|
+
)
|
|
146
|
+
from stackit.albwaf.models.patch_mrs_rule import PatchMRSRule as PatchMRSRule
|
|
147
|
+
from stackit.albwaf.models.patch_mrs_rule_group import (
|
|
148
|
+
PatchMRSRuleGroup as PatchMRSRuleGroup,
|
|
149
|
+
)
|
|
150
|
+
from stackit.albwaf.models.quotas import Quotas as Quotas
|
|
151
|
+
from stackit.albwaf.models.severity import Severity as Severity
|
|
152
|
+
from stackit.albwaf.models.status import Status as Status
|
|
153
|
+
from stackit.albwaf.models.transformation import Transformation as Transformation
|
|
154
|
+
from stackit.albwaf.models.type import Type as Type
|
|
155
|
+
from stackit.albwaf.models.update_custom_rule_group_payload import (
|
|
156
|
+
UpdateCustomRuleGroupPayload as UpdateCustomRuleGroupPayload,
|
|
157
|
+
)
|
|
158
|
+
from stackit.albwaf.models.update_waf_payload import (
|
|
159
|
+
UpdateWAFPayload as UpdateWAFPayload,
|
|
160
|
+
)
|
|
161
|
+
from stackit.albwaf.models.variable import Variable as Variable
|
|
162
|
+
from stackit.albwaf.models.waf_config_quota import WAFConfigQuota as WAFConfigQuota
|
|
163
|
+
from stackit.albwaf.models.waf_usage import WAFUsage as WAFUsage
|
|
164
|
+
from stackit.albwaf.models.waf_usage_item import WAFUsageItem as WAFUsageItem
|