Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
## Release (2026-MM-DD)

- `alb`:
- [v0.13.0](services/alb/CHANGELOG.md#v0130)
- **Feature:** Add `ip_block_list_name` field to `LoadbalancerOptionAccessControl` model
- `telemetryrouter`:
- [v0.6.0](services/telemetryrouter/CHANGELOG.md#v060)
- **Feature:** Add `disabled` field to `ConfigFilter` to allow disabling a filter without removing it
Expand Down
3 changes: 3 additions & 0 deletions services/alb/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
## v0.13.0
- **Feature:** Add `ip_block_list_name` field to `LoadbalancerOptionAccessControl` model

## v0.12.0
- **Feature:** Add new enum values `TYPE_FIP_NOT_FOUND`, `TYPE_IP_EXHAUSTED`, `TYPE_DNS_NOT_CONFIGURED` and `TYPE_VM_PORT_NOT_CONFIGURED` to `LoadBalancerError` model

Expand Down
2 changes: 1 addition & 1 deletion services/alb/oas_commit
Original file line number Diff line number Diff line change
@@ -1 +1 @@
1deab1542e767cd08525dfd6c2cd0b65b9c923c3
7e7c0c6d141ef436fa9dee1e9724936562b7d6da
2 changes: 1 addition & 1 deletion services/alb/pyproject.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[project]
name = "stackit-alb"
version = "v0.12.0"
version = "v0.13.0"
description = "Application Load Balancer API"
authors = [{ name = "STACKIT Developer Tools", email = "developer-tools@stackit.cloud" }]
requires-python = ">=3.10,<4.0"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,24 +15,43 @@

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


class LoadbalancerOptionAccessControl(BaseModel):
"""
Use this option to limit the IP ranges that can use the Application Load Balancer.
Use this option to limit the IP ranges that can use the Application Load Balancer. `allowed_source_ranges` and `ip_block_list_name` may be set together. When both are set, `allowed_source_ranges` is evaluated first, then `ip_block_list_name` is evaluated.
""" # noqa: E501

allowed_source_ranges: Optional[List[StrictStr]] = Field(
default=None,
description="Application Load Balancer is accessible only from an IP address in this range",
description="Application Load Balancer is accessible only from an IP address in this range. May be combined with `ipBlockListName`; `allowedSourceRanges` is evaluated first, then `ipBlockListName`.",
alias="allowedSourceRanges",
)
__properties: ClassVar[List[str]] = ["allowedSourceRanges"]
ip_block_list_name: Optional[Annotated[str, Field(strict=True)]] = Field(
default=None,
description='Reference to an IP block list by name. Traffic originating from any IP in the referenced list is denied access to the Application Load Balancer. See "IP Lists API" for how to manage IP block lists. May be combined with `allowedSourceRanges`; `allowedSourceRanges` is evaluated first, then `ipBlockListName`.',
alias="ipBlockListName",
)
__properties: ClassVar[List[str]] = ["allowedSourceRanges", "ipBlockListName"]

@field_validator("ip_block_list_name")
def ip_block_list_name_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"^[0-9a-z](?:(?:[0-9a-z]|-){0,49}[0-9a-z])?$", value):
raise ValueError(r"must validate the regular expression /^[0-9a-z](?:(?:[0-9a-z]|-){0,49}[0-9a-z])?$/")
return value

model_config = ConfigDict(
validate_by_name=True,
Expand Down Expand Up @@ -82,5 +101,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
if not isinstance(obj, dict):
return cls.model_validate(obj)

_obj = cls.model_validate({"allowedSourceRanges": obj.get("allowedSourceRanges")})
_obj = cls.model_validate(
{"allowedSourceRanges": obj.get("allowedSourceRanges"), "ipBlockListName": obj.get("ipBlockListName")}
)
return _obj
2 changes: 1 addition & 1 deletion services/alb/uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading