diff --git a/CHANGELOG.md b/CHANGELOG.md index 74031275..08c0e6bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,8 @@ - Added API calls for folder management - `serverupdate`: [v1.0.1](services/serverupdate/CHANGELOG.md#v101-2025-05-05) - **Minor change:** Use stderr by default. +- `mongodbflex`: [v1.0.0](services/mongodbflex/CHANGELOG.md#v100-2025-05-05) + - **Breaking Change:** Introduce typed enum constants for status attributes ## Release (2025-04-30) - `stackitmarketplace`: [v0.4.0](services/stackitmarketplace/CHANGELOG.md#v040-2025-04-16) diff --git a/services/mongodbflex/CHANGELOG.md b/services/mongodbflex/CHANGELOG.md index 906cf2f4..32d7cd3f 100644 --- a/services/mongodbflex/CHANGELOG.md +++ b/services/mongodbflex/CHANGELOG.md @@ -1,3 +1,6 @@ +## v1.0.0 (2025-05-05) + - **Breaking Change:** Introduce typed enum constants for status attributes + ## v0.3.0 (2025-01-21) - **Breaking change**: Delete endpoint made private. diff --git a/services/mongodbflex/src/stackit/mongodbflex/configuration.py b/services/mongodbflex/src/stackit/mongodbflex/configuration.py index 81166599..0b458a38 100644 --- a/services/mongodbflex/src/stackit/mongodbflex/configuration.py +++ b/services/mongodbflex/src/stackit/mongodbflex/configuration.py @@ -1,5 +1,10 @@ # coding: utf-8 +import sys + +import os + + """ STACKIT MongoDB Service API @@ -12,8 +17,6 @@ Do not edit the class manually. """ # noqa: E501 docstring might be too long -import os - class HostConfiguration: def __init__( @@ -30,6 +33,7 @@ def __init__( "as a function argument instead of being set in the client configuration.\n" "Once all services have migrated, the methods to specify the region in the client configuration " "will be removed.", + file=sys.stderr, ) """Constructor """ diff --git a/services/mongodbflex/src/stackit/mongodbflex/models/instance.py b/services/mongodbflex/src/stackit/mongodbflex/models/instance.py index a5150b12..b0a4d1cf 100644 --- a/services/mongodbflex/src/stackit/mongodbflex/models/instance.py +++ b/services/mongodbflex/src/stackit/mongodbflex/models/instance.py @@ -18,7 +18,7 @@ import pprint from typing import Any, ClassVar, Dict, List, Optional, Set -from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr, field_validator from typing_extensions import Self from stackit.mongodbflex.models.acl import ACL @@ -38,7 +38,7 @@ class Instance(BaseModel): name: Optional[StrictStr] = None options: Optional[Dict[str, StrictStr]] = None replicas: Optional[StrictInt] = None - status: Optional[StrictStr] = None + status: Optional[StrictStr] = Field(default=None, description="The current status of the instance.") storage: Optional[Storage] = None version: Optional[StrictStr] = None __properties: ClassVar[List[str]] = [ @@ -54,6 +54,16 @@ class Instance(BaseModel): "version", ] + @field_validator("status") + def status_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(["READY", "PENDING", "PROCESSING", "FAILED", "UNKNOWN"]): + raise ValueError("must be one of enum values ('READY', 'PENDING', 'PROCESSING', 'FAILED', 'UNKNOWN')") + return value + model_config = ConfigDict( populate_by_name=True, validate_assignment=True, diff --git a/services/mongodbflex/src/stackit/mongodbflex/models/instance_list_instance.py b/services/mongodbflex/src/stackit/mongodbflex/models/instance_list_instance.py index edd590dd..dfd495e2 100644 --- a/services/mongodbflex/src/stackit/mongodbflex/models/instance_list_instance.py +++ b/services/mongodbflex/src/stackit/mongodbflex/models/instance_list_instance.py @@ -18,7 +18,7 @@ import pprint from typing import Any, ClassVar, Dict, List, Optional, Set -from pydantic import BaseModel, ConfigDict, StrictStr +from pydantic import BaseModel, ConfigDict, Field, StrictStr, field_validator from typing_extensions import Self @@ -29,9 +29,19 @@ class InstanceListInstance(BaseModel): id: Optional[StrictStr] = None name: Optional[StrictStr] = None - status: Optional[StrictStr] = None + status: Optional[StrictStr] = Field(default=None, description="The current status of the instance.") __properties: ClassVar[List[str]] = ["id", "name", "status"] + @field_validator("status") + def status_validate_enum(cls, value): + """Validates the enum""" + if value is None: + return value + + if value not in set(["READY", "PENDING", "PROCESSING", "FAILED", "UNKNOWN"]): + raise ValueError("must be one of enum values ('READY', 'PENDING', 'PROCESSING', 'FAILED', 'UNKNOWN')") + return value + model_config = ConfigDict( populate_by_name=True, validate_assignment=True,