From 0d27731317653a48d95096c68279285cc36ad60d Mon Sep 17 00:00:00 2001 From: Torsten Kilias Date: Fri, 29 Aug 2025 19:32:29 +0200 Subject: [PATCH 1/5] Add stream type with hard_code default value to createDatabase --- exasol/saas/client/api_access.py | 1 + 1 file changed, 1 insertion(+) diff --git a/exasol/saas/client/api_access.py b/exasol/saas/client/api_access.py index e137d3d..90cfbb3 100644 --- a/exasol/saas/client/api_access.py +++ b/exasol/saas/client/api_access.py @@ -224,6 +224,7 @@ def minutes(x: timedelta) -> int: initial_cluster=cluster_spec, provider="aws", region=region, + stream_type="feature-release" ), ) From 3c581cf7ec59e4efe0c070aa0ecfdab48988298f Mon Sep 17 00:00:00 2001 From: Torsten Kilias Date: Fri, 29 Aug 2025 17:38:12 +0000 Subject: [PATCH 2/5] Fix formatting --- exasol/saas/client/api_access.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exasol/saas/client/api_access.py b/exasol/saas/client/api_access.py index 90cfbb3..2319c43 100644 --- a/exasol/saas/client/api_access.py +++ b/exasol/saas/client/api_access.py @@ -224,7 +224,7 @@ def minutes(x: timedelta) -> int: initial_cluster=cluster_spec, provider="aws", region=region, - stream_type="feature-release" + stream_type="feature-release", ), ) From 8d635649606b8ce5c89321d832e8bbd42e505b9f Mon Sep 17 00:00:00 2001 From: ckunki Date: Mon, 22 Sep 2025 10:39:32 +0200 Subject: [PATCH 3/5] Re-generated SaaS client --- doc/changes/unreleased.md | 6 ++ exasol/saas/client/openapi/models/__init__.py | 2 - .../client/openapi/models/exasol_database.py | 11 --- .../models/exasol_database_settings.py | 96 ------------------- openapi.json | 37 +------ 5 files changed, 8 insertions(+), 144 deletions(-) delete mode 100644 exasol/saas/client/openapi/models/exasol_database_settings.py diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index 9923dea..d86347f 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -5,6 +5,12 @@ This release updates the Python API generated from file `openapi.json`. Changes to `open-api.json` in detail: * added `paths` / `/api/v1/accounts/{accountId}/databases/{databaseId}/dlhc-activate` * added `components` / `schemas` / `DlhcActivateStatus` +* removed `components` / `schemas` / `Database` / `required` / `settings` +* removed `components` / `schemas` / `Database` / `properties` / `settings` + +## Bugfixes + +* #115: Fixed SaaS API throws "stream Type should be provided" ## Refactorings diff --git a/exasol/saas/client/openapi/models/__init__.py b/exasol/saas/client/openapi/models/__init__.py index 24f04bc..0ccff87 100644 --- a/exasol/saas/client/openapi/models/__init__.py +++ b/exasol/saas/client/openapi/models/__init__.py @@ -23,7 +23,6 @@ from .exasol_database import ExasolDatabase from .exasol_database_clusters import ExasolDatabaseClusters from .exasol_database_integrations_item import ExasolDatabaseIntegrationsItem -from .exasol_database_settings import ExasolDatabaseSettings from .extension import Extension from .extension_detail import ExtensionDetail from .extension_instance import ExtensionInstance @@ -78,7 +77,6 @@ "ExasolDatabase", "ExasolDatabaseClusters", "ExasolDatabaseIntegrationsItem", - "ExasolDatabaseSettings", "Extension", "ExtensionDetail", "ExtensionInstance", diff --git a/exasol/saas/client/openapi/models/exasol_database.py b/exasol/saas/client/openapi/models/exasol_database.py index a41ff61..53cdb64 100644 --- a/exasol/saas/client/openapi/models/exasol_database.py +++ b/exasol/saas/client/openapi/models/exasol_database.py @@ -29,7 +29,6 @@ from ..models.exasol_database_integrations_item import ( ExasolDatabaseIntegrationsItem, ) - from ..models.exasol_database_settings import ExasolDatabaseSettings T = TypeVar("T", bound="ExasolDatabase") @@ -47,7 +46,6 @@ class ExasolDatabase: region (str): created_at (datetime.datetime): created_by (str): - settings (ExasolDatabaseSettings): integrations (Union[Unset, list['ExasolDatabaseIntegrationsItem']]): deleted_by (Union[Unset, str]): deleted_at (Union[Unset, datetime.datetime]): @@ -61,7 +59,6 @@ class ExasolDatabase: region: str created_at: datetime.datetime created_by: str - settings: "ExasolDatabaseSettings" integrations: Union[Unset, list["ExasolDatabaseIntegrationsItem"]] = UNSET deleted_by: Union[Unset, str] = UNSET deleted_at: Union[Unset, datetime.datetime] = UNSET @@ -72,7 +69,6 @@ def to_dict(self) -> dict[str, Any]: from ..models.exasol_database_integrations_item import ( ExasolDatabaseIntegrationsItem, ) - from ..models.exasol_database_settings import ExasolDatabaseSettings status = self.status.value @@ -90,8 +86,6 @@ def to_dict(self) -> dict[str, Any]: created_by = self.created_by - settings = self.settings.to_dict() - integrations: Union[Unset, list[dict[str, Any]]] = UNSET if not isinstance(self.integrations, Unset): integrations = [] @@ -117,7 +111,6 @@ def to_dict(self) -> dict[str, Any]: "region": region, "createdAt": created_at, "createdBy": created_by, - "settings": settings, } ) if integrations is not UNSET: @@ -135,7 +128,6 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: from ..models.exasol_database_integrations_item import ( ExasolDatabaseIntegrationsItem, ) - from ..models.exasol_database_settings import ExasolDatabaseSettings d = dict(src_dict) status = Status(d.pop("status")) @@ -154,8 +146,6 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: created_by = d.pop("createdBy") - settings = ExasolDatabaseSettings.from_dict(d.pop("settings")) - integrations = [] _integrations = d.pop("integrations", UNSET) for integrations_item_data in _integrations or []: @@ -183,7 +173,6 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: region=region, created_at=created_at, created_by=created_by, - settings=settings, integrations=integrations, deleted_by=deleted_by, deleted_at=deleted_at, diff --git a/exasol/saas/client/openapi/models/exasol_database_settings.py b/exasol/saas/client/openapi/models/exasol_database_settings.py deleted file mode 100644 index c27f52e..0000000 --- a/exasol/saas/client/openapi/models/exasol_database_settings.py +++ /dev/null @@ -1,96 +0,0 @@ -from collections.abc import ( - Generator, - Mapping, -) -from typing import ( - TYPE_CHECKING, - Any, - BinaryIO, - Optional, - TextIO, - TypeVar, -) - -from attrs import define as _attrs_define -from attrs import field as _attrs_field - -from ..types import ( - UNSET, - Unset, -) - -T = TypeVar("T", bound="ExasolDatabaseSettings") - - -@_attrs_define -class ExasolDatabaseSettings: - """ - Attributes: - offload_enabled (bool): - auto_updates_enabled (bool): - auto_updates_hard_disabled (bool): - num_nodes (int): - stream_type (str): - stream_description (str): - """ - - offload_enabled: bool - auto_updates_enabled: bool - auto_updates_hard_disabled: bool - num_nodes: int - stream_type: str - stream_description: str - - def to_dict(self) -> dict[str, Any]: - offload_enabled = self.offload_enabled - - auto_updates_enabled = self.auto_updates_enabled - - auto_updates_hard_disabled = self.auto_updates_hard_disabled - - num_nodes = self.num_nodes - - stream_type = self.stream_type - - stream_description = self.stream_description - - field_dict: dict[str, Any] = {} - - field_dict.update( - { - "offloadEnabled": offload_enabled, - "autoUpdatesEnabled": auto_updates_enabled, - "autoUpdatesHardDisabled": auto_updates_hard_disabled, - "numNodes": num_nodes, - "streamType": stream_type, - "streamDescription": stream_description, - } - ) - - return field_dict - - @classmethod - def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: - d = dict(src_dict) - offload_enabled = d.pop("offloadEnabled") - - auto_updates_enabled = d.pop("autoUpdatesEnabled") - - auto_updates_hard_disabled = d.pop("autoUpdatesHardDisabled") - - num_nodes = d.pop("numNodes") - - stream_type = d.pop("streamType") - - stream_description = d.pop("streamDescription") - - exasol_database_settings = cls( - offload_enabled=offload_enabled, - auto_updates_enabled=auto_updates_enabled, - auto_updates_hard_disabled=auto_updates_hard_disabled, - num_nodes=num_nodes, - stream_type=stream_type, - stream_description=stream_description, - ) - - return exasol_database_settings diff --git a/openapi.json b/openapi.json index ca56f51..b2fb2b4 100644 --- a/openapi.json +++ b/openapi.json @@ -6,7 +6,7 @@ "version": "1.0", "download": { "source": "https://cloud.exasol.com/openapi.json", - "timestamp": "2025-08-11T06:11:17.721349+00:00" + "timestamp": "2025-09-22T08:35:51.065579+00:00" } }, "servers": [ @@ -3267,8 +3267,7 @@ "provider", "region", "createdAt", - "createdBy", - "settings" + "createdBy" ], "properties": { "status": { @@ -3336,38 +3335,6 @@ "deletedAt": { "type": "string", "format": "date-time" - }, - "settings": { - "required": [ - "offloadEnabled", - "autoUpdatesEnabled", - "autoUpdatesHardDisabled", - "numNodes", - "streamType", - "streamDescription" - ], - "properties": { - "offloadEnabled": { - "type": "boolean" - }, - "autoUpdatesEnabled": { - "type": "boolean" - }, - "autoUpdatesHardDisabled": { - "type": "boolean" - }, - "numNodes": { - "type": "integer" - }, - "streamType": { - "type": "string" - }, - "streamDescription": { - "type": "string" - } - }, - "additionalProperties": false, - "type": "object" } }, "type": "object" From 5a33d68ef3270465942ee057d36e38e338335c7b Mon Sep 17 00:00:00 2001 From: ckunki Date: Tue, 23 Sep 2025 16:07:44 +0200 Subject: [PATCH 4/5] Updated changelog --- doc/changes/unreleased.md | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index d86347f..ce799cd 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -2,12 +2,17 @@ This release updates the Python API generated from file `openapi.json`. -Changes to `open-api.json` in detail: -* added `paths` / `/api/v1/accounts/{accountId}/databases/{databaseId}/dlhc-activate` -* added `components` / `schemas` / `DlhcActivateStatus` +The following changes actually are breaking changes: * removed `components` / `schemas` / `Database` / `required` / `settings` * removed `components` / `schemas` / `Database` / `properties` / `settings` +However, as these changes are transparant to users of the SAPIPY the release only +increases the minor version. + +Other changes to `open-api.json` are: +* added `paths` / `/api/v1/accounts/{accountId}/databases/{databaseId}/dlhc-activate` +* added `components` / `schemas` / `DlhcActivateStatus` + ## Bugfixes * #115: Fixed SaaS API throws "stream Type should be provided" From 2cd4751217db376cad6c2d9ca9f8bcfdb1d5ae42 Mon Sep 17 00:00:00 2001 From: ckunki Date: Tue, 23 Sep 2025 16:07:56 +0200 Subject: [PATCH 5/5] Prepare release 2.3.0 --- doc/changes/changelog.md | 2 ++ doc/changes/changes_2.3.0.md | 23 +++++++++++++++++++++++ doc/changes/unreleased.md | 22 ---------------------- pyproject.toml | 2 +- version.py | 2 +- 5 files changed, 27 insertions(+), 24 deletions(-) create mode 100644 doc/changes/changes_2.3.0.md diff --git a/doc/changes/changelog.md b/doc/changes/changelog.md index af975e3..db7dc71 100644 --- a/doc/changes/changelog.md +++ b/doc/changes/changelog.md @@ -1,6 +1,7 @@ # Changes * [unreleased](unreleased.md) +* [2.3.0](changes_2.3.0.md) * [2.2.0](changes_2.2.0.md) * [2.1.0](changes_2.1.0.md) * [2.0.0](changes_2.0.0.md) @@ -24,6 +25,7 @@ hidden: --- unreleased +changes_2.3.0 changes_2.2.0 changes_2.1.0 changes_2.0.0 diff --git a/doc/changes/changes_2.3.0.md b/doc/changes/changes_2.3.0.md new file mode 100644 index 0000000..2e11feb --- /dev/null +++ b/doc/changes/changes_2.3.0.md @@ -0,0 +1,23 @@ +# 2.3.0 - 2025-09-23 + +This release updates the Python API generated from file `openapi.json`. + +The following changes actually are breaking changes: +* removed `components` / `schemas` / `Database` / `required` / `settings` +* removed `components` / `schemas` / `Database` / `properties` / `settings` + +However, as these changes are transparant to users of the SAPIPY the release only +increases the minor version. + +Other changes to `open-api.json` are: +* added `paths` / `/api/v1/accounts/{accountId}/databases/{databaseId}/dlhc-activate` +* added `components` / `schemas` / `DlhcActivateStatus` + +## Bugfixes + +* #115: Fixed SaaS API throws "stream Type should be provided" + +## Refactorings + +* #110: Updated exasol-toolbox to 1.6.0 & activated sonar +* #112: Updated open API client diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index ce799cd..79e701b 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -1,23 +1 @@ # Unreleased - -This release updates the Python API generated from file `openapi.json`. - -The following changes actually are breaking changes: -* removed `components` / `schemas` / `Database` / `required` / `settings` -* removed `components` / `schemas` / `Database` / `properties` / `settings` - -However, as these changes are transparant to users of the SAPIPY the release only -increases the minor version. - -Other changes to `open-api.json` are: -* added `paths` / `/api/v1/accounts/{accountId}/databases/{databaseId}/dlhc-activate` -* added `components` / `schemas` / `DlhcActivateStatus` - -## Bugfixes - -* #115: Fixed SaaS API throws "stream Type should be provided" - -## Refactorings - -* #110: Updated exasol-toolbox to 1.6.0 & activated sonar -* #112: Updated open API client diff --git a/pyproject.toml b/pyproject.toml index 36bfdf2..f8aa89f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "exasol-saas-api" -version = "2.2.0" +version = "2.3.0" requires-python = ">=3.10.0,<4.0" description = "API enabling Python applications connecting to Exasol database SaaS instances and using their SaaS services" authors = [ diff --git a/version.py b/version.py index d9def5d..0fdf4c4 100644 --- a/version.py +++ b/version.py @@ -5,7 +5,7 @@ # Do not edit this file manually! # If you need to change the version, do so in the pyproject.toml, e.g. by using `poetry version X.Y.Z`. MAJOR = 2 -MINOR = 2 +MINOR = 3 PATCH = 0 VERSION = f"{MAJOR}.{MINOR}.{PATCH}" __version__ = VERSION