Skip to content

Commit d749527

Browse files
Generate scf
1 parent da18dda commit d749527

File tree

3 files changed

+145
-0
lines changed

3 files changed

+145
-0
lines changed

services/scf/src/stackit/scf/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
"SpaceRoleCreateBffResponse",
6767
"SpaceRoleCreateResponse",
6868
"SpaceRoleType",
69+
"SpaceWithIsolationSegment",
6970
"SpacesList",
7071
"UpdateOrganizationPayload",
7172
"UpdateSpacePayload",
@@ -162,6 +163,9 @@
162163
SpaceRoleCreateResponse as SpaceRoleCreateResponse,
163164
)
164165
from stackit.scf.models.space_role_type import SpaceRoleType as SpaceRoleType
166+
from stackit.scf.models.space_with_isolation_segment import (
167+
SpaceWithIsolationSegment as SpaceWithIsolationSegment,
168+
)
165169
from stackit.scf.models.spaces_list import SpacesList as SpacesList
166170
from stackit.scf.models.update_organization_payload import (
167171
UpdateOrganizationPayload as UpdateOrganizationPayload,

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@
5656
from stackit.scf.models.space_role_create_bff_response import SpaceRoleCreateBffResponse
5757
from stackit.scf.models.space_role_create_response import SpaceRoleCreateResponse
5858
from stackit.scf.models.space_role_type import SpaceRoleType
59+
from stackit.scf.models.space_with_isolation_segment import SpaceWithIsolationSegment
5960
from stackit.scf.models.spaces_list import SpacesList
6061
from stackit.scf.models.update_organization_payload import UpdateOrganizationPayload
6162
from stackit.scf.models.update_space_payload import UpdateSpacePayload
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
1+
# coding: utf-8
2+
3+
"""
4+
STACKIT Cloud Foundry API
5+
6+
API endpoints for managing STACKIT Cloud Foundry
7+
8+
The version of the OpenAPI document: 1.0.0
9+
10+
Generated by OpenAPI Generator (https://openapi-generator.tech)
11+
12+
Do not edit the class manually.
13+
""" # noqa: E501
14+
15+
from __future__ import annotations
16+
17+
import json
18+
import pprint
19+
import re # noqa: F401
20+
from datetime import datetime
21+
from typing import Any, ClassVar, Dict, List, Optional, Set
22+
23+
from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator
24+
from typing_extensions import Self
25+
26+
27+
class SpaceWithIsolationSegment(BaseModel):
28+
"""
29+
A Space resource that includes its assigned Isolation Segment details.
30+
""" # noqa: E501
31+
32+
created_at: datetime = Field(alias="createdAt")
33+
guid: StrictStr
34+
name: StrictStr
35+
org_id: StrictStr = Field(alias="orgId")
36+
platform_id: StrictStr = Field(alias="platformId")
37+
project_id: StrictStr = Field(alias="projectId")
38+
region: StrictStr
39+
updated_at: datetime = Field(alias="updatedAt")
40+
isolation_segment_id: Optional[StrictStr] = Field(default=None, alias="isolationSegmentId")
41+
__properties: ClassVar[List[str]] = [
42+
"createdAt",
43+
"guid",
44+
"name",
45+
"orgId",
46+
"platformId",
47+
"projectId",
48+
"region",
49+
"updatedAt",
50+
"isolationSegmentId",
51+
]
52+
53+
@field_validator("created_at", mode="before")
54+
def created_at_change_year_zero_to_one(cls, value):
55+
"""Workaround which prevents year 0 issue"""
56+
if isinstance(value, str):
57+
# Check for year "0000" at the beginning of the string
58+
# This assumes common date formats like YYYY-MM-DDTHH:MM:SS+00:00 or YYYY-MM-DDTHH:MM:SSZ
59+
if value.startswith("0000-01-01T") and re.match(
60+
r"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\+\d{2}:\d{2}|Z)$", value
61+
):
62+
# Workaround: Replace "0000" with "0001"
63+
return "0001" + value[4:] # Take "0001" and append the rest of the string
64+
return value
65+
66+
@field_validator("updated_at", mode="before")
67+
def updated_at_change_year_zero_to_one(cls, value):
68+
"""Workaround which prevents year 0 issue"""
69+
if isinstance(value, str):
70+
# Check for year "0000" at the beginning of the string
71+
# This assumes common date formats like YYYY-MM-DDTHH:MM:SS+00:00 or YYYY-MM-DDTHH:MM:SSZ
72+
if value.startswith("0000-01-01T") and re.match(
73+
r"^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\+\d{2}:\d{2}|Z)$", value
74+
):
75+
# Workaround: Replace "0000" with "0001"
76+
return "0001" + value[4:] # Take "0001" and append the rest of the string
77+
return value
78+
79+
model_config = ConfigDict(
80+
populate_by_name=True,
81+
validate_assignment=True,
82+
protected_namespaces=(),
83+
)
84+
85+
def to_str(self) -> str:
86+
"""Returns the string representation of the model using alias"""
87+
return pprint.pformat(self.model_dump(by_alias=True))
88+
89+
def to_json(self) -> str:
90+
"""Returns the JSON representation of the model using alias"""
91+
# TODO: pydantic v2: use .model_dump_json(by_alias=True, exclude_unset=True) instead
92+
return json.dumps(self.to_dict())
93+
94+
@classmethod
95+
def from_json(cls, json_str: str) -> Optional[Self]:
96+
"""Create an instance of SpaceWithIsolationSegment from a JSON string"""
97+
return cls.from_dict(json.loads(json_str))
98+
99+
def to_dict(self) -> Dict[str, Any]:
100+
"""Return the dictionary representation of the model using alias.
101+
102+
This has the following differences from calling pydantic's
103+
`self.model_dump(by_alias=True)`:
104+
105+
* `None` is only added to the output dict for nullable fields that
106+
were set at model initialization. Other fields with value `None`
107+
are ignored.
108+
"""
109+
excluded_fields: Set[str] = set([])
110+
111+
_dict = self.model_dump(
112+
by_alias=True,
113+
exclude=excluded_fields,
114+
exclude_none=True,
115+
)
116+
return _dict
117+
118+
@classmethod
119+
def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
120+
"""Create an instance of SpaceWithIsolationSegment from a dict"""
121+
if obj is None:
122+
return None
123+
124+
if not isinstance(obj, dict):
125+
return cls.model_validate(obj)
126+
127+
_obj = cls.model_validate(
128+
{
129+
"createdAt": obj.get("createdAt"),
130+
"guid": obj.get("guid"),
131+
"name": obj.get("name"),
132+
"orgId": obj.get("orgId"),
133+
"platformId": obj.get("platformId"),
134+
"projectId": obj.get("projectId"),
135+
"region": obj.get("region"),
136+
"updatedAt": obj.get("updatedAt"),
137+
"isolationSegmentId": obj.get("isolationSegmentId"),
138+
}
139+
)
140+
return _obj

0 commit comments

Comments
 (0)