From b3df10a6e1c1f010e76d3c2fbd7f386b78ba5ccd Mon Sep 17 00:00:00 2001 From: nuonbot Date: Thu, 13 Aug 2026 21:06:32 +0000 Subject: [PATCH] ci: generate from api 0.19.1123 --- nuon/api/installs/add_install_labels.py | 20 +++++-- nuon/api/installs/remove_install_labels.py | 12 +++-- nuon/models/__init__.py | 6 +++ nuon/models/app_app.py | 20 +++++++ nuon/models/app_app_default_labels.py | 50 +++++++++++++++++ nuon/models/app_azure_stack_outputs.py | 12 +++++ nuon/models/app_install.py | 45 ++++++++++++++++ nuon/models/app_install_app_default_labels.py | 51 ++++++++++++++++++ nuon/models/app_install_label_templates.py | 54 +++++++++++++++++++ pyproject.toml | 2 +- version.txt | 2 +- 11 files changed, 264 insertions(+), 10 deletions(-) create mode 100644 nuon/models/app_app_default_labels.py create mode 100644 nuon/models/app_install_app_default_labels.py create mode 100644 nuon/models/app_install_label_templates.py diff --git a/nuon/api/installs/add_install_labels.py b/nuon/api/installs/add_install_labels.py index 4b27e702..939029b6 100644 --- a/nuon/api/installs/add_install_labels.py +++ b/nuon/api/installs/add_install_labels.py @@ -92,7 +92,10 @@ def sync_detailed( ) -> Response[AppInstall | StderrErrResponse]: """add labels to an install - Merge the provided labels into the install's existing labels. Existing keys are overwritten. + Merge the provided labels into the install's existing labels. Existing keys are overwritten. A value + using the .nuon interpolation syntax becomes a dynamic label: the template is stored and its + rendered value is re-materialized whenever install state changes. Keys managed by the app config's + default_labels cannot be changed here. Args: install_id (str): @@ -126,7 +129,10 @@ def sync( ) -> AppInstall | StderrErrResponse | None: """add labels to an install - Merge the provided labels into the install's existing labels. Existing keys are overwritten. + Merge the provided labels into the install's existing labels. Existing keys are overwritten. A value + using the .nuon interpolation syntax becomes a dynamic label: the template is stored and its + rendered value is re-materialized whenever install state changes. Keys managed by the app config's + default_labels cannot be changed here. Args: install_id (str): @@ -155,7 +161,10 @@ async def asyncio_detailed( ) -> Response[AppInstall | StderrErrResponse]: """add labels to an install - Merge the provided labels into the install's existing labels. Existing keys are overwritten. + Merge the provided labels into the install's existing labels. Existing keys are overwritten. A value + using the .nuon interpolation syntax becomes a dynamic label: the template is stored and its + rendered value is re-materialized whenever install state changes. Keys managed by the app config's + default_labels cannot be changed here. Args: install_id (str): @@ -187,7 +196,10 @@ async def asyncio( ) -> AppInstall | StderrErrResponse | None: """add labels to an install - Merge the provided labels into the install's existing labels. Existing keys are overwritten. + Merge the provided labels into the install's existing labels. Existing keys are overwritten. A value + using the .nuon interpolation syntax becomes a dynamic label: the template is stored and its + rendered value is re-materialized whenever install state changes. Keys managed by the app config's + default_labels cannot be changed here. Args: install_id (str): diff --git a/nuon/api/installs/remove_install_labels.py b/nuon/api/installs/remove_install_labels.py index 358935ae..cf36a270 100644 --- a/nuon/api/installs/remove_install_labels.py +++ b/nuon/api/installs/remove_install_labels.py @@ -92,7 +92,8 @@ def sync_detailed( ) -> Response[AppInstall | StderrErrResponse]: """remove labels from an install - Remove the specified label keys from the install. + Remove the specified label keys from the install. Removing a dynamic label's key also removes its + template. Keys managed by the app config's default_labels cannot be removed here. Args: install_id (str): @@ -126,7 +127,8 @@ def sync( ) -> AppInstall | StderrErrResponse | None: """remove labels from an install - Remove the specified label keys from the install. + Remove the specified label keys from the install. Removing a dynamic label's key also removes its + template. Keys managed by the app config's default_labels cannot be removed here. Args: install_id (str): @@ -155,7 +157,8 @@ async def asyncio_detailed( ) -> Response[AppInstall | StderrErrResponse]: """remove labels from an install - Remove the specified label keys from the install. + Remove the specified label keys from the install. Removing a dynamic label's key also removes its + template. Keys managed by the app config's default_labels cannot be removed here. Args: install_id (str): @@ -187,7 +190,8 @@ async def asyncio( ) -> AppInstall | StderrErrResponse | None: """remove labels from an install - Remove the specified label keys from the install. + Remove the specified label keys from the install. Removing a dynamic label's key also removes its + template. Keys managed by the app config's default_labels cannot be removed here. Args: install_id (str): diff --git a/nuon/models/__init__.py b/nuon/models/__init__.py index b980b21a..c7a63e6e 100644 --- a/nuon/models/__init__.py +++ b/nuon/models/__init__.py @@ -22,6 +22,7 @@ from .app_app_config import AppAppConfig from .app_app_config_status import AppAppConfigStatus from .app_app_config_version import AppAppConfigVersion +from .app_app_default_labels import AppAppDefaultLabels from .app_app_input import AppAppInput from .app_app_input_config import AppAppInputConfig from .app_app_input_group import AppAppInputGroup @@ -110,6 +111,7 @@ from .app_install_app_branch_connection import AppInstallAppBranchConnection from .app_install_app_config_version import AppInstallAppConfigVersion from .app_install_app_config_version_metadata import AppInstallAppConfigVersionMetadata +from .app_install_app_default_labels import AppInstallAppDefaultLabels from .app_install_approval_option import AppInstallApprovalOption from .app_install_audit_log import AppInstallAuditLog from .app_install_cloud_platform_metadata import AppInstallCloudPlatformMetadata @@ -138,6 +140,7 @@ from .app_install_inputs import AppInstallInputs from .app_install_inputs_redacted_values import AppInstallInputsRedactedValues from .app_install_inputs_values import AppInstallInputsValues +from .app_install_label_templates import AppInstallLabelTemplates from .app_install_lifecycle_phase import AppInstallLifecyclePhase from .app_install_links import AppInstallLinks from .app_install_metadata import AppInstallMetadata @@ -837,6 +840,7 @@ "AppAppConfig", "AppAppConfigStatus", "AppAppConfigVersion", + "AppAppDefaultLabels", "AppAppInput", "AppAppInputConfig", "AppAppInputGroup", @@ -925,6 +929,7 @@ "AppInstallAppBranchConnection", "AppInstallAppConfigVersion", "AppInstallAppConfigVersionMetadata", + "AppInstallAppDefaultLabels", "AppInstallApprovalOption", "AppInstallAuditLog", "AppInstallCloudPlatformMetadata", @@ -953,6 +958,7 @@ "AppInstallInputs", "AppInstallInputsRedactedValues", "AppInstallInputsValues", + "AppInstallLabelTemplates", "AppInstallLifecyclePhase", "AppInstallLinks", "AppInstallMetadata", diff --git a/nuon/models/app_app.py b/nuon/models/app_app.py index 23272f06..04569b9b 100644 --- a/nuon/models/app_app.py +++ b/nuon/models/app_app.py @@ -10,6 +10,7 @@ if TYPE_CHECKING: from ..models.app_app_config import AppAppConfig + from ..models.app_app_default_labels import AppAppDefaultLabels from ..models.app_app_input_config import AppAppInputConfig from ..models.app_app_label_colors import AppAppLabelColors from ..models.app_app_links import AppAppLinks @@ -34,6 +35,9 @@ class AppApp: config_repo (str | Unset): created_at (str | Unset): created_by_id (str | Unset): + default_labels (AppAppDefaultLabels | Unset): DefaultLabels are applied to every install of the app and can only + be + changed via app config sync — install label endpoints reject these keys. description (str | Unset): display_name (str | Unset): id (str | Unset): @@ -61,6 +65,7 @@ class AppApp: config_repo: str | Unset = UNSET created_at: str | Unset = UNSET created_by_id: str | Unset = UNSET + default_labels: AppAppDefaultLabels | Unset = UNSET description: str | Unset = UNSET display_name: str | Unset = UNSET id: str | Unset = UNSET @@ -101,6 +106,10 @@ def to_dict(self) -> dict[str, Any]: created_by_id = self.created_by_id + default_labels: dict[str, Any] | Unset = UNSET + if not isinstance(self.default_labels, Unset): + default_labels = self.default_labels.to_dict() + description = self.description display_name = self.display_name @@ -170,6 +179,8 @@ def to_dict(self) -> dict[str, Any]: field_dict["created_at"] = created_at if created_by_id is not UNSET: field_dict["created_by_id"] = created_by_id + if default_labels is not UNSET: + field_dict["default_labels"] = default_labels if description is not UNSET: field_dict["description"] = description if display_name is not UNSET: @@ -212,6 +223,7 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: from ..models.app_app_config import AppAppConfig + from ..models.app_app_default_labels import AppAppDefaultLabels from ..models.app_app_input_config import AppAppInputConfig from ..models.app_app_label_colors import AppAppLabelColors from ..models.app_app_links import AppAppLinks @@ -243,6 +255,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: created_by_id = d.pop("created_by_id", UNSET) + _default_labels = d.pop("default_labels", UNSET) + default_labels: AppAppDefaultLabels | Unset + if isinstance(_default_labels, Unset): + default_labels = UNSET + else: + default_labels = AppAppDefaultLabels.from_dict(_default_labels) + description = d.pop("description", UNSET) display_name = d.pop("display_name", UNSET) @@ -327,6 +346,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: config_repo=config_repo, created_at=created_at, created_by_id=created_by_id, + default_labels=default_labels, description=description, display_name=display_name, id=id, diff --git a/nuon/models/app_app_default_labels.py b/nuon/models/app_app_default_labels.py new file mode 100644 index 00000000..08aca09e --- /dev/null +++ b/nuon/models/app_app_default_labels.py @@ -0,0 +1,50 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +T = TypeVar("T", bound="AppAppDefaultLabels") + + +@_attrs_define +class AppAppDefaultLabels: + """DefaultLabels are applied to every install of the app and can only be + changed via app config sync — install label endpoints reject these keys. + + """ + + additional_properties: dict[str, str] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + app_app_default_labels = cls() + + app_app_default_labels.additional_properties = d + return app_app_default_labels + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> str: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: str) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/nuon/models/app_azure_stack_outputs.py b/nuon/models/app_azure_stack_outputs.py index 2a7a51bf..e12409b1 100644 --- a/nuon/models/app_azure_stack_outputs.py +++ b/nuon/models/app_azure_stack_outputs.py @@ -40,6 +40,10 @@ class AppAzureStackOutputs: resource_group_id (str | Unset): resource_group_location (str | Unset): resource_group_name (str | Unset): + runner_identity_principal_id (str | Unset): Principal ID of the runner VMSS's system-assigned identity. Secret + sync and + image sync run as this identity, not a per-operation one, so sandboxes need + it to grant cluster access. subscription_id (str | Unset): subscription_tenant_id (str | Unset): """ @@ -61,6 +65,7 @@ class AppAzureStackOutputs: resource_group_id: str | Unset = UNSET resource_group_location: str | Unset = UNSET resource_group_name: str | Unset = UNSET + runner_identity_principal_id: str | Unset = UNSET subscription_id: str | Unset = UNSET subscription_tenant_id: str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -114,6 +119,8 @@ def to_dict(self) -> dict[str, Any]: resource_group_name = self.resource_group_name + runner_identity_principal_id = self.runner_identity_principal_id + subscription_id = self.subscription_id subscription_tenant_id = self.subscription_tenant_id @@ -155,6 +162,8 @@ def to_dict(self) -> dict[str, Any]: field_dict["resource_group_location"] = resource_group_location if resource_group_name is not UNSET: field_dict["resource_group_name"] = resource_group_name + if runner_identity_principal_id is not UNSET: + field_dict["runner_identity_principal_id"] = runner_identity_principal_id if subscription_id is not UNSET: field_dict["subscription_id"] = subscription_id if subscription_tenant_id is not UNSET: @@ -226,6 +235,8 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: resource_group_name = d.pop("resource_group_name", UNSET) + runner_identity_principal_id = d.pop("runner_identity_principal_id", UNSET) + subscription_id = d.pop("subscription_id", UNSET) subscription_tenant_id = d.pop("subscription_tenant_id", UNSET) @@ -248,6 +259,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: resource_group_id=resource_group_id, resource_group_location=resource_group_location, resource_group_name=resource_group_name, + runner_identity_principal_id=runner_identity_principal_id, subscription_id=subscription_id, subscription_tenant_id=subscription_tenant_id, ) diff --git a/nuon/models/app_install.py b/nuon/models/app_install.py index 54f9c049..e67698df 100644 --- a/nuon/models/app_install.py +++ b/nuon/models/app_install.py @@ -18,6 +18,7 @@ from ..models.app_gcp_account import AppGCPAccount from ..models.app_install_action_workflow import AppInstallActionWorkflow from ..models.app_install_app_branch_connection import AppInstallAppBranchConnection + from ..models.app_install_app_default_labels import AppInstallAppDefaultLabels from ..models.app_install_cloud_platform_metadata import AppInstallCloudPlatformMetadata from ..models.app_install_component import AppInstallComponent from ..models.app_install_component_health_statuses import AppInstallComponentHealthStatuses @@ -25,6 +26,7 @@ from ..models.app_install_config import AppInstallConfig from ..models.app_install_event import AppInstallEvent from ..models.app_install_inputs import AppInstallInputs + from ..models.app_install_label_templates import AppInstallLabelTemplates from ..models.app_install_lifecycle_phase import AppInstallLifecyclePhase from ..models.app_install_links import AppInstallLinks from ..models.app_install_metadata import AppInstallMetadata @@ -51,6 +53,10 @@ class AppInstall: app_branch_connections (list[AppInstallAppBranchConnection] | Unset): app_branch_id (str | Unset): app_config_id (str | Unset): + app_default_labels (AppInstallAppDefaultLabels | Unset): AppDefaultLabels is the snapshot of the app's default + labels applied to + this install. It is the lock set for label mutation endpoints, and lets + reconciliation tell a removed default apart from a user-set label. app_id (str | Unset): app_runner_config (AppAppRunnerConfig | Unset): app_sandbox_config (AppAppSandboxConfig | Unset): @@ -93,6 +99,13 @@ class AppInstall: install_sandbox_runs (list[AppInstallSandboxRun] | Unset): install_stack (AppInstallStack | Unset): install_states (list[AppInstallState] | Unset): + label_templates (AppInstallLabelTemplates | Unset): LabelTemplates holds label values written with the .nuon + interpolation + syntax. Rendered values are materialized into Labels whenever install + state changes, so downstream consumers (SQL label matching, subscription + dispatch, pickers) only ever read literal values. NOTE: this comment ends + up in the swagger spec, which swag executes as a Go text/template — + literal moustaches here break spec generation. labels (GithubComNuoncoNuonPkgLabelsLabels | Unset): last_health_report_at (str | Unset): LastHealthReportAt is when a runner last reported component health. It is how the staleness sweep finds installs that went quiet without polling @@ -126,6 +139,7 @@ class AppInstall: app_branch_connections: list[AppInstallAppBranchConnection] | Unset = UNSET app_branch_id: str | Unset = UNSET app_config_id: str | Unset = UNSET + app_default_labels: AppInstallAppDefaultLabels | Unset = UNSET app_id: str | Unset = UNSET app_runner_config: AppAppRunnerConfig | Unset = UNSET app_sandbox_config: AppAppSandboxConfig | Unset = UNSET @@ -158,6 +172,7 @@ class AppInstall: install_sandbox_runs: list[AppInstallSandboxRun] | Unset = UNSET install_stack: AppInstallStack | Unset = UNSET install_states: list[AppInstallState] | Unset = UNSET + label_templates: AppInstallLabelTemplates | Unset = UNSET labels: GithubComNuoncoNuonPkgLabelsLabels | Unset = UNSET last_health_report_at: str | Unset = UNSET lifecycle_phase: AppInstallLifecyclePhase | Unset = UNSET @@ -197,6 +212,10 @@ def to_dict(self) -> dict[str, Any]: app_config_id = self.app_config_id + app_default_labels: dict[str, Any] | Unset = UNSET + if not isinstance(self.app_default_labels, Unset): + app_default_labels = self.app_default_labels.to_dict() + app_id = self.app_id app_runner_config: dict[str, Any] | Unset = UNSET @@ -321,6 +340,10 @@ def to_dict(self) -> dict[str, Any]: install_states_item = install_states_item_data.to_dict() install_states.append(install_states_item) + label_templates: dict[str, Any] | Unset = UNSET + if not isinstance(self.label_templates, Unset): + label_templates = self.label_templates.to_dict() + labels: dict[str, Any] | Unset = UNSET if not isinstance(self.labels, Unset): labels = self.labels.to_dict() @@ -398,6 +421,8 @@ def to_dict(self) -> dict[str, Any]: field_dict["app_branch_id"] = app_branch_id if app_config_id is not UNSET: field_dict["app_config_id"] = app_config_id + if app_default_labels is not UNSET: + field_dict["app_default_labels"] = app_default_labels if app_id is not UNSET: field_dict["app_id"] = app_id if app_runner_config is not UNSET: @@ -462,6 +487,8 @@ def to_dict(self) -> dict[str, Any]: field_dict["install_stack"] = install_stack if install_states is not UNSET: field_dict["install_states"] = install_states + if label_templates is not UNSET: + field_dict["label_templates"] = label_templates if labels is not UNSET: field_dict["labels"] = labels if last_health_report_at is not UNSET: @@ -518,6 +545,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: from ..models.app_gcp_account import AppGCPAccount from ..models.app_install_action_workflow import AppInstallActionWorkflow from ..models.app_install_app_branch_connection import AppInstallAppBranchConnection + from ..models.app_install_app_default_labels import AppInstallAppDefaultLabels from ..models.app_install_cloud_platform_metadata import AppInstallCloudPlatformMetadata from ..models.app_install_component import AppInstallComponent from ..models.app_install_component_health_statuses import AppInstallComponentHealthStatuses @@ -525,6 +553,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: from ..models.app_install_config import AppInstallConfig from ..models.app_install_event import AppInstallEvent from ..models.app_install_inputs import AppInstallInputs + from ..models.app_install_label_templates import AppInstallLabelTemplates from ..models.app_install_lifecycle_phase import AppInstallLifecyclePhase from ..models.app_install_links import AppInstallLinks from ..models.app_install_metadata import AppInstallMetadata @@ -560,6 +589,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: app_config_id = d.pop("app_config_id", UNSET) + _app_default_labels = d.pop("app_default_labels", UNSET) + app_default_labels: AppInstallAppDefaultLabels | Unset + if isinstance(_app_default_labels, Unset): + app_default_labels = UNSET + else: + app_default_labels = AppInstallAppDefaultLabels.from_dict(_app_default_labels) + app_id = d.pop("app_id", UNSET) _app_runner_config = d.pop("app_runner_config", UNSET) @@ -730,6 +766,13 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: install_states.append(install_states_item) + _label_templates = d.pop("label_templates", UNSET) + label_templates: AppInstallLabelTemplates | Unset + if isinstance(_label_templates, Unset): + label_templates = UNSET + else: + label_templates = AppInstallLabelTemplates.from_dict(_label_templates) + _labels = d.pop("labels", UNSET) labels: GithubComNuoncoNuonPkgLabelsLabels | Unset if isinstance(_labels, Unset): @@ -826,6 +869,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: app_branch_connections=app_branch_connections, app_branch_id=app_branch_id, app_config_id=app_config_id, + app_default_labels=app_default_labels, app_id=app_id, app_runner_config=app_runner_config, app_sandbox_config=app_sandbox_config, @@ -858,6 +902,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: install_sandbox_runs=install_sandbox_runs, install_stack=install_stack, install_states=install_states, + label_templates=label_templates, labels=labels, last_health_report_at=last_health_report_at, lifecycle_phase=lifecycle_phase, diff --git a/nuon/models/app_install_app_default_labels.py b/nuon/models/app_install_app_default_labels.py new file mode 100644 index 00000000..bd6e5aa7 --- /dev/null +++ b/nuon/models/app_install_app_default_labels.py @@ -0,0 +1,51 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +T = TypeVar("T", bound="AppInstallAppDefaultLabels") + + +@_attrs_define +class AppInstallAppDefaultLabels: + """AppDefaultLabels is the snapshot of the app's default labels applied to + this install. It is the lock set for label mutation endpoints, and lets + reconciliation tell a removed default apart from a user-set label. + + """ + + additional_properties: dict[str, str] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + app_install_app_default_labels = cls() + + app_install_app_default_labels.additional_properties = d + return app_install_app_default_labels + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> str: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: str) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/nuon/models/app_install_label_templates.py b/nuon/models/app_install_label_templates.py new file mode 100644 index 00000000..788d7160 --- /dev/null +++ b/nuon/models/app_install_label_templates.py @@ -0,0 +1,54 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import Any, TypeVar + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +T = TypeVar("T", bound="AppInstallLabelTemplates") + + +@_attrs_define +class AppInstallLabelTemplates: + """LabelTemplates holds label values written with the .nuon interpolation + syntax. Rendered values are materialized into Labels whenever install + state changes, so downstream consumers (SQL label matching, subscription + dispatch, pickers) only ever read literal values. NOTE: this comment ends + up in the swagger spec, which swag executes as a Go text/template — + literal moustaches here break spec generation. + + """ + + additional_properties: dict[str, str] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + app_install_label_templates = cls() + + app_install_label_templates.additional_properties = d + return app_install_label_templates + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> str: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: str) -> None: + self.additional_properties[key] = value + + def __delitem__(self, key: str) -> None: + del self.additional_properties[key] + + def __contains__(self, key: str) -> bool: + return key in self.additional_properties diff --git a/pyproject.toml b/pyproject.toml index dbc72e72..24d08b22 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "nuon" -version = "0.19.1122" +version = "0.19.1123" description = "A client library for accessing Nuon" authors = [] requires-python = ">=3.11" diff --git a/version.txt b/version.txt index ab994151..4d81f3d6 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.19.1122 +0.19.1123