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
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
## Release (2025-xx-xx)
- `observability`: [v0.11.0](services/observability/CHANGELOG.md#v0110)
- **Deprecation:** The `JaegerHttpTracesUrl` field is now deprecated in all relevant models and will be removed after 9th April 2026. Use the new `JaegerHttpUrl` field instead.
- `cdn`: [v1.7.0](services/cdn/CHANGELOG.md#v170)
- **Feature:** Add models: `DistributionWaf`, `WafConfig`, `WAFConfigPatch`, `WAFMode`, `WAFRule`, `WAFRuleCollection`, `WAFRuleGroup` and `WAFStatusRuleBlock`
- **Feature:** Add `Waf` attribute to `Config` and `Distribution`
- **Feature:** Add `WafStatus` to `DistributionRequest` and `ListWafCollections`

## Release (2025-09-30)
- `authorization`: [v0.4.0](services/authorization/CHANGELOG.md#v040)
- **Feature**: Add support for assignable subjects
Expand Down
5 changes: 5 additions & 0 deletions services/cdn/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## v1.7.0
- **Feature:** Add models: `DistributionWaf`, `WafConfig`, `WAFConfigPatch`, `WAFMode`, `WAFRule`, `WAFRuleCollection`, `WAFRuleGroup` and `WAFStatusRuleBlock`
- **Feature:** Add `Waf` attribute to `Config` and `Distribution`
- **Feature:** Add `WafStatus` to `DistributionRequest` and `ListWafCollections`

## v1.6.0
- **Feature:** Added Attribute `LogSink` to `ConfigPatch`
- **Feature:** Added Attribute `Geofencing` to `DistributionPayload`, `HttpBackend` and `HttpBackendPatch`
Expand Down
2 changes: 1 addition & 1 deletion services/cdn/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "stackit-cdn"

[tool.poetry]
name = "stackit-cdn"
version = "v1.6.0"
version = "v1.7.0"
authors = [
"STACKIT Developer Tools <[email protected]>",
]
Expand Down
26 changes: 26 additions & 0 deletions services/cdn/src/stackit/cdn/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
"DistributionStatisticsRecord",
"DistributionStatisticsRecordEntry",
"DistributionStatisticsRecordRegions",
"DistributionWaf",
"Domain",
"DomainStatus",
"ErrorDetails",
Expand All @@ -59,6 +60,7 @@
"HttpBackend",
"HttpBackendPatch",
"ListDistributionsResponse",
"ListWAFCollectionsResponse",
"LokiLogSink",
"Optimizer",
"OptimizerPatch",
Expand All @@ -74,6 +76,14 @@
"PutCustomDomainResponseCertificate",
"Region",
"StatusError",
"WAFRule",
"WAFRuleCollection",
"WAFRuleGroup",
"WAFStatusRuleBlock",
"WafConfig",
"WafConfigPatch",
"WafMode",
"WafType",
]

# import apis into sdk package
Expand Down Expand Up @@ -119,6 +129,7 @@
from stackit.cdn.models.distribution_statistics_record_regions import (
DistributionStatisticsRecordRegions as DistributionStatisticsRecordRegions,
)
from stackit.cdn.models.distribution_waf import DistributionWaf as DistributionWaf
from stackit.cdn.models.domain import Domain as Domain
from stackit.cdn.models.domain_status import DomainStatus as DomainStatus
from stackit.cdn.models.error_details import ErrorDetails as ErrorDetails
Expand Down Expand Up @@ -164,6 +175,9 @@
from stackit.cdn.models.list_distributions_response import (
ListDistributionsResponse as ListDistributionsResponse,
)
from stackit.cdn.models.list_waf_collections_response import (
ListWAFCollectionsResponse as ListWAFCollectionsResponse,
)
from stackit.cdn.models.loki_log_sink import LokiLogSink as LokiLogSink
from stackit.cdn.models.optimizer import Optimizer as Optimizer
from stackit.cdn.models.optimizer_patch import OptimizerPatch as OptimizerPatch
Expand Down Expand Up @@ -197,3 +211,15 @@
)
from stackit.cdn.models.region import Region as Region
from stackit.cdn.models.status_error import StatusError as StatusError
from stackit.cdn.models.waf_config import WafConfig as WafConfig
from stackit.cdn.models.waf_config_patch import WafConfigPatch as WafConfigPatch
from stackit.cdn.models.waf_mode import WafMode as WafMode
from stackit.cdn.models.waf_rule import WAFRule as WAFRule
from stackit.cdn.models.waf_rule_collection import (
WAFRuleCollection as WAFRuleCollection,
)
from stackit.cdn.models.waf_rule_group import WAFRuleGroup as WAFRuleGroup
from stackit.cdn.models.waf_status_rule_block import (
WAFStatusRuleBlock as WAFStatusRuleBlock,
)
from stackit.cdn.models.waf_type import WafType as WafType
300 changes: 300 additions & 0 deletions services/cdn/src/stackit/cdn/api/default_api.py

Large diffs are not rendered by default.

10 changes: 10 additions & 0 deletions services/cdn/src/stackit/cdn/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
from stackit.cdn.models.distribution_statistics_record_regions import (
DistributionStatisticsRecordRegions,
)
from stackit.cdn.models.distribution_waf import DistributionWaf
from stackit.cdn.models.domain import Domain
from stackit.cdn.models.domain_status import DomainStatus
from stackit.cdn.models.error_details import ErrorDetails
Expand Down Expand Up @@ -63,6 +64,7 @@
from stackit.cdn.models.http_backend import HttpBackend
from stackit.cdn.models.http_backend_patch import HttpBackendPatch
from stackit.cdn.models.list_distributions_response import ListDistributionsResponse
from stackit.cdn.models.list_waf_collections_response import ListWAFCollectionsResponse
from stackit.cdn.models.loki_log_sink import LokiLogSink
from stackit.cdn.models.optimizer import Optimizer
from stackit.cdn.models.optimizer_patch import OptimizerPatch
Expand All @@ -86,3 +88,11 @@
)
from stackit.cdn.models.region import Region
from stackit.cdn.models.status_error import StatusError
from stackit.cdn.models.waf_config import WafConfig
from stackit.cdn.models.waf_config_patch import WafConfigPatch
from stackit.cdn.models.waf_mode import WafMode
from stackit.cdn.models.waf_rule import WAFRule
from stackit.cdn.models.waf_rule_collection import WAFRuleCollection
from stackit.cdn.models.waf_rule_group import WAFRuleGroup
from stackit.cdn.models.waf_status_rule_block import WAFStatusRuleBlock
from stackit.cdn.models.waf_type import WafType
7 changes: 7 additions & 0 deletions services/cdn/src/stackit/cdn/models/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from stackit.cdn.models.loki_log_sink import LokiLogSink
from stackit.cdn.models.optimizer import Optimizer
from stackit.cdn.models.region import Region
from stackit.cdn.models.waf_config import WafConfig


class Config(BaseModel):
Expand Down Expand Up @@ -53,6 +54,7 @@ class Config(BaseModel):
)
optimizer: Optional[Optimizer] = None
regions: Annotated[List[Region], Field(min_length=1)]
waf: WafConfig
__properties: ClassVar[List[str]] = [
"backend",
"blockedCountries",
Expand All @@ -62,6 +64,7 @@ class Config(BaseModel):
"monthlyLimitBytes",
"optimizer",
"regions",
"waf",
]

model_config = ConfigDict(
Expand Down Expand Up @@ -110,6 +113,9 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of optimizer
if self.optimizer:
_dict["optimizer"] = self.optimizer.to_dict()
# override the default output from pydantic by calling `to_dict()` of waf
if self.waf:
_dict["waf"] = self.waf.to_dict()
# set to None if default_cache_duration (nullable) is None
# and model_fields_set contains the field
if self.default_cache_duration is None and "default_cache_duration" in self.model_fields_set:
Expand Down Expand Up @@ -141,6 +147,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"monthlyLimitBytes": obj.get("monthlyLimitBytes"),
"optimizer": Optimizer.from_dict(obj["optimizer"]) if obj.get("optimizer") is not None else None,
"regions": obj.get("regions"),
"waf": WafConfig.from_dict(obj["waf"]) if obj.get("waf") is not None else None,
}
)
return _obj
7 changes: 7 additions & 0 deletions services/cdn/src/stackit/cdn/models/config_patch.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
from stackit.cdn.models.optimizer_patch import OptimizerPatch
from stackit.cdn.models.patch_loki_log_sink import PatchLokiLogSink
from stackit.cdn.models.region import Region
from stackit.cdn.models.waf_config_patch import WafConfigPatch


class ConfigPatch(BaseModel):
Expand Down Expand Up @@ -55,6 +56,7 @@ class ConfigPatch(BaseModel):
)
optimizer: Optional[OptimizerPatch] = None
regions: Optional[Annotated[List[Region], Field(min_length=1)]] = None
waf: Optional[WafConfigPatch] = None
__properties: ClassVar[List[str]] = [
"backend",
"blockedCountries",
Expand All @@ -64,6 +66,7 @@ class ConfigPatch(BaseModel):
"monthlyLimitBytes",
"optimizer",
"regions",
"waf",
]

model_config = ConfigDict(
Expand Down Expand Up @@ -112,6 +115,9 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of optimizer
if self.optimizer:
_dict["optimizer"] = self.optimizer.to_dict()
# override the default output from pydantic by calling `to_dict()` of waf
if self.waf:
_dict["waf"] = self.waf.to_dict()
# set to None if default_cache_duration (nullable) is None
# and model_fields_set contains the field
if self.default_cache_duration is None and "default_cache_duration" in self.model_fields_set:
Expand Down Expand Up @@ -148,6 +154,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"monthlyLimitBytes": obj.get("monthlyLimitBytes"),
"optimizer": OptimizerPatch.from_dict(obj["optimizer"]) if obj.get("optimizer") is not None else None,
"regions": obj.get("regions"),
"waf": WafConfigPatch.from_dict(obj["waf"]) if obj.get("waf") is not None else None,
}
)
return _obj
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
from stackit.cdn.models.optimizer import Optimizer
from stackit.cdn.models.patch_loki_log_sink import PatchLokiLogSink
from stackit.cdn.models.region import Region
from stackit.cdn.models.waf_config import WafConfig


class CreateDistributionPayload(BaseModel):
Expand Down Expand Up @@ -73,6 +74,7 @@ class CreateDistributionPayload(BaseModel):
regions: Annotated[List[Region], Field(min_length=1)] = Field(
description="Define in which regions you would like your content to be cached. "
)
waf: Optional[WafConfig] = None
__properties: ClassVar[List[str]] = [
"blockedCountries",
"blockedIPs",
Expand All @@ -85,6 +87,7 @@ class CreateDistributionPayload(BaseModel):
"originRequestHeaders",
"originUrl",
"regions",
"waf",
]

model_config = ConfigDict(
Expand Down Expand Up @@ -130,6 +133,9 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of optimizer
if self.optimizer:
_dict["optimizer"] = self.optimizer.to_dict()
# override the default output from pydantic by calling `to_dict()` of waf
if self.waf:
_dict["waf"] = self.waf.to_dict()
return _dict

@classmethod
Expand All @@ -154,6 +160,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"originRequestHeaders": obj.get("originRequestHeaders"),
"originUrl": obj.get("originUrl"),
"regions": obj.get("regions"),
"waf": WafConfig.from_dict(obj["waf"]) if obj.get("waf") is not None else None,
}
)
return _obj
7 changes: 7 additions & 0 deletions services/cdn/src/stackit/cdn/models/distribution.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
from typing_extensions import Annotated, Self

from stackit.cdn.models.config import Config
from stackit.cdn.models.distribution_waf import DistributionWaf
from stackit.cdn.models.domain import Domain
from stackit.cdn.models.status_error import StatusError

Expand Down Expand Up @@ -49,6 +50,7 @@ class Distribution(BaseModel):
description="RFC3339 string which returns the last time the distribution configuration was modified. ",
alias="updatedAt",
)
waf: Optional[DistributionWaf] = None
__properties: ClassVar[List[str]] = [
"config",
"createdAt",
Expand All @@ -58,6 +60,7 @@ class Distribution(BaseModel):
"projectId",
"status",
"updatedAt",
"waf",
]

@field_validator("status")
Expand Down Expand Up @@ -121,6 +124,9 @@ def to_dict(self) -> Dict[str, Any]:
if _item:
_items.append(_item.to_dict())
_dict["errors"] = _items
# override the default output from pydantic by calling `to_dict()` of waf
if self.waf:
_dict["waf"] = self.waf.to_dict()
return _dict

@classmethod
Expand All @@ -146,6 +152,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"projectId": obj.get("projectId"),
"status": obj.get("status"),
"updatedAt": obj.get("updatedAt"),
"waf": DistributionWaf.from_dict(obj["waf"]) if obj.get("waf") is not None else None,
}
)
return _obj
Loading