⚠ This page is served via a proxy. Original site: https://github.com
This service does not collect credentials or authentication data.
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
1 change: 1 addition & 0 deletions services/cdn/oas_commit
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
31b8992a3308a74f07c972b9976ef3428bdda76c
8 changes: 8 additions & 0 deletions services/cdn/src/stackit/cdn/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@
"LokiLogSinkCreate",
"LokiLogSinkCredentials",
"LokiLogSinkPatch",
"MatchCondition",
"Matcher",
"Optimizer",
"OptimizerPatch",
"PatchDistributionPayload",
Expand All @@ -86,6 +88,8 @@
"PutCustomDomainPayloadCertificate",
"PutCustomDomainResponse",
"PutCustomDomainResponseCertificate",
"RedirectConfig",
"RedirectRule",
"Region",
"StatusError",
"WAFRuleAction",
Expand Down Expand Up @@ -231,6 +235,8 @@
LokiLogSinkCredentials as LokiLogSinkCredentials,
)
from stackit.cdn.models.loki_log_sink_patch import LokiLogSinkPatch as LokiLogSinkPatch
from stackit.cdn.models.match_condition import MatchCondition as MatchCondition
from stackit.cdn.models.matcher import Matcher as Matcher
from stackit.cdn.models.optimizer import Optimizer as Optimizer
from stackit.cdn.models.optimizer_patch import OptimizerPatch as OptimizerPatch
from stackit.cdn.models.patch_distribution_payload import (
Expand Down Expand Up @@ -260,6 +266,8 @@
from stackit.cdn.models.put_custom_domain_response_certificate import (
PutCustomDomainResponseCertificate as PutCustomDomainResponseCertificate,
)
from stackit.cdn.models.redirect_config import RedirectConfig as RedirectConfig
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.waf_config import WafConfig as WafConfig
Expand Down
4 changes: 4 additions & 0 deletions services/cdn/src/stackit/cdn/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@
from stackit.cdn.models.loki_log_sink_create import LokiLogSinkCreate
from stackit.cdn.models.loki_log_sink_credentials import LokiLogSinkCredentials
from stackit.cdn.models.loki_log_sink_patch import LokiLogSinkPatch
from stackit.cdn.models.match_condition import MatchCondition
from stackit.cdn.models.matcher import Matcher
from stackit.cdn.models.optimizer import Optimizer
from stackit.cdn.models.optimizer_patch import OptimizerPatch
from stackit.cdn.models.patch_distribution_payload import PatchDistributionPayload
Expand All @@ -104,6 +106,8 @@
from stackit.cdn.models.put_custom_domain_response_certificate import (
PutCustomDomainResponseCertificate,
)
from stackit.cdn.models.redirect_config import RedirectConfig
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.waf_config import WafConfig
Expand Down
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 @@ -23,6 +23,7 @@
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.waf_config import WafConfig

Expand Down Expand Up @@ -53,6 +54,7 @@ class Config(BaseModel):
alias="monthlyLimitBytes",
)
optimizer: Optional[Optimizer] = None
redirects: Optional[RedirectConfig] = None
regions: Annotated[List[Region], Field(min_length=1)]
waf: WafConfig
__properties: ClassVar[List[str]] = [
Expand All @@ -63,6 +65,7 @@ class Config(BaseModel):
"logSink",
"monthlyLimitBytes",
"optimizer",
"redirects",
"regions",
"waf",
]
Expand Down Expand Up @@ -113,6 +116,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 redirects
if self.redirects:
_dict["redirects"] = self.redirects.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 @@ -146,6 +152,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"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"),
"waf": WafConfig.from_dict(obj["waf"]) if obj.get("waf") is not None else None,
}
Expand Down
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 @@ -23,6 +23,7 @@
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.waf_config_patch import WafConfigPatch

Expand Down Expand Up @@ -55,6 +56,7 @@ class ConfigPatch(BaseModel):
alias="monthlyLimitBytes",
)
optimizer: Optional[OptimizerPatch] = None
redirects: Optional[RedirectConfig] = None
regions: Optional[Annotated[List[Region], Field(min_length=1)]] = None
waf: Optional[WafConfigPatch] = None
__properties: ClassVar[List[str]] = [
Expand All @@ -65,6 +67,7 @@ class ConfigPatch(BaseModel):
"logSink",
"monthlyLimitBytes",
"optimizer",
"redirects",
"regions",
"waf",
]
Expand Down Expand Up @@ -115,6 +118,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 redirects
if self.redirects:
_dict["redirects"] = self.redirects.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 @@ -153,6 +159,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"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"),
"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 @@ -25,6 +25,7 @@
)
from stackit.cdn.models.loki_log_sink_create import LokiLogSinkCreate
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.waf_config import WafConfig

Expand Down Expand Up @@ -62,6 +63,7 @@ class CreateDistributionPayload(BaseModel):
alias="monthlyLimitBytes",
)
optimizer: Optional[Optimizer] = None
redirects: Optional[RedirectConfig] = None
regions: Annotated[List[Region], Field(min_length=1)] = Field(
description="Define in which regions you would like your content to be cached. "
)
Expand All @@ -75,6 +77,7 @@ class CreateDistributionPayload(BaseModel):
"logSink",
"monthlyLimitBytes",
"optimizer",
"redirects",
"regions",
"waf",
]
Expand Down Expand Up @@ -125,6 +128,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 redirects
if self.redirects:
_dict["redirects"] = self.redirects.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 @@ -153,6 +159,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"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"),
"waf": WafConfig.from_dict(obj["waf"]) if obj.get("waf") is not None else None,
}
Expand Down
37 changes: 37 additions & 0 deletions services/cdn/src/stackit/cdn/models/match_condition.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# coding: utf-8

"""
CDN API

API used to create and manage your CDN distributions.

The version of the OpenAPI document: 1.0.0
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
""" # noqa: E501

from __future__ import annotations

import json
from enum import Enum

from typing_extensions import Self


class MatchCondition(str, Enum):
"""
Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY.
"""

"""
allowed enum values
"""
ANY = "ANY"
ALL = "ALL"
NONE = "NONE"

@classmethod
def from_json(cls, json_str: str) -> Self:
"""Create an instance of MatchCondition from a JSON string"""
return cls(json.loads(json_str))
93 changes: 93 additions & 0 deletions services/cdn/src/stackit/cdn/models/matcher.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
# coding: utf-8

"""
CDN API

API used to create and manage your CDN distributions.

The version of the OpenAPI document: 1.0.0
Generated by OpenAPI Generator (https://openapi-generator.tech)

Do not edit the class manually.
""" # noqa: E501

from __future__ import annotations

import json
import pprint
from typing import Any, ClassVar, Dict, List, Optional, Set

from pydantic import BaseModel, ConfigDict, Field, StrictStr
from typing_extensions import Annotated, Self

from stackit.cdn.models.match_condition import MatchCondition


class Matcher(BaseModel):
"""
A matcher containing a list of string values to compare against the request path.
""" # noqa: E501

value_match_condition: Optional[MatchCondition] = Field(default=MatchCondition.ANY, alias="valueMatchCondition")
values: Annotated[List[StrictStr], Field(min_length=1)] = Field(
description='A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*"'
)
__properties: ClassVar[List[str]] = ["valueMatchCondition", "values"]

model_config = ConfigDict(
populate_by_name=True,
validate_assignment=True,
protected_namespaces=(),
)

def to_str(self) -> str:
"""Returns the string representation of the model using alias"""
return pprint.pformat(self.model_dump(by_alias=True))

def to_json(self) -> str:
"""Returns the JSON representation of the model using alias"""
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
return json.dumps(self.to_dict())

@classmethod
def from_json(cls, json_str: str) -> Optional[Self]:
"""Create an instance of Matcher from a JSON string"""
return cls.from_dict(json.loads(json_str))

def to_dict(self) -> Dict[str, Any]:
"""Return the dictionary representation of the model using alias.

This has the following differences from calling pydantic's
`self.model_dump(by_alias=True)`:

* `None` is only added to the output dict for nullable fields that
were set at model initialization. Other fields with value `None`
are ignored.
"""
excluded_fields: Set[str] = set([])

_dict = self.model_dump(
by_alias=True,
exclude=excluded_fields,
exclude_none=True,
)
return _dict

@classmethod
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
"""Create an instance of Matcher from a dict"""
if obj is None:
return None

if not isinstance(obj, dict):
return cls.model_validate(obj)

_obj = cls.model_validate(
{
"valueMatchCondition": (
obj.get("valueMatchCondition") if obj.get("valueMatchCondition") is not None else MatchCondition.ANY
),
"values": obj.get("values"),
}
)
return _obj
Loading
Loading