From 73a4b68f26ee2533c96ab36605b54dafda5e134c Mon Sep 17 00:00:00 2001 From: SDK Generator Bot Date: Fri, 6 Nov 2026 15:16:04 +0000 Subject: [PATCH] Generate loadbalancer --- services/loadbalancer/oas_commit | 2 +- .../loadbalancer/models/http_health_checks.py | 22 ++++++++++++++++--- .../models/load_balancer_options.py | 14 +++++++++++- 3 files changed, 33 insertions(+), 5 deletions(-) diff --git a/services/loadbalancer/oas_commit b/services/loadbalancer/oas_commit index 6de9e0d73..5147c3029 100644 --- a/services/loadbalancer/oas_commit +++ b/services/loadbalancer/oas_commit @@ -1 +1 @@ -425d0d7efa3593494efd4f608f4f887187465c1d +716f4d2bf40383fc9a9c3ee0f67a0490d4a15d81 diff --git a/services/loadbalancer/src/stackit/loadbalancer/models/http_health_checks.py b/services/loadbalancer/src/stackit/loadbalancer/models/http_health_checks.py index dacb224e2..e2821e181 100644 --- a/services/loadbalancer/src/stackit/loadbalancer/models/http_health_checks.py +++ b/services/loadbalancer/src/stackit/loadbalancer/models/http_health_checks.py @@ -15,11 +15,12 @@ import json import pprint +import re # noqa: F401 from typing import Any, ClassVar, Dict, List, Optional, Set -from pydantic import BaseModel, ConfigDict, Field, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator from pydantic_core import to_jsonable_python -from typing_extensions import Self +from typing_extensions import Annotated, Self from stackit.loadbalancer.models.tls_config import TlsConfig @@ -32,10 +33,25 @@ class HttpHealthChecks(BaseModel): ok_statuses: Optional[List[StrictStr]] = Field( default=None, description="List of HTTP status codes that indicate a healthy response", alias="okStatuses" ) - path: Optional[StrictStr] = Field(default=None, description="Path to send the health check request to") + path: Optional[Annotated[str, Field(min_length=1, strict=True, max_length=253)]] = Field( + default=None, description="Path to send the health check request to" + ) tls: Optional[TlsConfig] = None __properties: ClassVar[List[str]] = ["okStatuses", "path", "tls"] + @field_validator("path") + def path_validate_regular_expression(cls, value): + """Validates the regular expression""" + if value is None: + return value + + if not isinstance(value, str): + value = str(value) + + if not re.match(r"^(?:\/[a-zA-Z0-9\-._]+)*\/?$", value): + raise ValueError(r"must validate the regular expression /^(?:\/[a-zA-Z0-9\-._]+)*\/?$/") + return value + model_config = ConfigDict( validate_by_name=True, validate_by_alias=True, diff --git a/services/loadbalancer/src/stackit/loadbalancer/models/load_balancer_options.py b/services/loadbalancer/src/stackit/loadbalancer/models/load_balancer_options.py index 395de6adc..e2c139583 100644 --- a/services/loadbalancer/src/stackit/loadbalancer/models/load_balancer_options.py +++ b/services/loadbalancer/src/stackit/loadbalancer/models/load_balancer_options.py @@ -35,6 +35,11 @@ class LoadBalancerOptions(BaseModel): """ # noqa: E501 access_control: Optional[LoadbalancerOptionAccessControl] = Field(default=None, alias="accessControl") + access_logs: Optional[StrictBool] = Field( + default=None, + description="Enable per-request access logs on the Load Balancer. Defaults to false. Enable only when the Load Balancer's expected traffic volume can be sustained by the downstream logging pipeline, as access-log volume scales linearly with request rate. Requires a STACKIT Telemetry Router to be set up for the logs to be viewable.", + alias="accessLogs", + ) ephemeral_address: Optional[StrictBool] = Field(default=None, alias="ephemeralAddress") observability: Optional[LoadbalancerOptionObservability] = None private_network_only: Optional[StrictBool] = Field( @@ -42,7 +47,13 @@ class LoadBalancerOptions(BaseModel): description="Load Balancer is accessible only via a private network ip address. Not changeable after creation.", alias="privateNetworkOnly", ) - __properties: ClassVar[List[str]] = ["accessControl", "ephemeralAddress", "observability", "privateNetworkOnly"] + __properties: ClassVar[List[str]] = [ + "accessControl", + "accessLogs", + "ephemeralAddress", + "observability", + "privateNetworkOnly", + ] model_config = ConfigDict( validate_by_name=True, @@ -105,6 +116,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]: if obj.get("accessControl") is not None else None ), + "accessLogs": obj.get("accessLogs"), "ephemeralAddress": obj.get("ephemeralAddress"), "observability": ( LoadbalancerOptionObservability.from_dict(obj["observability"])