Skip to content
Open
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
2 changes: 1 addition & 1 deletion services/cdn/oas_commit
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0e64886dd0847341800d7191ed193b75413be998
bda6ad3d9e8850526f25eddcb6589fcc7559c625
4 changes: 4 additions & 0 deletions services/cdn/src/stackit/cdn/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@
"RedirectRule",
"Region",
"StatusError",
"TlsConfig",
"TlsConfigPatch",
"WAFRuleAction",
"WAFViolation",
"WafConfig",
Expand Down Expand Up @@ -270,6 +272,8 @@
from stackit.cdn.models.redirect_rule import RedirectRule as RedirectRule
from stackit.cdn.models.region import Region as Region
from stackit.cdn.models.status_error import StatusError as StatusError
from stackit.cdn.models.tls_config import TlsConfig as TlsConfig
from stackit.cdn.models.tls_config_patch import TlsConfigPatch as TlsConfigPatch
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
Expand Down
150 changes: 75 additions & 75 deletions services/cdn/src/stackit/cdn/api/default_api.py

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions services/cdn/src/stackit/cdn/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,8 @@
from stackit.cdn.models.redirect_rule import RedirectRule
from stackit.cdn.models.region import Region
from stackit.cdn.models.status_error import StatusError
from stackit.cdn.models.tls_config import TlsConfig
from stackit.cdn.models.tls_config_patch import TlsConfigPatch
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
Expand Down
33 changes: 29 additions & 4 deletions services/cdn/src/stackit/cdn/models/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,21 @@
import pprint
from typing import Any, ClassVar, Dict, List, Optional, Set

from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import (
BaseModel,
ConfigDict,
Field,
StrictBool,
StrictStr,
)
from typing_extensions import Annotated, Self

from stackit.cdn.models.config_backend import ConfigBackend
from stackit.cdn.models.loki_log_sink import LokiLogSink
from stackit.cdn.models.optimizer import Optimizer
from stackit.cdn.models.redirect_config import RedirectConfig
from stackit.cdn.models.region import Region
from stackit.cdn.models.tls_config import TlsConfig
from stackit.cdn.models.waf_config import WafConfig


Expand All @@ -35,18 +42,22 @@ class Config(BaseModel):

backend: ConfigBackend
blocked_countries: List[StrictStr] = Field(
description="Restricts access to your content based on country. We use the ISO 3166-1 alpha-2 standard for country codes (e.g. DE, ES, GB). This setting blocks users from the specified countries. ",
description="Restricts access to your content based on country. We use the ISO 3166-1 alpha-2 standard for country codes (e.g. DE, ES, GB). This setting blocks users from the specified countries. ",
alias="blockedCountries",
)
blocked_ips: List[StrictStr] = Field(
description="Restricts access to your content by specifying a list of blocked IPv4 addresses. This feature enhances security and privacy by preventing these addresses from accessing your distribution. ",
description="Restricts access to your content by specifying a list of blocked IPv4 addresses. This feature enhances security and privacy by preventing these addresses from accessing your distribution. ",
alias="blockedIps",
)
default_cache_duration: Optional[StrictStr] = Field(
default=None,
description="Sets the default cache duration for the distribution. The default cache duration is applied when a 'Cache-Control' header is not presented in the origin's response. We use ISO8601 duration format for cache duration (e.g. P1DT2H30M) ",
description="Sets the default cache duration for the distribution. The default cache duration is applied when a 'Cache-Control' header is not presented in the origin's response. We use ISO8601 duration format for cache duration (e.g. P1DT2H30M) ",
alias="defaultCacheDuration",
)
forward_host_header: StrictBool = Field(
description="Enabling this allows the 'Host' header to be passed through to the origin. ",
alias="forwardHostHeader",
)
log_sink: Optional[LokiLogSink] = Field(default=None, alias="logSink")
monthly_limit_bytes: Optional[Annotated[int, Field(strict=True, ge=0)]] = Field(
default=None,
Expand All @@ -56,17 +67,25 @@ class Config(BaseModel):
optimizer: Optional[Optimizer] = None
redirects: Optional[RedirectConfig] = None
regions: Annotated[List[Region], Field(min_length=1)]
strip_response_cookies: StrictBool = Field(
description="Enable this to prevent origin-level cookies from being forwarded to the end user. ",
alias="stripResponseCookies",
)
tls: TlsConfig
waf: WafConfig
__properties: ClassVar[List[str]] = [
"backend",
"blockedCountries",
"blockedIps",
"defaultCacheDuration",
"forwardHostHeader",
"logSink",
"monthlyLimitBytes",
"optimizer",
"redirects",
"regions",
"stripResponseCookies",
"tls",
"waf",
]

Expand Down Expand Up @@ -119,6 +138,9 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of redirects
if self.redirects:
_dict["redirects"] = self.redirects.to_dict()
# override the default output from pydantic by calling `to_dict()` of tls
if self.tls:
_dict["tls"] = self.tls.to_dict()
# override the default output from pydantic by calling `to_dict()` of waf
if self.waf:
_dict["waf"] = self.waf.to_dict()
Expand Down Expand Up @@ -149,11 +171,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"blockedCountries": obj.get("blockedCountries"),
"blockedIps": obj.get("blockedIps"),
"defaultCacheDuration": obj.get("defaultCacheDuration"),
"forwardHostHeader": obj.get("forwardHostHeader"),
"logSink": LokiLogSink.from_dict(obj["logSink"]) if obj.get("logSink") is not None else None,
"monthlyLimitBytes": obj.get("monthlyLimitBytes"),
"optimizer": Optimizer.from_dict(obj["optimizer"]) if obj.get("optimizer") is not None else None,
"redirects": RedirectConfig.from_dict(obj["redirects"]) if obj.get("redirects") is not None else None,
"regions": obj.get("regions"),
"stripResponseCookies": obj.get("stripResponseCookies"),
"tls": TlsConfig.from_dict(obj["tls"]) if obj.get("tls") is not None else None,
"waf": WafConfig.from_dict(obj["waf"]) if obj.get("waf") is not None else None,
}
)
Expand Down
35 changes: 31 additions & 4 deletions services/cdn/src/stackit/cdn/models/config_patch.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,21 @@
import pprint
from typing import Any, ClassVar, Dict, List, Optional, Set

from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import (
BaseModel,
ConfigDict,
Field,
StrictBool,
StrictStr,
)
from typing_extensions import Annotated, Self

from stackit.cdn.models.config_patch_backend import ConfigPatchBackend
from stackit.cdn.models.loki_log_sink_patch import LokiLogSinkPatch
from stackit.cdn.models.optimizer_patch import OptimizerPatch
from stackit.cdn.models.redirect_config import RedirectConfig
from stackit.cdn.models.region import Region
from stackit.cdn.models.tls_config_patch import TlsConfigPatch
from stackit.cdn.models.waf_config_patch import WafConfigPatch


Expand All @@ -36,19 +43,24 @@ class ConfigPatch(BaseModel):
backend: Optional[ConfigPatchBackend] = None
blocked_countries: Optional[List[StrictStr]] = Field(
default=None,
description="Restricts access to your content based on country. We use the ISO 3166-1 alpha-2 standard for country codes (e.g., DE, ES, GB). This setting blocks users from the specified countries. ",
description="Restricts access to your content based on country. We use the ISO 3166-1 alpha-2 standard for country codes (e.g., DE, ES, GB). This setting blocks users from the specified countries. ",
alias="blockedCountries",
)
blocked_ips: Optional[List[StrictStr]] = Field(
default=None,
description="Restricts access to your content by specifying a list of blocked IPv4 addresses. This feature enhances security and privacy by preventing these addresses from accessing your distribution. ",
description="Restricts access to your content by specifying a list of blocked IPv4 addresses. This feature enhances security and privacy by preventing these addresses from accessing your distribution. ",
alias="blockedIps",
)
default_cache_duration: Optional[StrictStr] = Field(
default=None,
description="Sets the default cache duration for the distribution. The default cache duration is applied when a 'Cache-Control' header is not presented in the origin's response. We use ISO8601 duration format for cache duration (e.g. P1DT2H30M) ",
description="Sets the default cache duration for the distribution. The default cache duration is applied when a 'Cache-Control' header is not presented in the origin's response. We use ISO8601 duration format for cache duration (e.g. P1DT2H30M) ",
alias="defaultCacheDuration",
)
forward_host_header: Optional[StrictBool] = Field(
default=None,
description="Enabling this allows the 'Host' header to be passed through to the origin. ",
alias="forwardHostHeader",
)
log_sink: Optional[LokiLogSinkPatch] = Field(default=None, alias="logSink")
monthly_limit_bytes: Optional[Annotated[int, Field(strict=True, ge=0)]] = Field(
default=None,
Expand All @@ -58,17 +70,26 @@ class ConfigPatch(BaseModel):
optimizer: Optional[OptimizerPatch] = None
redirects: Optional[RedirectConfig] = None
regions: Optional[Annotated[List[Region], Field(min_length=1)]] = None
strip_response_cookies: Optional[StrictBool] = Field(
default=None,
description="Enable this to prevent origin-level cookies from being forwarded to the end user. ",
alias="stripResponseCookies",
)
tls: Optional[TlsConfigPatch] = None
waf: Optional[WafConfigPatch] = None
__properties: ClassVar[List[str]] = [
"backend",
"blockedCountries",
"blockedIps",
"defaultCacheDuration",
"forwardHostHeader",
"logSink",
"monthlyLimitBytes",
"optimizer",
"redirects",
"regions",
"stripResponseCookies",
"tls",
"waf",
]

Expand Down Expand Up @@ -121,6 +142,9 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of redirects
if self.redirects:
_dict["redirects"] = self.redirects.to_dict()
# override the default output from pydantic by calling `to_dict()` of tls
if self.tls:
_dict["tls"] = self.tls.to_dict()
# override the default output from pydantic by calling `to_dict()` of waf
if self.waf:
_dict["waf"] = self.waf.to_dict()
Expand Down Expand Up @@ -156,11 +180,14 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"blockedCountries": obj.get("blockedCountries"),
"blockedIps": obj.get("blockedIps"),
"defaultCacheDuration": obj.get("defaultCacheDuration"),
"forwardHostHeader": obj.get("forwardHostHeader"),
"logSink": LokiLogSinkPatch.from_dict(obj["logSink"]) if obj.get("logSink") is not None else None,
"monthlyLimitBytes": obj.get("monthlyLimitBytes"),
"optimizer": OptimizerPatch.from_dict(obj["optimizer"]) if obj.get("optimizer") is not None else None,
"redirects": RedirectConfig.from_dict(obj["redirects"]) if obj.get("redirects") is not None else None,
"regions": obj.get("regions"),
"stripResponseCookies": obj.get("stripResponseCookies"),
"tls": TlsConfigPatch.from_dict(obj["tls"]) if obj.get("tls") is not None else None,
"waf": WafConfigPatch.from_dict(obj["waf"]) if obj.get("waf") is not None else None,
}
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,13 @@
import pprint
from typing import Any, ClassVar, Dict, List, Optional, Set

from pydantic import BaseModel, ConfigDict, Field, StrictStr
from pydantic import (
BaseModel,
ConfigDict,
Field,
StrictBool,
StrictStr,
)
from typing_extensions import Annotated, Self

from stackit.cdn.models.create_distribution_payload_backend import (
Expand All @@ -27,6 +33,7 @@
from stackit.cdn.models.optimizer import Optimizer
from stackit.cdn.models.redirect_config import RedirectConfig
from stackit.cdn.models.region import Region
from stackit.cdn.models.tls_config import TlsConfig
from stackit.cdn.models.waf_config import WafConfig


Expand All @@ -38,22 +45,27 @@ class CreateDistributionPayload(BaseModel):
backend: CreateDistributionPayloadBackend
blocked_countries: Optional[List[StrictStr]] = Field(
default=None,
description="Restricts access to your content based on country. We use the ISO 3166-1 alpha-2 standard for country codes (e.g., DE, ES, GB). This setting blocks users from the specified countries. ",
description="Restricts access to your content based on country. We use the ISO 3166-1 alpha-2 standard for country codes (e.g., DE, ES, GB). This setting blocks users from the specified countries. ",
alias="blockedCountries",
)
blocked_ips: Optional[List[StrictStr]] = Field(
default=None,
description="Restricts access to your content by specifying a list of blocked IPv4 addresses. This feature enhances security and privacy by preventing these addresses from accessing your distribution. ",
description="Restricts access to your content by specifying a list of blocked IPv4 addresses. This feature enhances security and privacy by preventing these addresses from accessing your distribution. ",
alias="blockedIps",
)
default_cache_duration: Optional[StrictStr] = Field(
default=None,
description="Sets the default cache duration for the distribution. The default cache duration is applied when a 'Cache-Control' header is not presented in the origin's response. We use ISO8601 duration format for cache duration (e.g. P1DT2H30M) ",
description="Sets the default cache duration for the distribution. The default cache duration is applied when a 'Cache-Control' header is not presented in the origin's response. We use ISO8601 duration format for cache duration (e.g. P1DT2H30M) ",
alias="defaultCacheDuration",
)
forward_host_header: Optional[StrictBool] = Field(
default=None,
description="Enabling this allows the 'Host' header to be passed through to the origin. ",
alias="forwardHostHeader",
)
intent_id: Optional[StrictStr] = Field(
default=None,
description="While optional, it is greatly encouraged to provide an `intentId`. This is used to deduplicate requests. If multiple POST-Requests with the same `intentId` for a given `projectId` are received, all but the first request are dropped. ",
description="While optional, it is greatly encouraged to provide an `intentId`. This is used to deduplicate requests. If multiple POST-Requests with the same `intentId` for a given `projectId` are received, all but the first request are dropped. ",
alias="intentId",
)
log_sink: Optional[LokiLogSinkCreate] = Field(default=None, alias="logSink")
Expand All @@ -67,18 +79,27 @@ 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. "
)
strip_response_cookies: Optional[StrictBool] = Field(
default=None,
description="Enable this to prevent origin-level cookies from being forwarded to the end user. ",
alias="stripResponseCookies",
)
tls: Optional[TlsConfig] = None
waf: Optional[WafConfig] = None
__properties: ClassVar[List[str]] = [
"backend",
"blockedCountries",
"blockedIps",
"defaultCacheDuration",
"forwardHostHeader",
"intentId",
"logSink",
"monthlyLimitBytes",
"optimizer",
"redirects",
"regions",
"stripResponseCookies",
"tls",
"waf",
]

Expand Down Expand Up @@ -131,6 +152,9 @@ def to_dict(self) -> Dict[str, Any]:
# override the default output from pydantic by calling `to_dict()` of redirects
if self.redirects:
_dict["redirects"] = self.redirects.to_dict()
# override the default output from pydantic by calling `to_dict()` of tls
if self.tls:
_dict["tls"] = self.tls.to_dict()
# override the default output from pydantic by calling `to_dict()` of waf
if self.waf:
_dict["waf"] = self.waf.to_dict()
Expand All @@ -155,12 +179,15 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"blockedCountries": obj.get("blockedCountries"),
"blockedIps": obj.get("blockedIps"),
"defaultCacheDuration": obj.get("defaultCacheDuration"),
"forwardHostHeader": obj.get("forwardHostHeader"),
"intentId": obj.get("intentId"),
"logSink": LokiLogSinkCreate.from_dict(obj["logSink"]) if obj.get("logSink") is not None else None,
"monthlyLimitBytes": obj.get("monthlyLimitBytes"),
"optimizer": Optimizer.from_dict(obj["optimizer"]) if obj.get("optimizer") is not None else None,
"redirects": RedirectConfig.from_dict(obj["redirects"]) if obj.get("redirects") is not None else None,
"regions": obj.get("regions"),
"stripResponseCookies": obj.get("stripResponseCookies"),
"tls": TlsConfig.from_dict(obj["tls"]) if obj.get("tls") is not None else None,
"waf": WafConfig.from_dict(obj["waf"]) if obj.get("waf") is not None else None,
}
)
Expand Down
Loading
Loading