From b143b6757fd830a59c85d4ef96c7a46737b55c77 Mon Sep 17 00:00:00 2001 From: nuonbot Date: Fri, 31 Jul 2026 11:50:34 +0000 Subject: [PATCH] ci: generate from api 0.19.1096 --- nuon/models/__init__.py | 10 + nuon/models/app_app_branch_run.py | 9 + nuon/models/app_app_config.py | 23 ++ nuon/models/app_install_runbook_run.py | 9 + nuon/models/app_queue_signal.py | 9 + nuon/models/app_runbook_step_config.py | 54 +++- nuon/models/app_trigger_filter.py | 96 ++++++ nuon/models/app_trigger_filter_type.py | 20 ++ nuon/models/app_trigger_rule.py | 305 ++++++++++++++++++ .../models/app_trigger_rule_input_mappings.py | 47 +++ nuon/models/app_trigger_target_type.py | 9 + ...vice_create_runbook_step_config_request.py | 45 ++- pyproject.toml | 2 +- version.txt | 2 +- 14 files changed, 636 insertions(+), 4 deletions(-) create mode 100644 nuon/models/app_trigger_filter.py create mode 100644 nuon/models/app_trigger_filter_type.py create mode 100644 nuon/models/app_trigger_rule.py create mode 100644 nuon/models/app_trigger_rule_input_mappings.py create mode 100644 nuon/models/app_trigger_target_type.py diff --git a/nuon/models/__init__.py b/nuon/models/__init__.py index 93674ac7..78fd5410 100644 --- a/nuon/models/__init__.py +++ b/nuon/models/__init__.py @@ -273,6 +273,11 @@ from .app_terraform_workspace_state_json import AppTerraformWorkspaceStateJSON from .app_token import AppToken from .app_token_type import AppTokenType +from .app_trigger_filter import AppTriggerFilter +from .app_trigger_filter_type import AppTriggerFilterType +from .app_trigger_rule import AppTriggerRule +from .app_trigger_rule_input_mappings import AppTriggerRuleInputMappings +from .app_trigger_target_type import AppTriggerTargetType from .app_user_journey import AppUserJourney from .app_user_journey_step import AppUserJourneyStep from .app_user_journey_step_metadata import AppUserJourneyStepMetadata @@ -1054,6 +1059,11 @@ "AppTerraformWorkspaceStateJSON", "AppToken", "AppTokenType", + "AppTriggerFilter", + "AppTriggerFilterType", + "AppTriggerRule", + "AppTriggerRuleInputMappings", + "AppTriggerTargetType", "AppUserJourney", "AppUserJourneyStep", "AppUserJourneyStepMetadata", diff --git a/nuon/models/app_app_branch_run.py b/nuon/models/app_app_branch_run.py index 71dd6d24..6fcc9102 100644 --- a/nuon/models/app_app_branch_run.py +++ b/nuon/models/app_app_branch_run.py @@ -59,6 +59,7 @@ class AppAppBranchRun: started_at (str | Unset): StartedAt tracks when execution actually began status (str | Unset): Status tracks the current state of the run Values: pending, running, success, failed, cancelled + trigger_event_dispatch_id (str | Unset): updated_at (str | Unset): vcs_connection_commit (AppVCSConnectionCommit | Unset): workflow (AppWorkflow | Unset): @@ -92,6 +93,7 @@ class AppAppBranchRun: run_type: AppAppBranchRunType | Unset = UNSET started_at: str | Unset = UNSET status: str | Unset = UNSET + trigger_event_dispatch_id: str | Unset = UNSET updated_at: str | Unset = UNSET vcs_connection_commit: AppVCSConnectionCommit | Unset = UNSET workflow: AppWorkflow | Unset = UNSET @@ -169,6 +171,8 @@ def to_dict(self) -> dict[str, Any]: status = self.status + trigger_event_dispatch_id = self.trigger_event_dispatch_id + updated_at = self.updated_at vcs_connection_commit: dict[str, Any] | Unset = UNSET @@ -238,6 +242,8 @@ def to_dict(self) -> dict[str, Any]: field_dict["started_at"] = started_at if status is not UNSET: field_dict["status"] = status + if trigger_event_dispatch_id is not UNSET: + field_dict["trigger_event_dispatch_id"] = trigger_event_dispatch_id if updated_at is not UNSET: field_dict["updated_at"] = updated_at if vcs_connection_commit is not UNSET: @@ -355,6 +361,8 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: status = d.pop("status", UNSET) + trigger_event_dispatch_id = d.pop("trigger_event_dispatch_id", UNSET) + updated_at = d.pop("updated_at", UNSET) _vcs_connection_commit = d.pop("vcs_connection_commit", UNSET) @@ -401,6 +409,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: run_type=run_type, started_at=started_at, status=status, + trigger_event_dispatch_id=trigger_event_dispatch_id, updated_at=updated_at, vcs_connection_commit=vcs_connection_commit, workflow=workflow, diff --git a/nuon/models/app_app_config.py b/nuon/models/app_app_config.py index da02b7a4..8325a84f 100644 --- a/nuon/models/app_app_config.py +++ b/nuon/models/app_app_config.py @@ -24,6 +24,7 @@ from ..models.app_app_stack_config import AppAppStackConfig from ..models.app_component_config_connection import AppComponentConfigConnection from ..models.app_composite_status import AppCompositeStatus + from ..models.app_trigger_rule import AppTriggerRule from ..models.app_vcs_connection_commit import AppVCSConnectionCommit from ..models.blobstore_blob import BlobstoreBlob from ..models.github_com_nuonco_nuon_pkg_labels_labels import GithubComNuoncoNuonPkgLabelsLabels @@ -66,6 +67,7 @@ class AppAppConfig: status (AppAppConfigStatus | Unset): status_description (str | Unset): status_v2 (AppCompositeStatus | Unset): + trigger_rules (list[AppTriggerRule] | Unset): updated_at (str | Unset): vcs_connection_commit (AppVCSConnectionCommit | Unset): version (int | Unset): fields that are filled in via after query or views @@ -101,6 +103,7 @@ class AppAppConfig: status: AppAppConfigStatus | Unset = UNSET status_description: str | Unset = UNSET status_v2: AppCompositeStatus | Unset = UNSET + trigger_rules: list[AppTriggerRule] | Unset = UNSET updated_at: str | Unset = UNSET vcs_connection_commit: AppVCSConnectionCommit | Unset = UNSET version: int | Unset = UNSET @@ -211,6 +214,13 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.status_v2, Unset): status_v2 = self.status_v2.to_dict() + trigger_rules: list[dict[str, Any]] | Unset = UNSET + if not isinstance(self.trigger_rules, Unset): + trigger_rules = [] + for trigger_rules_item_data in self.trigger_rules: + trigger_rules_item = trigger_rules_item_data.to_dict() + trigger_rules.append(trigger_rules_item) + updated_at = self.updated_at vcs_connection_commit: dict[str, Any] | Unset = UNSET @@ -282,6 +292,8 @@ def to_dict(self) -> dict[str, Any]: field_dict["status_description"] = status_description if status_v2 is not UNSET: field_dict["status_v2"] = status_v2 + if trigger_rules is not UNSET: + field_dict["trigger_rules"] = trigger_rules if updated_at is not UNSET: field_dict["updated_at"] = updated_at if vcs_connection_commit is not UNSET: @@ -307,6 +319,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: from ..models.app_app_stack_config import AppAppStackConfig from ..models.app_component_config_connection import AppComponentConfigConnection from ..models.app_composite_status import AppCompositeStatus + from ..models.app_trigger_rule import AppTriggerRule from ..models.app_vcs_connection_commit import AppVCSConnectionCommit from ..models.blobstore_blob import BlobstoreBlob from ..models.github_com_nuonco_nuon_pkg_labels_labels import GithubComNuoncoNuonPkgLabelsLabels @@ -463,6 +476,15 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: else: status_v2 = AppCompositeStatus.from_dict(_status_v2) + _trigger_rules = d.pop("trigger_rules", UNSET) + trigger_rules: list[AppTriggerRule] | Unset = UNSET + if _trigger_rules is not UNSET: + trigger_rules = [] + for trigger_rules_item_data in _trigger_rules: + trigger_rules_item = AppTriggerRule.from_dict(trigger_rules_item_data) + + trigger_rules.append(trigger_rules_item) + updated_at = d.pop("updated_at", UNSET) _vcs_connection_commit = d.pop("vcs_connection_commit", UNSET) @@ -505,6 +527,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: status=status, status_description=status_description, status_v2=status_v2, + trigger_rules=trigger_rules, updated_at=updated_at, vcs_connection_commit=vcs_connection_commit, version=version, diff --git a/nuon/models/app_install_runbook_run.py b/nuon/models/app_install_runbook_run.py index b7d36d32..aab97507 100644 --- a/nuon/models/app_install_runbook_run.py +++ b/nuon/models/app_install_runbook_run.py @@ -46,6 +46,7 @@ class AppInstallRunbookRun: step_selections (list[AppRunbookStepSelection] | Unset): StepSelections records which runbook steps are enabled/disabled for this run. Steps explicitly disabled here are not generated by the runbook workflow. + trigger_event_dispatch_id (str | Unset): triggered_by_id (str | Unset): updated_at (str | Unset): """ @@ -68,6 +69,7 @@ class AppInstallRunbookRun: status_description: str | Unset = UNSET status_v2: AppCompositeStatus | Unset = UNSET step_selections: list[AppRunbookStepSelection] | Unset = UNSET + trigger_event_dispatch_id: str | Unset = UNSET triggered_by_id: str | Unset = UNSET updated_at: str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -128,6 +130,8 @@ def to_dict(self) -> dict[str, Any]: step_selections_item = step_selections_item_data.to_dict() step_selections.append(step_selections_item) + trigger_event_dispatch_id = self.trigger_event_dispatch_id + triggered_by_id = self.triggered_by_id updated_at = self.updated_at @@ -171,6 +175,8 @@ def to_dict(self) -> dict[str, Any]: field_dict["status_v2"] = status_v2 if step_selections is not UNSET: field_dict["step_selections"] = step_selections + if trigger_event_dispatch_id is not UNSET: + field_dict["trigger_event_dispatch_id"] = trigger_event_dispatch_id if triggered_by_id is not UNSET: field_dict["triggered_by_id"] = triggered_by_id if updated_at is not UNSET: @@ -268,6 +274,8 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: step_selections.append(step_selections_item) + trigger_event_dispatch_id = d.pop("trigger_event_dispatch_id", UNSET) + triggered_by_id = d.pop("triggered_by_id", UNSET) updated_at = d.pop("updated_at", UNSET) @@ -291,6 +299,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: status_description=status_description, status_v2=status_v2, step_selections=step_selections, + trigger_event_dispatch_id=trigger_event_dispatch_id, triggered_by_id=triggered_by_id, updated_at=updated_at, ) diff --git a/nuon/models/app_queue_signal.py b/nuon/models/app_queue_signal.py index 7c699a7e..82cffae6 100644 --- a/nuon/models/app_queue_signal.py +++ b/nuon/models/app_queue_signal.py @@ -28,6 +28,7 @@ class AppQueueSignal: callbacks (list[CallbackRef] | Unset): created_at (str | Unset): created_by_id (str | Unset): + dedupe_key (str | Unset): emitter_id (str | Unset): Optional: if this signal was emitted by an emitter enqueued (bool | Unset): execution_count (int | Unset): @@ -50,6 +51,7 @@ class AppQueueSignal: callbacks: list[CallbackRef] | Unset = UNSET created_at: str | Unset = UNSET created_by_id: str | Unset = UNSET + dedupe_key: str | Unset = UNSET emitter_id: str | Unset = UNSET enqueued: bool | Unset = UNSET execution_count: int | Unset = UNSET @@ -84,6 +86,8 @@ def to_dict(self) -> dict[str, Any]: created_by_id = self.created_by_id + dedupe_key = self.dedupe_key + emitter_id = self.emitter_id enqueued = self.enqueued @@ -137,6 +141,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 dedupe_key is not UNSET: + field_dict["dedupe_key"] = dedupe_key if emitter_id is not UNSET: field_dict["emitter_id"] = emitter_id if enqueued is not UNSET: @@ -202,6 +208,8 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: created_by_id = d.pop("created_by_id", UNSET) + dedupe_key = d.pop("dedupe_key", UNSET) + emitter_id = d.pop("emitter_id", UNSET) enqueued = d.pop("enqueued", UNSET) @@ -264,6 +272,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: callbacks=callbacks, created_at=created_at, created_by_id=created_by_id, + dedupe_key=dedupe_key, emitter_id=emitter_id, enqueued=enqueued, execution_count=execution_count, diff --git a/nuon/models/app_runbook_step_config.py b/nuon/models/app_runbook_step_config.py index 855607a1..4e4981cb 100644 --- a/nuon/models/app_runbook_step_config.py +++ b/nuon/models/app_runbook_step_config.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar +from typing import TYPE_CHECKING, Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -10,6 +10,7 @@ if TYPE_CHECKING: from ..models.app_runbook_step_config_env_vars import AppRunbookStepConfigEnvVars + from ..models.app_trigger_filter import AppTriggerFilter T = TypeVar("T", bound="AppRunbookStepConfig") @@ -26,6 +27,8 @@ class AppRunbookStepConfig: created_by_id (str | Unset): deploy_dependents (bool | Unset): env_vars (AppRunbookStepConfigEnvVars | Unset): + event_types (list[str] | Unset): + filters (list[AppTriggerFilter] | Unset): id (str | Unset): idx (int | Unset): inline_contents (str | Unset): @@ -36,6 +39,8 @@ class AppRunbookStepConfig: skip_component_deploys (bool | Unset): sandbox lifecycle fields tear_down_dependents (bool | Unset): timeout (int | Unset): + trigger_id (str | Unset): + trigger_name (str | Unset): type_ (str | Unset): updated_at (str | Unset): """ @@ -47,6 +52,8 @@ class AppRunbookStepConfig: created_by_id: str | Unset = UNSET deploy_dependents: bool | Unset = UNSET env_vars: AppRunbookStepConfigEnvVars | Unset = UNSET + event_types: list[str] | Unset = UNSET + filters: list[AppTriggerFilter] | Unset = UNSET id: str | Unset = UNSET idx: int | Unset = UNSET inline_contents: str | Unset = UNSET @@ -57,6 +64,8 @@ class AppRunbookStepConfig: skip_component_deploys: bool | Unset = UNSET tear_down_dependents: bool | Unset = UNSET timeout: int | Unset = UNSET + trigger_id: str | Unset = UNSET + trigger_name: str | Unset = UNSET type_: str | Unset = UNSET updated_at: str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) @@ -78,6 +87,17 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.env_vars, Unset): env_vars = self.env_vars.to_dict() + event_types: list[str] | Unset = UNSET + if not isinstance(self.event_types, Unset): + event_types = self.event_types + + filters: list[dict[str, Any]] | Unset = UNSET + if not isinstance(self.filters, Unset): + filters = [] + for filters_item_data in self.filters: + filters_item = filters_item_data.to_dict() + filters.append(filters_item) + id = self.id idx = self.idx @@ -98,6 +118,10 @@ def to_dict(self) -> dict[str, Any]: timeout = self.timeout + trigger_id = self.trigger_id + + trigger_name = self.trigger_name + type_ = self.type_ updated_at = self.updated_at @@ -119,6 +143,10 @@ def to_dict(self) -> dict[str, Any]: field_dict["deploy_dependents"] = deploy_dependents if env_vars is not UNSET: field_dict["env_vars"] = env_vars + if event_types is not UNSET: + field_dict["event_types"] = event_types + if filters is not UNSET: + field_dict["filters"] = filters if id is not UNSET: field_dict["id"] = id if idx is not UNSET: @@ -139,6 +167,10 @@ def to_dict(self) -> dict[str, Any]: field_dict["tear_down_dependents"] = tear_down_dependents if timeout is not UNSET: field_dict["timeout"] = timeout + if trigger_id is not UNSET: + field_dict["trigger_id"] = trigger_id + if trigger_name is not UNSET: + field_dict["trigger_name"] = trigger_name if type_ is not UNSET: field_dict["type"] = type_ if updated_at is not UNSET: @@ -149,6 +181,7 @@ def to_dict(self) -> dict[str, Any]: @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: from ..models.app_runbook_step_config_env_vars import AppRunbookStepConfigEnvVars + from ..models.app_trigger_filter import AppTriggerFilter d = dict(src_dict) action_workflow_id = d.pop("action_workflow_id", UNSET) @@ -170,6 +203,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: else: env_vars = AppRunbookStepConfigEnvVars.from_dict(_env_vars) + event_types = cast(list[str], d.pop("event_types", UNSET)) + + _filters = d.pop("filters", UNSET) + filters: list[AppTriggerFilter] | Unset = UNSET + if _filters is not UNSET: + filters = [] + for filters_item_data in _filters: + filters_item = AppTriggerFilter.from_dict(filters_item_data) + + filters.append(filters_item) + id = d.pop("id", UNSET) idx = d.pop("idx", UNSET) @@ -190,6 +234,10 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: timeout = d.pop("timeout", UNSET) + trigger_id = d.pop("trigger_id", UNSET) + + trigger_name = d.pop("trigger_name", UNSET) + type_ = d.pop("type", UNSET) updated_at = d.pop("updated_at", UNSET) @@ -202,6 +250,8 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: created_by_id=created_by_id, deploy_dependents=deploy_dependents, env_vars=env_vars, + event_types=event_types, + filters=filters, id=id, idx=idx, inline_contents=inline_contents, @@ -212,6 +262,8 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: skip_component_deploys=skip_component_deploys, tear_down_dependents=tear_down_dependents, timeout=timeout, + trigger_id=trigger_id, + trigger_name=trigger_name, type_=type_, updated_at=updated_at, ) diff --git a/nuon/models/app_trigger_filter.py b/nuon/models/app_trigger_filter.py new file mode 100644 index 00000000..afadadbb --- /dev/null +++ b/nuon/models/app_trigger_filter.py @@ -0,0 +1,96 @@ +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 + +from ..models.app_trigger_filter_type import AppTriggerFilterType +from ..types import UNSET, Unset + +T = TypeVar("T", bound="AppTriggerFilter") + + +@_attrs_define +class AppTriggerFilter: + """ + Attributes: + from_ (str | Unset): + op (AppTriggerFilterType | Unset): + path (str | Unset): + value (Any | Unset): + """ + + from_: str | Unset = UNSET + op: AppTriggerFilterType | Unset = UNSET + path: str | Unset = UNSET + value: Any | Unset = UNSET + additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + from_ = self.from_ + + op: str | Unset = UNSET + if not isinstance(self.op, Unset): + op = self.op.value + + path = self.path + + value = self.value + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if from_ is not UNSET: + field_dict["from"] = from_ + if op is not UNSET: + field_dict["op"] = op + if path is not UNSET: + field_dict["path"] = path + if value is not UNSET: + field_dict["value"] = value + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + d = dict(src_dict) + from_ = d.pop("from", UNSET) + + _op = d.pop("op", UNSET) + op: AppTriggerFilterType | Unset + if isinstance(_op, Unset): + op = UNSET + else: + op = AppTriggerFilterType(_op) + + path = d.pop("path", UNSET) + + value = d.pop("value", UNSET) + + app_trigger_filter = cls( + from_=from_, + op=op, + path=path, + value=value, + ) + + app_trigger_filter.additional_properties = d + return app_trigger_filter + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> 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_trigger_filter_type.py b/nuon/models/app_trigger_filter_type.py new file mode 100644 index 00000000..8f8f225d --- /dev/null +++ b/nuon/models/app_trigger_filter_type.py @@ -0,0 +1,20 @@ +from enum import Enum + + +class AppTriggerFilterType(str, Enum): + CONTAINS = "contains" + EQ = "eq" + EXISTS = "exists" + GT = "gt" + GTE = "gte" + IN = "in" + LT = "lt" + LTE = "lte" + NEQ = "neq" + NOT_EXISTS = "not_exists" + PREFIX = "prefix" + REGEX = "regex" + SUFFIX = "suffix" + + def __str__(self) -> str: + return str(self.value) diff --git a/nuon/models/app_trigger_rule.py b/nuon/models/app_trigger_rule.py new file mode 100644 index 00000000..aa24fa9c --- /dev/null +++ b/nuon/models/app_trigger_rule.py @@ -0,0 +1,305 @@ +from __future__ import annotations + +from collections.abc import Mapping +from typing import TYPE_CHECKING, Any, TypeVar, cast + +from attrs import define as _attrs_define +from attrs import field as _attrs_field + +from ..models.app_trigger_target_type import AppTriggerTargetType +from ..types import UNSET, Unset + +if TYPE_CHECKING: + from ..models.app_trigger_filter import AppTriggerFilter + from ..models.app_trigger_rule_input_mappings import AppTriggerRuleInputMappings + + +T = TypeVar("T", bound="AppTriggerRule") + + +@_attrs_define +class AppTriggerRule: + """ + Attributes: + app_branch_id (str | Unset): + app_config_id (str | Unset): + app_id (str | Unset): + config_hash (str | Unset): + created_at (str | Unset): + created_by_id (str | Unset): + enabled (bool | Unset): + event_types (list[str] | Unset): + filters (list[AppTriggerFilter] | Unset): + force (bool | Unset): + id (str | Unset): + input_mappings (AppTriggerRuleInputMappings | Unset): + install_name (str | Unset): + name (str | Unset): + org_id (str | Unset): + plan_only (bool | Unset): + runbook_id (str | Unset): + suspended_at (str | Unset): + suspended_by_id (str | Unset): + target_type (AppTriggerTargetType | Unset): + trigger_id (str | Unset): + updated_at (str | Unset): + valid_from (str | Unset): + valid_to (str | Unset): + """ + + app_branch_id: str | Unset = UNSET + app_config_id: str | Unset = UNSET + app_id: str | Unset = UNSET + config_hash: str | Unset = UNSET + created_at: str | Unset = UNSET + created_by_id: str | Unset = UNSET + enabled: bool | Unset = UNSET + event_types: list[str] | Unset = UNSET + filters: list[AppTriggerFilter] | Unset = UNSET + force: bool | Unset = UNSET + id: str | Unset = UNSET + input_mappings: AppTriggerRuleInputMappings | Unset = UNSET + install_name: str | Unset = UNSET + name: str | Unset = UNSET + org_id: str | Unset = UNSET + plan_only: bool | Unset = UNSET + runbook_id: str | Unset = UNSET + suspended_at: str | Unset = UNSET + suspended_by_id: str | Unset = UNSET + target_type: AppTriggerTargetType | Unset = UNSET + trigger_id: str | Unset = UNSET + updated_at: str | Unset = UNSET + valid_from: str | Unset = UNSET + valid_to: str | Unset = UNSET + additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) + + def to_dict(self) -> dict[str, Any]: + app_branch_id = self.app_branch_id + + app_config_id = self.app_config_id + + app_id = self.app_id + + config_hash = self.config_hash + + created_at = self.created_at + + created_by_id = self.created_by_id + + enabled = self.enabled + + event_types: list[str] | Unset = UNSET + if not isinstance(self.event_types, Unset): + event_types = self.event_types + + filters: list[dict[str, Any]] | Unset = UNSET + if not isinstance(self.filters, Unset): + filters = [] + for filters_item_data in self.filters: + filters_item = filters_item_data.to_dict() + filters.append(filters_item) + + force = self.force + + id = self.id + + input_mappings: dict[str, Any] | Unset = UNSET + if not isinstance(self.input_mappings, Unset): + input_mappings = self.input_mappings.to_dict() + + install_name = self.install_name + + name = self.name + + org_id = self.org_id + + plan_only = self.plan_only + + runbook_id = self.runbook_id + + suspended_at = self.suspended_at + + suspended_by_id = self.suspended_by_id + + target_type: str | Unset = UNSET + if not isinstance(self.target_type, Unset): + target_type = self.target_type.value + + trigger_id = self.trigger_id + + updated_at = self.updated_at + + valid_from = self.valid_from + + valid_to = self.valid_to + + field_dict: dict[str, Any] = {} + field_dict.update(self.additional_properties) + field_dict.update({}) + if app_branch_id is not UNSET: + 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_id is not UNSET: + field_dict["app_id"] = app_id + if config_hash is not UNSET: + field_dict["config_hash"] = config_hash + if created_at is not UNSET: + field_dict["created_at"] = created_at + if created_by_id is not UNSET: + field_dict["created_by_id"] = created_by_id + if enabled is not UNSET: + field_dict["enabled"] = enabled + if event_types is not UNSET: + field_dict["event_types"] = event_types + if filters is not UNSET: + field_dict["filters"] = filters + if force is not UNSET: + field_dict["force"] = force + if id is not UNSET: + field_dict["id"] = id + if input_mappings is not UNSET: + field_dict["input_mappings"] = input_mappings + if install_name is not UNSET: + field_dict["install_name"] = install_name + if name is not UNSET: + field_dict["name"] = name + if org_id is not UNSET: + field_dict["org_id"] = org_id + if plan_only is not UNSET: + field_dict["plan_only"] = plan_only + if runbook_id is not UNSET: + field_dict["runbook_id"] = runbook_id + if suspended_at is not UNSET: + field_dict["suspended_at"] = suspended_at + if suspended_by_id is not UNSET: + field_dict["suspended_by_id"] = suspended_by_id + if target_type is not UNSET: + field_dict["target_type"] = target_type + if trigger_id is not UNSET: + field_dict["trigger_id"] = trigger_id + if updated_at is not UNSET: + field_dict["updated_at"] = updated_at + if valid_from is not UNSET: + field_dict["valid_from"] = valid_from + if valid_to is not UNSET: + field_dict["valid_to"] = valid_to + + return field_dict + + @classmethod + def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.app_trigger_filter import AppTriggerFilter + from ..models.app_trigger_rule_input_mappings import AppTriggerRuleInputMappings + + d = dict(src_dict) + app_branch_id = d.pop("app_branch_id", UNSET) + + app_config_id = d.pop("app_config_id", UNSET) + + app_id = d.pop("app_id", UNSET) + + config_hash = d.pop("config_hash", UNSET) + + created_at = d.pop("created_at", UNSET) + + created_by_id = d.pop("created_by_id", UNSET) + + enabled = d.pop("enabled", UNSET) + + event_types = cast(list[str], d.pop("event_types", UNSET)) + + _filters = d.pop("filters", UNSET) + filters: list[AppTriggerFilter] | Unset = UNSET + if _filters is not UNSET: + filters = [] + for filters_item_data in _filters: + filters_item = AppTriggerFilter.from_dict(filters_item_data) + + filters.append(filters_item) + + force = d.pop("force", UNSET) + + id = d.pop("id", UNSET) + + _input_mappings = d.pop("input_mappings", UNSET) + input_mappings: AppTriggerRuleInputMappings | Unset + if isinstance(_input_mappings, Unset): + input_mappings = UNSET + else: + input_mappings = AppTriggerRuleInputMappings.from_dict(_input_mappings) + + install_name = d.pop("install_name", UNSET) + + name = d.pop("name", UNSET) + + org_id = d.pop("org_id", UNSET) + + plan_only = d.pop("plan_only", UNSET) + + runbook_id = d.pop("runbook_id", UNSET) + + suspended_at = d.pop("suspended_at", UNSET) + + suspended_by_id = d.pop("suspended_by_id", UNSET) + + _target_type = d.pop("target_type", UNSET) + target_type: AppTriggerTargetType | Unset + if isinstance(_target_type, Unset): + target_type = UNSET + else: + target_type = AppTriggerTargetType(_target_type) + + trigger_id = d.pop("trigger_id", UNSET) + + updated_at = d.pop("updated_at", UNSET) + + valid_from = d.pop("valid_from", UNSET) + + valid_to = d.pop("valid_to", UNSET) + + app_trigger_rule = cls( + app_branch_id=app_branch_id, + app_config_id=app_config_id, + app_id=app_id, + config_hash=config_hash, + created_at=created_at, + created_by_id=created_by_id, + enabled=enabled, + event_types=event_types, + filters=filters, + force=force, + id=id, + input_mappings=input_mappings, + install_name=install_name, + name=name, + org_id=org_id, + plan_only=plan_only, + runbook_id=runbook_id, + suspended_at=suspended_at, + suspended_by_id=suspended_by_id, + target_type=target_type, + trigger_id=trigger_id, + updated_at=updated_at, + valid_from=valid_from, + valid_to=valid_to, + ) + + app_trigger_rule.additional_properties = d + return app_trigger_rule + + @property + def additional_keys(self) -> list[str]: + return list(self.additional_properties.keys()) + + def __getitem__(self, key: str) -> Any: + return self.additional_properties[key] + + def __setitem__(self, key: str, value: Any) -> 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_trigger_rule_input_mappings.py b/nuon/models/app_trigger_rule_input_mappings.py new file mode 100644 index 00000000..4876a5ee --- /dev/null +++ b/nuon/models/app_trigger_rule_input_mappings.py @@ -0,0 +1,47 @@ +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="AppTriggerRuleInputMappings") + + +@_attrs_define +class AppTriggerRuleInputMappings: + """ """ + + 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_trigger_rule_input_mappings = cls() + + app_trigger_rule_input_mappings.additional_properties = d + return app_trigger_rule_input_mappings + + @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_trigger_target_type.py b/nuon/models/app_trigger_target_type.py new file mode 100644 index 00000000..34511248 --- /dev/null +++ b/nuon/models/app_trigger_target_type.py @@ -0,0 +1,9 @@ +from enum import Enum + + +class AppTriggerTargetType(str, Enum): + APP_BRANCH_RUN = "app_branch_run" + RUNBOOK = "runbook" + + def __str__(self) -> str: + return str(self.value) diff --git a/nuon/models/service_create_runbook_step_config_request.py b/nuon/models/service_create_runbook_step_config_request.py index cb9c46cf..79583f18 100644 --- a/nuon/models/service_create_runbook_step_config_request.py +++ b/nuon/models/service_create_runbook_step_config_request.py @@ -1,7 +1,7 @@ from __future__ import annotations from collections.abc import Mapping -from typing import TYPE_CHECKING, Any, TypeVar +from typing import TYPE_CHECKING, Any, TypeVar, cast from attrs import define as _attrs_define from attrs import field as _attrs_field @@ -9,6 +9,7 @@ from ..types import UNSET, Unset if TYPE_CHECKING: + from ..models.app_trigger_filter import AppTriggerFilter from ..models.service_create_runbook_step_config_request_env_vars import ( ServiceCreateRunbookStepConfigRequestEnvVars, ) @@ -28,6 +29,8 @@ class ServiceCreateRunbookStepConfigRequest: component_name (str | Unset): deploy_dependents (bool | Unset): env_vars (ServiceCreateRunbookStepConfigRequestEnvVars | Unset): + event_types (list[str] | Unset): + filters (list[AppTriggerFilter] | Unset): idx (int | Unset): inline_contents (str | Unset): plan_only (bool | Unset): @@ -35,6 +38,7 @@ class ServiceCreateRunbookStepConfigRequest: skip_component_deploys (bool | Unset): tear_down_dependents (bool | Unset): timeout (int | Unset): + trigger (str | Unset): """ name: str @@ -44,6 +48,8 @@ class ServiceCreateRunbookStepConfigRequest: component_name: str | Unset = UNSET deploy_dependents: bool | Unset = UNSET env_vars: ServiceCreateRunbookStepConfigRequestEnvVars | Unset = UNSET + event_types: list[str] | Unset = UNSET + filters: list[AppTriggerFilter] | Unset = UNSET idx: int | Unset = UNSET inline_contents: str | Unset = UNSET plan_only: bool | Unset = UNSET @@ -51,6 +57,7 @@ class ServiceCreateRunbookStepConfigRequest: skip_component_deploys: bool | Unset = UNSET tear_down_dependents: bool | Unset = UNSET timeout: int | Unset = UNSET + trigger: str | Unset = UNSET additional_properties: dict[str, Any] = _attrs_field(init=False, factory=dict) def to_dict(self) -> dict[str, Any]: @@ -70,6 +77,17 @@ def to_dict(self) -> dict[str, Any]: if not isinstance(self.env_vars, Unset): env_vars = self.env_vars.to_dict() + event_types: list[str] | Unset = UNSET + if not isinstance(self.event_types, Unset): + event_types = self.event_types + + filters: list[dict[str, Any]] | Unset = UNSET + if not isinstance(self.filters, Unset): + filters = [] + for filters_item_data in self.filters: + filters_item = filters_item_data.to_dict() + filters.append(filters_item) + idx = self.idx inline_contents = self.inline_contents @@ -84,6 +102,8 @@ def to_dict(self) -> dict[str, Any]: timeout = self.timeout + trigger = self.trigger + field_dict: dict[str, Any] = {} field_dict.update(self.additional_properties) field_dict.update( @@ -102,6 +122,10 @@ def to_dict(self) -> dict[str, Any]: field_dict["deploy_dependents"] = deploy_dependents if env_vars is not UNSET: field_dict["env_vars"] = env_vars + if event_types is not UNSET: + field_dict["event_types"] = event_types + if filters is not UNSET: + field_dict["filters"] = filters if idx is not UNSET: field_dict["idx"] = idx if inline_contents is not UNSET: @@ -116,11 +140,14 @@ def to_dict(self) -> dict[str, Any]: field_dict["tear_down_dependents"] = tear_down_dependents if timeout is not UNSET: field_dict["timeout"] = timeout + if trigger is not UNSET: + field_dict["trigger"] = trigger return field_dict @classmethod def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: + from ..models.app_trigger_filter import AppTriggerFilter from ..models.service_create_runbook_step_config_request_env_vars import ( ServiceCreateRunbookStepConfigRequestEnvVars, ) @@ -145,6 +172,17 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: else: env_vars = ServiceCreateRunbookStepConfigRequestEnvVars.from_dict(_env_vars) + event_types = cast(list[str], d.pop("event_types", UNSET)) + + _filters = d.pop("filters", UNSET) + filters: list[AppTriggerFilter] | Unset = UNSET + if _filters is not UNSET: + filters = [] + for filters_item_data in _filters: + filters_item = AppTriggerFilter.from_dict(filters_item_data) + + filters.append(filters_item) + idx = d.pop("idx", UNSET) inline_contents = d.pop("inline_contents", UNSET) @@ -159,6 +197,8 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: timeout = d.pop("timeout", UNSET) + trigger = d.pop("trigger", UNSET) + service_create_runbook_step_config_request = cls( name=name, type_=type_, @@ -167,6 +207,8 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: component_name=component_name, deploy_dependents=deploy_dependents, env_vars=env_vars, + event_types=event_types, + filters=filters, idx=idx, inline_contents=inline_contents, plan_only=plan_only, @@ -174,6 +216,7 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T: skip_component_deploys=skip_component_deploys, tear_down_dependents=tear_down_dependents, timeout=timeout, + trigger=trigger, ) service_create_runbook_step_config_request.additional_properties = d diff --git a/pyproject.toml b/pyproject.toml index 797a7940..d6c6c0bd 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "nuon" -version = "0.19.1093" +version = "0.19.1096" description = "A client library for accessing Nuon" authors = [] requires-python = ">=3.11" diff --git a/version.txt b/version.txt index 3a81a4a3..681fe830 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -0.19.1093 +0.19.1096