stackit-loadbalancer 0.5.0__tar.gz → 0.7.0__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.
Files changed (48) hide show
  1. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/PKG-INFO +8 -4
  2. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/pyproject.toml +2 -2
  3. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/create_load_balancer_payload.py +6 -0
  4. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/load_balancer.py +6 -0
  5. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/update_load_balancer_payload.py +6 -0
  6. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/LICENSE.md +0 -0
  7. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/NOTICE.txt +0 -0
  8. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/README.md +0 -0
  9. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/__init__.py +0 -0
  10. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/api/__init__.py +0 -0
  11. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/api/default_api.py +0 -0
  12. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/api_client.py +0 -0
  13. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/api_response.py +0 -0
  14. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/configuration.py +0 -0
  15. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/exceptions.py +0 -0
  16. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/__init__.py +0 -0
  17. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/active_health_check.py +0 -0
  18. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/create_credentials_payload.py +0 -0
  19. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/create_credentials_response.py +0 -0
  20. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/credentials_response.py +0 -0
  21. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/get_credentials_response.py +0 -0
  22. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/get_quota_response.py +0 -0
  23. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/google_protobuf_any.py +0 -0
  24. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/list_credentials_response.py +0 -0
  25. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/list_load_balancers_response.py +0 -0
  26. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/list_plans_response.py +0 -0
  27. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/listener.py +0 -0
  28. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/load_balancer_error.py +0 -0
  29. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/load_balancer_options.py +0 -0
  30. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/loadbalancer_option_access_control.py +0 -0
  31. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/loadbalancer_option_logs.py +0 -0
  32. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/loadbalancer_option_metrics.py +0 -0
  33. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/loadbalancer_option_observability.py +0 -0
  34. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/network.py +0 -0
  35. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/options_tcp.py +0 -0
  36. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/options_udp.py +0 -0
  37. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/plan_details.py +0 -0
  38. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/security_group.py +0 -0
  39. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/server_name_indicator.py +0 -0
  40. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/session_persistence.py +0 -0
  41. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/status.py +0 -0
  42. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/target.py +0 -0
  43. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/target_pool.py +0 -0
  44. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/update_credentials_payload.py +0 -0
  45. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/update_credentials_response.py +0 -0
  46. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/models/update_target_pool_payload.py +0 -0
  47. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/py.typed +0 -0
  48. {stackit_loadbalancer-0.5.0 → stackit_loadbalancer-0.7.0}/src/stackit/loadbalancer/rest.py +0 -0
@@ -1,23 +1,27 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: stackit-loadbalancer
3
- Version: 0.5.0
3
+ Version: 0.7.0
4
4
  Summary: Load Balancer API
5
+ License-File: LICENSE.md
6
+ License-File: NOTICE.txt
5
7
  Author: STACKIT Developer Tools
6
8
  Author-email: developer-tools@stackit.cloud
7
- Requires-Python: >=3.8,<4.0
9
+ Requires-Python: >=3.9,<4.0
8
10
  Classifier: License :: OSI Approved :: Apache Software License
9
11
  Classifier: Operating System :: OS Independent
10
12
  Classifier: Programming Language :: Python :: 3
11
- Classifier: Programming Language :: Python :: 3.8
12
13
  Classifier: Programming Language :: Python :: 3.9
13
14
  Classifier: Programming Language :: Python :: 3.10
14
15
  Classifier: Programming Language :: Python :: 3.11
15
16
  Classifier: Programming Language :: Python :: 3.12
16
17
  Classifier: Programming Language :: Python :: 3.13
18
+ Classifier: Programming Language :: Python :: 3.14
17
19
  Requires-Dist: pydantic (>=2.9.2)
18
20
  Requires-Dist: python-dateutil (>=2.9.0.post0)
19
21
  Requires-Dist: requests (>=2.32.3)
20
22
  Requires-Dist: stackit-core (>=0.0.1a)
23
+ Project-URL: Homepage, https://github.com/stackitcloud/stackit-sdk-python
24
+ Project-URL: Issues, https://github.com/stackitcloud/stackit-sdk-python/issues
21
25
  Description-Content-Type: text/markdown
22
26
 
23
27
  # stackit.loadbalancer
@@ -3,7 +3,7 @@ name = "stackit-loadbalancer"
3
3
 
4
4
  [tool.poetry]
5
5
  name = "stackit-loadbalancer"
6
- version = "v0.5.0"
6
+ version = "v0.7.0"
7
7
  authors = [
8
8
  "STACKIT Developer Tools <developer-tools@stackit.cloud>",
9
9
  ]
@@ -20,7 +20,7 @@ packages = [
20
20
  ]
21
21
 
22
22
  [tool.poetry.dependencies]
23
- python = ">=3.8,<4.0"
23
+ python = ">=3.9,<4.0"
24
24
  stackit-core = ">=0.0.1a"
25
25
  requests = ">=2.32.3"
26
26
  pydantic = ">=2.9.2"
@@ -54,6 +54,10 @@ class CreateLoadBalancerPayload(BaseModel):
54
54
  description="External load balancer IP address where this load balancer is exposed. Not changeable after creation.",
55
55
  alias="externalAddress",
56
56
  )
57
+ labels: Optional[Dict[str, StrictStr]] = Field(
58
+ default=None,
59
+ description="Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per LB. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. ",
60
+ )
57
61
  listeners: Optional[List[Listener]] = Field(
58
62
  default=None,
59
63
  description="There is a maximum listener count of 20. Port and protocol limitations: - UDP listeners cannot have the same port. - TCP-derived listeners cannot have the same port. A TCP-derived listener is any listener that listens on a TCP port. As of now those are: TCP, TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH. The only exception is, if all listeners for the same port are PROTOCOL_TLS_PASSTHROUGH. - PROTOCOL_TLS_PASSTHROUGH listeners cannot have the same port and at least one common domain name. - PROTOCOL_TLS_PASSTHROUGH listeners can have the same domain name and different ports though (e.g. ports 443 and 8443 for domain example.com). - PROTOCOL_TLS_PASSTHROUGH listeners without a domain name serve as a default listener and you can have only one default listener. ",
@@ -101,6 +105,7 @@ class CreateLoadBalancerPayload(BaseModel):
101
105
  "disableTargetSecurityGroupAssignment",
102
106
  "errors",
103
107
  "externalAddress",
108
+ "labels",
104
109
  "listeners",
105
110
  "loadBalancerSecurityGroup",
106
111
  "name",
@@ -248,6 +253,7 @@ class CreateLoadBalancerPayload(BaseModel):
248
253
  else None
249
254
  ),
250
255
  "externalAddress": obj.get("externalAddress"),
256
+ "labels": obj.get("labels"),
251
257
  "listeners": (
252
258
  [Listener.from_dict(_item) for _item in obj["listeners"]]
253
259
  if obj.get("listeners") is not None
@@ -54,6 +54,10 @@ class LoadBalancer(BaseModel):
54
54
  description="External load balancer IP address where this load balancer is exposed. Not changeable after creation.",
55
55
  alias="externalAddress",
56
56
  )
57
+ labels: Optional[Dict[str, StrictStr]] = Field(
58
+ default=None,
59
+ description="Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per LB. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. ",
60
+ )
57
61
  listeners: Optional[List[Listener]] = Field(
58
62
  default=None,
59
63
  description="There is a maximum listener count of 20. Port and protocol limitations: - UDP listeners cannot have the same port. - TCP-derived listeners cannot have the same port. A TCP-derived listener is any listener that listens on a TCP port. As of now those are: TCP, TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH. The only exception is, if all listeners for the same port are PROTOCOL_TLS_PASSTHROUGH. - PROTOCOL_TLS_PASSTHROUGH listeners cannot have the same port and at least one common domain name. - PROTOCOL_TLS_PASSTHROUGH listeners can have the same domain name and different ports though (e.g. ports 443 and 8443 for domain example.com). - PROTOCOL_TLS_PASSTHROUGH listeners without a domain name serve as a default listener and you can have only one default listener. ",
@@ -101,6 +105,7 @@ class LoadBalancer(BaseModel):
101
105
  "disableTargetSecurityGroupAssignment",
102
106
  "errors",
103
107
  "externalAddress",
108
+ "labels",
104
109
  "listeners",
105
110
  "loadBalancerSecurityGroup",
106
111
  "name",
@@ -248,6 +253,7 @@ class LoadBalancer(BaseModel):
248
253
  else None
249
254
  ),
250
255
  "externalAddress": obj.get("externalAddress"),
256
+ "labels": obj.get("labels"),
251
257
  "listeners": (
252
258
  [Listener.from_dict(_item) for _item in obj["listeners"]]
253
259
  if obj.get("listeners") is not None
@@ -54,6 +54,10 @@ class UpdateLoadBalancerPayload(BaseModel):
54
54
  description="External load balancer IP address where this load balancer is exposed. Not changeable after creation.",
55
55
  alias="externalAddress",
56
56
  )
57
+ labels: Optional[Dict[str, StrictStr]] = Field(
58
+ default=None,
59
+ description="Labels represent user-defined metadata as key-value pairs. Label count should not exceed 64 per LB. **Key Formatting Rules:** Length: 1-63 characters. Characters: Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. Keys starting with 'stackit-' are system-reserved; users MUST NOT manage them. **Value Formatting Rules:** Length: 0-63 characters (empty string explicitly allowed). Characters (for non-empty values): Must begin and end with [a-zA-Z0-9]. May contain dashes (-), underscores (_), dots (.), and alphanumerics in between. ",
60
+ )
57
61
  listeners: Optional[List[Listener]] = Field(
58
62
  default=None,
59
63
  description="There is a maximum listener count of 20. Port and protocol limitations: - UDP listeners cannot have the same port. - TCP-derived listeners cannot have the same port. A TCP-derived listener is any listener that listens on a TCP port. As of now those are: TCP, TCP_PROXY, and PROTOCOL_TLS_PASSTHROUGH. The only exception is, if all listeners for the same port are PROTOCOL_TLS_PASSTHROUGH. - PROTOCOL_TLS_PASSTHROUGH listeners cannot have the same port and at least one common domain name. - PROTOCOL_TLS_PASSTHROUGH listeners can have the same domain name and different ports though (e.g. ports 443 and 8443 for domain example.com). - PROTOCOL_TLS_PASSTHROUGH listeners without a domain name serve as a default listener and you can have only one default listener. ",
@@ -101,6 +105,7 @@ class UpdateLoadBalancerPayload(BaseModel):
101
105
  "disableTargetSecurityGroupAssignment",
102
106
  "errors",
103
107
  "externalAddress",
108
+ "labels",
104
109
  "listeners",
105
110
  "loadBalancerSecurityGroup",
106
111
  "name",
@@ -248,6 +253,7 @@ class UpdateLoadBalancerPayload(BaseModel):
248
253
  else None
249
254
  ),
250
255
  "externalAddress": obj.get("externalAddress"),
256
+ "labels": obj.get("labels"),
251
257
  "listeners": (
252
258
  [Listener.from_dict(_item) for _item in obj["listeners"]]
253
259
  if obj.get("listeners") is not None