Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 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: 6 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
## Release (2025-XX-YY)
- `scf`: [v0.1.0](services/scf/CHANGELOG.md#v010)
- **New:** STACKIT Cloud Foundry module
- `scf`:
- [v0.2.0](services/scf/CHANGELOG.md#v020)
- **Feature:** Add field `OrgId` in model `OrgManager`
- **Feature:** Add ned model `OrganizationCreateBffResponse` and `SpaceCreatedBffResponse`
- [v0.1.0](services/scf/CHANGELOG.md#v010)
- **New:** STACKIT Cloud Foundry module
- `alb`: [v0.5.0](services/alb/CHANGELOG.md#v050)
- **Version**: Minimal version is now python 3.9
- `authorization`: [v0.3.0](services/authorization/CHANGELOG.md#v030)
Expand Down
4 changes: 4 additions & 0 deletions services/scf/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,6 @@
## v0.2.0
- **Feature:** Add field `OrgId` in model `OrgManager`
- **Feature:** Add ned model `OrganizationCreateBffResponse` and `SpaceCreatedBffResponse`

## v0.1.0
- **New:** STACKIT Cloud Foundry module
2 changes: 1 addition & 1 deletion services/scf/pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name = "stackit-scf"

[tool.poetry]
name = "stackit-scf"
version = "v0.1.0"
version = "v0.2.0"
authors = [
"STACKIT Developer Tools <[email protected]>",
]
Expand Down
8 changes: 8 additions & 0 deletions services/scf/src/stackit/scf/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@
"OrgRoleResponse",
"OrgRoleType",
"Organization",
"OrganizationCreateBffResponse",
"OrganizationCreateResponse",
"OrganizationDeleteResponse",
"OrganizationQuota",
Expand All @@ -57,6 +58,7 @@
"QuotaRoutes",
"QuotaServices",
"Space",
"SpaceCreatedBffResponse",
"SpaceDeleteResponse",
"SpaceRoleCreateBffRequest",
"SpaceRoleCreateBffResponse",
Expand Down Expand Up @@ -112,6 +114,9 @@
from stackit.scf.models.org_role_response import OrgRoleResponse as OrgRoleResponse
from stackit.scf.models.org_role_type import OrgRoleType as OrgRoleType
from stackit.scf.models.organization import Organization as Organization
from stackit.scf.models.organization_create_bff_response import (
OrganizationCreateBffResponse as OrganizationCreateBffResponse,
)
from stackit.scf.models.organization_create_response import (
OrganizationCreateResponse as OrganizationCreateResponse,
)
Expand All @@ -135,6 +140,9 @@
from stackit.scf.models.quota_routes import QuotaRoutes as QuotaRoutes
from stackit.scf.models.quota_services import QuotaServices as QuotaServices
from stackit.scf.models.space import Space as Space
from stackit.scf.models.space_created_bff_response import (
SpaceCreatedBffResponse as SpaceCreatedBffResponse,
)
from stackit.scf.models.space_delete_response import (
SpaceDeleteResponse as SpaceDeleteResponse,
)
Expand Down
4 changes: 4 additions & 0 deletions services/scf/src/stackit/scf/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,9 @@
from stackit.scf.models.org_role_response import OrgRoleResponse
from stackit.scf.models.org_role_type import OrgRoleType
from stackit.scf.models.organization import Organization
from stackit.scf.models.organization_create_bff_response import (
OrganizationCreateBffResponse,
)
from stackit.scf.models.organization_create_response import OrganizationCreateResponse
from stackit.scf.models.organization_delete_response import OrganizationDeleteResponse
from stackit.scf.models.organization_quota import OrganizationQuota
Expand All @@ -45,6 +48,7 @@
from stackit.scf.models.quota_routes import QuotaRoutes
from stackit.scf.models.quota_services import QuotaServices
from stackit.scf.models.space import Space
from stackit.scf.models.space_created_bff_response import SpaceCreatedBffResponse
from stackit.scf.models.space_delete_response import SpaceDeleteResponse
from stackit.scf.models.space_role_create_bff_request import SpaceRoleCreateBffRequest
from stackit.scf.models.space_role_create_bff_response import SpaceRoleCreateBffResponse
Expand Down
3 changes: 3 additions & 0 deletions services/scf/src/stackit/scf/models/org_manager.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ class OrgManager(BaseModel):

created_at: datetime = Field(alias="createdAt")
guid: StrictStr
org_id: StrictStr = Field(alias="orgId")
platform_id: StrictStr = Field(alias="platformId")
project_id: StrictStr = Field(alias="projectId")
region: StrictStr
Expand All @@ -38,6 +39,7 @@ class OrgManager(BaseModel):
__properties: ClassVar[List[str]] = [
"createdAt",
"guid",
"orgId",
"platformId",
"projectId",
"region",
Expand Down Expand Up @@ -97,6 +99,7 @@ def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
{
"createdAt": obj.get("createdAt"),
"guid": obj.get("guid"),
"orgId": obj.get("orgId"),
"platformId": obj.get("platformId"),
"projectId": obj.get("projectId"),
"region": obj.get("region"),
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# coding: utf-8

"""
STACKIT Cloud Foundry API

API endpoints for managing STACKIT Cloud Foundry

The version of the OpenAPI document: 1.0.0
Contact: [email protected]
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
from typing_extensions import Self

from stackit.scf.models.org_role_response import OrgRoleResponse
from stackit.scf.models.organization_create_response import OrganizationCreateResponse


class OrganizationCreateBffResponse(BaseModel):
"""
OrganizationCreateBffResponse
""" # noqa: E501

org: OrganizationCreateResponse
roles: Dict[str, OrgRoleResponse]
__properties: ClassVar[List[str]] = ["org", "roles"]

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 OrganizationCreateBffResponse 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,
)
# override the default output from pydantic by calling `to_dict()` of org
if self.org:
_dict["org"] = self.org.to_dict()
# override the default output from pydantic by calling `to_dict()` of each value in roles (dict)
_field_dict = {}
if self.roles:
for _key in self.roles:
if self.roles[_key]:
_field_dict[_key] = self.roles[_key].to_dict()
_dict["roles"] = _field_dict
return _dict

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

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

_obj = cls.model_validate(
{
"org": OrganizationCreateResponse.from_dict(obj["org"]) if obj.get("org") is not None else None,
"roles": (
dict((_k, OrgRoleResponse.from_dict(_v)) for _k, _v in obj["roles"].items())
if obj.get("roles") is not None
else None
),
}
)
return _obj
105 changes: 105 additions & 0 deletions services/scf/src/stackit/scf/models/space_created_bff_response.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
# coding: utf-8

"""
STACKIT Cloud Foundry API

API endpoints for managing STACKIT Cloud Foundry

The version of the OpenAPI document: 1.0.0
Contact: [email protected]
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
from typing_extensions import Self

from stackit.scf.models.org_role_response import OrgRoleResponse
from stackit.scf.models.space import Space
from stackit.scf.models.space_role_create_response import SpaceRoleCreateResponse


class SpaceCreatedBffResponse(BaseModel):
"""
SpaceCreatedBffResponse
""" # noqa: E501

org_role: Optional[OrgRoleResponse] = Field(default=None, alias="orgRole")
space: Space
space_role: SpaceRoleCreateResponse = Field(alias="spaceRole")
__properties: ClassVar[List[str]] = ["orgRole", "space", "spaceRole"]

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 SpaceCreatedBffResponse 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,
)
# override the default output from pydantic by calling `to_dict()` of org_role
if self.org_role:
_dict["orgRole"] = self.org_role.to_dict()
# override the default output from pydantic by calling `to_dict()` of space
if self.space:
_dict["space"] = self.space.to_dict()
# override the default output from pydantic by calling `to_dict()` of space_role
if self.space_role:
_dict["spaceRole"] = self.space_role.to_dict()
return _dict

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

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

_obj = cls.model_validate(
{
"orgRole": OrgRoleResponse.from_dict(obj["orgRole"]) if obj.get("orgRole") is not None else None,
"space": Space.from_dict(obj["space"]) if obj.get("space") is not None else None,
"spaceRole": (
SpaceRoleCreateResponse.from_dict(obj["spaceRole"]) if obj.get("spaceRole") is not None else None
),
}
)
return _obj
Loading