Skip to content

Commit aa51a8a

Browse files
Generate cdn
1 parent fe1b6ed commit aa51a8a

File tree

11 files changed

+399
-1
lines changed

11 files changed

+399
-1
lines changed

services/cdn/oas_commit

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
4015d2570616297d92f852b84f352e729a4370ba

services/cdn/src/stackit/cdn/__init__.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,8 @@
7575
"LokiLogSinkCreate",
7676
"LokiLogSinkCredentials",
7777
"LokiLogSinkPatch",
78+
"MatchCondition",
79+
"Matcher",
7880
"Optimizer",
7981
"OptimizerPatch",
8082
"PatchDistributionPayload",
@@ -86,6 +88,8 @@
8688
"PutCustomDomainPayloadCertificate",
8789
"PutCustomDomainResponse",
8890
"PutCustomDomainResponseCertificate",
91+
"RedirectConfig",
92+
"RedirectRule",
8993
"Region",
9094
"StatusError",
9195
"WAFRuleAction",
@@ -231,6 +235,8 @@
231235
LokiLogSinkCredentials as LokiLogSinkCredentials,
232236
)
233237
from stackit.cdn.models.loki_log_sink_patch import LokiLogSinkPatch as LokiLogSinkPatch
238+
from stackit.cdn.models.match_condition import MatchCondition as MatchCondition
239+
from stackit.cdn.models.matcher import Matcher as Matcher
234240
from stackit.cdn.models.optimizer import Optimizer as Optimizer
235241
from stackit.cdn.models.optimizer_patch import OptimizerPatch as OptimizerPatch
236242
from stackit.cdn.models.patch_distribution_payload import (
@@ -260,6 +266,8 @@
260266
from stackit.cdn.models.put_custom_domain_response_certificate import (
261267
PutCustomDomainResponseCertificate as PutCustomDomainResponseCertificate,
262268
)
269+
from stackit.cdn.models.redirect_config import RedirectConfig as RedirectConfig
270+
from stackit.cdn.models.redirect_rule import RedirectRule as RedirectRule
263271
from stackit.cdn.models.region import Region as Region
264272
from stackit.cdn.models.status_error import StatusError as StatusError
265273
from stackit.cdn.models.waf_config import WafConfig as WafConfig

services/cdn/src/stackit/cdn/models/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@
8585
from stackit.cdn.models.loki_log_sink_create import LokiLogSinkCreate
8686
from stackit.cdn.models.loki_log_sink_credentials import LokiLogSinkCredentials
8787
from stackit.cdn.models.loki_log_sink_patch import LokiLogSinkPatch
88+
from stackit.cdn.models.match_condition import MatchCondition
89+
from stackit.cdn.models.matcher import Matcher
8890
from stackit.cdn.models.optimizer import Optimizer
8991
from stackit.cdn.models.optimizer_patch import OptimizerPatch
9092
from stackit.cdn.models.patch_distribution_payload import PatchDistributionPayload
@@ -104,6 +106,8 @@
104106
from stackit.cdn.models.put_custom_domain_response_certificate import (
105107
PutCustomDomainResponseCertificate,
106108
)
109+
from stackit.cdn.models.redirect_config import RedirectConfig
110+
from stackit.cdn.models.redirect_rule import RedirectRule
107111
from stackit.cdn.models.region import Region
108112
from stackit.cdn.models.status_error import StatusError
109113
from stackit.cdn.models.waf_config import WafConfig

services/cdn/src/stackit/cdn/models/config.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from stackit.cdn.models.config_backend import ConfigBackend
2424
from stackit.cdn.models.loki_log_sink import LokiLogSink
2525
from stackit.cdn.models.optimizer import Optimizer
26+
from stackit.cdn.models.redirect_config import RedirectConfig
2627
from stackit.cdn.models.region import Region
2728
from stackit.cdn.models.waf_config import WafConfig
2829

@@ -53,6 +54,7 @@ class Config(BaseModel):
5354
alias="monthlyLimitBytes",
5455
)
5556
optimizer: Optional[Optimizer] = None
57+
redirects: Optional[RedirectConfig] = None
5658
regions: Annotated[List[Region], Field(min_length=1)]
5759
waf: WafConfig
5860
__properties: ClassVar[List[str]] = [
@@ -63,6 +65,7 @@ class Config(BaseModel):
6365
"logSink",
6466
"monthlyLimitBytes",
6567
"optimizer",
68+
"redirects",
6669
"regions",
6770
"waf",
6871
]
@@ -113,6 +116,9 @@ def to_dict(self) -> Dict[str, Any]:
113116
# override the default output from pydantic by calling `to_dict()` of optimizer
114117
if self.optimizer:
115118
_dict["optimizer"] = self.optimizer.to_dict()
119+
# override the default output from pydantic by calling `to_dict()` of redirects
120+
if self.redirects:
121+
_dict["redirects"] = self.redirects.to_dict()
116122
# override the default output from pydantic by calling `to_dict()` of waf
117123
if self.waf:
118124
_dict["waf"] = self.waf.to_dict()
@@ -146,6 +152,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
146152
"logSink": LokiLogSink.from_dict(obj["logSink"]) if obj.get("logSink") is not None else None,
147153
"monthlyLimitBytes": obj.get("monthlyLimitBytes"),
148154
"optimizer": Optimizer.from_dict(obj["optimizer"]) if obj.get("optimizer") is not None else None,
155+
"redirects": RedirectConfig.from_dict(obj["redirects"]) if obj.get("redirects") is not None else None,
149156
"regions": obj.get("regions"),
150157
"waf": WafConfig.from_dict(obj["waf"]) if obj.get("waf") is not None else None,
151158
}

services/cdn/src/stackit/cdn/models/config_patch.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
from stackit.cdn.models.config_patch_backend import ConfigPatchBackend
2424
from stackit.cdn.models.loki_log_sink_patch import LokiLogSinkPatch
2525
from stackit.cdn.models.optimizer_patch import OptimizerPatch
26+
from stackit.cdn.models.redirect_config import RedirectConfig
2627
from stackit.cdn.models.region import Region
2728
from stackit.cdn.models.waf_config_patch import WafConfigPatch
2829

@@ -55,6 +56,7 @@ class ConfigPatch(BaseModel):
5556
alias="monthlyLimitBytes",
5657
)
5758
optimizer: Optional[OptimizerPatch] = None
59+
redirects: Optional[RedirectConfig] = None
5860
regions: Optional[Annotated[List[Region], Field(min_length=1)]] = None
5961
waf: Optional[WafConfigPatch] = None
6062
__properties: ClassVar[List[str]] = [
@@ -65,6 +67,7 @@ class ConfigPatch(BaseModel):
6567
"logSink",
6668
"monthlyLimitBytes",
6769
"optimizer",
70+
"redirects",
6871
"regions",
6972
"waf",
7073
]
@@ -115,6 +118,9 @@ def to_dict(self) -> Dict[str, Any]:
115118
# override the default output from pydantic by calling `to_dict()` of optimizer
116119
if self.optimizer:
117120
_dict["optimizer"] = self.optimizer.to_dict()
121+
# override the default output from pydantic by calling `to_dict()` of redirects
122+
if self.redirects:
123+
_dict["redirects"] = self.redirects.to_dict()
118124
# override the default output from pydantic by calling `to_dict()` of waf
119125
if self.waf:
120126
_dict["waf"] = self.waf.to_dict()
@@ -153,6 +159,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
153159
"logSink": LokiLogSinkPatch.from_dict(obj["logSink"]) if obj.get("logSink") is not None else None,
154160
"monthlyLimitBytes": obj.get("monthlyLimitBytes"),
155161
"optimizer": OptimizerPatch.from_dict(obj["optimizer"]) if obj.get("optimizer") is not None else None,
162+
"redirects": RedirectConfig.from_dict(obj["redirects"]) if obj.get("redirects") is not None else None,
156163
"regions": obj.get("regions"),
157164
"waf": WafConfigPatch.from_dict(obj["waf"]) if obj.get("waf") is not None else None,
158165
}

services/cdn/src/stackit/cdn/models/create_distribution_payload.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
)
2626
from stackit.cdn.models.loki_log_sink_create import LokiLogSinkCreate
2727
from stackit.cdn.models.optimizer import Optimizer
28+
from stackit.cdn.models.redirect_config import RedirectConfig
2829
from stackit.cdn.models.region import Region
2930
from stackit.cdn.models.waf_config import WafConfig
3031

@@ -62,6 +63,7 @@ class CreateDistributionPayload(BaseModel):
6263
alias="monthlyLimitBytes",
6364
)
6465
optimizer: Optional[Optimizer] = None
66+
redirects: Optional[RedirectConfig] = None
6567
regions: Annotated[List[Region], Field(min_length=1)] = Field(
6668
description="Define in which regions you would like your content to be cached. "
6769
)
@@ -75,6 +77,7 @@ class CreateDistributionPayload(BaseModel):
7577
"logSink",
7678
"monthlyLimitBytes",
7779
"optimizer",
80+
"redirects",
7881
"regions",
7982
"waf",
8083
]
@@ -125,6 +128,9 @@ def to_dict(self) -> Dict[str, Any]:
125128
# override the default output from pydantic by calling `to_dict()` of optimizer
126129
if self.optimizer:
127130
_dict["optimizer"] = self.optimizer.to_dict()
131+
# override the default output from pydantic by calling `to_dict()` of redirects
132+
if self.redirects:
133+
_dict["redirects"] = self.redirects.to_dict()
128134
# override the default output from pydantic by calling `to_dict()` of waf
129135
if self.waf:
130136
_dict["waf"] = self.waf.to_dict()
@@ -153,6 +159,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
153159
"logSink": LokiLogSinkCreate.from_dict(obj["logSink"]) if obj.get("logSink") is not None else None,
154160
"monthlyLimitBytes": obj.get("monthlyLimitBytes"),
155161
"optimizer": Optimizer.from_dict(obj["optimizer"]) if obj.get("optimizer") is not None else None,
162+
"redirects": RedirectConfig.from_dict(obj["redirects"]) if obj.get("redirects") is not None else None,
156163
"regions": obj.get("regions"),
157164
"waf": WafConfig.from_dict(obj["waf"]) if obj.get("waf") is not None else None,
158165
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# coding: utf-8
2+
3+
"""
4+
CDN API
5+
6+
API used to create and manage your CDN distributions.
7+
8+
The version of the OpenAPI document: 1.0.0
9+
Generated by OpenAPI Generator (https://openapi-generator.tech)
10+
11+
Do not edit the class manually.
12+
""" # noqa: E501
13+
14+
from __future__ import annotations
15+
16+
import json
17+
from enum import Enum
18+
19+
from typing_extensions import Self
20+
21+
22+
class MatchCondition(str, Enum):
23+
"""
24+
Defines how multiple matchers within this rule are combined (ALL, ANY, NONE). Defaults to ANY.
25+
"""
26+
27+
"""
28+
allowed enum values
29+
"""
30+
ANY = "ANY"
31+
ALL = "ALL"
32+
NONE = "NONE"
33+
34+
@classmethod
35+
def from_json(cls, json_str: str) -> Self:
36+
"""Create an instance of MatchCondition from a JSON string"""
37+
return cls(json.loads(json_str))
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# coding: utf-8
2+
3+
"""
4+
CDN API
5+
6+
API used to create and manage your CDN distributions.
7+
8+
The version of the OpenAPI document: 1.0.0
9+
Generated by OpenAPI Generator (https://openapi-generator.tech)
10+
11+
Do not edit the class manually.
12+
""" # noqa: E501
13+
14+
from __future__ import annotations
15+
16+
import json
17+
import pprint
18+
from typing import Any, ClassVar, Dict, List, Optional, Set
19+
20+
from pydantic import BaseModel, ConfigDict, Field, StrictStr
21+
from typing_extensions import Annotated, Self
22+
23+
from stackit.cdn.models.match_condition import MatchCondition
24+
25+
26+
class Matcher(BaseModel):
27+
"""
28+
A matcher containing a list of string values to compare against the request path.
29+
""" # noqa: E501
30+
31+
value_match_condition: Optional[MatchCondition] = Field(default=MatchCondition.ANY, alias="valueMatchCondition")
32+
values: Annotated[List[StrictStr], Field(min_length=1)] = Field(
33+
description='A list of glob patterns to match against the request path. At least one value is required. Examples: "/shop/*" or "*/img/*"'
34+
)
35+
__properties: ClassVar[List[str]] = ["valueMatchCondition", "values"]
36+
37+
model_config = ConfigDict(
38+
populate_by_name=True,
39+
validate_assignment=True,
40+
protected_namespaces=(),
41+
)
42+
43+
def to_str(self) -> str:
44+
"""Returns the string representation of the model using alias"""
45+
return pprint.pformat(self.model_dump(by_alias=True))
46+
47+
def to_json(self) -> str:
48+
"""Returns the JSON representation of the model using alias"""
49+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
50+
return json.dumps(self.to_dict())
51+
52+
@classmethod
53+
def from_json(cls, json_str: str) -> Optional[Self]:
54+
"""Create an instance of Matcher from a JSON string"""
55+
return cls.from_dict(json.loads(json_str))
56+
57+
def to_dict(self) -> Dict[str, Any]:
58+
"""Return the dictionary representation of the model using alias.
59+
60+
This has the following differences from calling pydantic's
61+
`self.model_dump(by_alias=True)`:
62+
63+
* `None` is only added to the output dict for nullable fields that
64+
were set at model initialization. Other fields with value `None`
65+
are ignored.
66+
"""
67+
excluded_fields: Set[str] = set([])
68+
69+
_dict = self.model_dump(
70+
by_alias=True,
71+
exclude=excluded_fields,
72+
exclude_none=True,
73+
)
74+
return _dict
75+
76+
@classmethod
77+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
78+
"""Create an instance of Matcher from a dict"""
79+
if obj is None:
80+
return None
81+
82+
if not isinstance(obj, dict):
83+
return cls.model_validate(obj)
84+
85+
_obj = cls.model_validate(
86+
{
87+
"valueMatchCondition": (
88+
obj.get("valueMatchCondition") if obj.get("valueMatchCondition") is not None else MatchCondition.ANY
89+
),
90+
"values": obj.get("values"),
91+
}
92+
)
93+
return _obj

0 commit comments

Comments
 (0)