chore: sync GovOPlaN module split state
This commit is contained in:
@@ -5,6 +5,8 @@ from typing import Any, Literal
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field, field_validator
|
||||
|
||||
from govoplan_core.api.v1.schemas import DeltaDeletedItem
|
||||
|
||||
|
||||
RETENTION_DAY_KEYS = (
|
||||
"raw_campaign_json_retention_days",
|
||||
@@ -65,6 +67,14 @@ class MaintenanceModeItem(BaseModel):
|
||||
message: str | None = Field(default=None, max_length=500)
|
||||
|
||||
|
||||
class LanguagePackageItem(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
code: str = Field(min_length=1, max_length=20)
|
||||
label: str = Field(min_length=1, max_length=100)
|
||||
native_label: str | None = Field(default=None, max_length=100)
|
||||
|
||||
|
||||
class AdminOverviewResponse(BaseModel):
|
||||
active_tenant_id: str
|
||||
active_tenant_name: str
|
||||
@@ -87,9 +97,21 @@ class SystemSettingsItem(BaseModel):
|
||||
allow_tenant_api_keys: bool = True
|
||||
privacy_retention_policy: PrivacyRetentionPolicyItem = Field(default_factory=PrivacyRetentionPolicyItem)
|
||||
maintenance_mode: MaintenanceModeItem = Field(default_factory=MaintenanceModeItem)
|
||||
available_languages: list[LanguagePackageItem] = Field(default_factory=list)
|
||||
enabled_language_codes: list[str] = Field(default_factory=list)
|
||||
settings: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class SystemSettingsDeltaResponse(BaseModel):
|
||||
item: SystemSettingsItem | None = None
|
||||
sections: dict[str, Any] = Field(default_factory=dict)
|
||||
changed_sections: list[str] = Field(default_factory=list)
|
||||
deleted: list[DeltaDeletedItem] = Field(default_factory=list)
|
||||
watermark: str | None = None
|
||||
has_more: bool = False
|
||||
full: bool = False
|
||||
|
||||
|
||||
class SystemSettingsUpdateRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
@@ -99,6 +121,9 @@ class SystemSettingsUpdateRequest(BaseModel):
|
||||
allow_tenant_api_keys: bool
|
||||
privacy_retention_policy: PrivacyRetentionPolicyItem | None = None
|
||||
maintenance_mode: MaintenanceModeItem | None = None
|
||||
available_languages: list[LanguagePackageItem] | None = None
|
||||
enabled_language_codes: list[str] | None = None
|
||||
change_request_id: str | None = None
|
||||
|
||||
|
||||
class ModuleCatalogItem(BaseModel):
|
||||
@@ -143,6 +168,7 @@ class ModuleStateUpdateRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
enabled_modules: list[str] = Field(default_factory=list)
|
||||
change_request_id: str | None = None
|
||||
|
||||
|
||||
class ModuleInstallPlanItem(BaseModel):
|
||||
@@ -213,6 +239,9 @@ class ModuleInstallerRunSummary(BaseModel):
|
||||
status: str
|
||||
started_at: str | None = None
|
||||
finished_at: str | None = None
|
||||
request_id: str | None = None
|
||||
requested_by: str | None = None
|
||||
trace: dict[str, Any] | None = None
|
||||
rollback_status: str | None = None
|
||||
supervisor_status: str | None = None
|
||||
error: str | None = None
|
||||
@@ -224,6 +253,9 @@ class ModuleInstallerRunSummary(BaseModel):
|
||||
class ModuleInstallerRunListResponse(BaseModel):
|
||||
runs: list[ModuleInstallerRunSummary] = Field(default_factory=list)
|
||||
lock: ModuleInstallerLockStatus
|
||||
cursor: str | None = None
|
||||
next_cursor: str | None = None
|
||||
full: bool = False
|
||||
|
||||
|
||||
class ModuleInstallerRequestOptions(BaseModel):
|
||||
@@ -256,6 +288,7 @@ class ModuleInstallerRequestItem(BaseModel):
|
||||
cancelled_at: str | None = None
|
||||
cancelled_by: str | None = None
|
||||
retry_of: str | None = None
|
||||
trace: dict[str, Any] | None = None
|
||||
error: str | None = None
|
||||
record_path: str | None = None
|
||||
options: dict[str, Any] = Field(default_factory=dict)
|
||||
@@ -264,6 +297,9 @@ class ModuleInstallerRequestItem(BaseModel):
|
||||
class ModuleInstallerRequestListResponse(BaseModel):
|
||||
requests: list[ModuleInstallerRequestItem] = Field(default_factory=list)
|
||||
daemon: ModuleInstallerDaemonStatus
|
||||
cursor: str | None = None
|
||||
next_cursor: str | None = None
|
||||
full: bool = False
|
||||
|
||||
|
||||
class ModuleInstallerRequestCreateRequest(BaseModel):
|
||||
@@ -291,6 +327,27 @@ class ModulePackageCatalogItem(BaseModel):
|
||||
tags: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class ModuleLicenseDiagnostics(BaseModel):
|
||||
configured: bool = False
|
||||
valid: bool = True
|
||||
path: str | None = None
|
||||
license_id: str | None = None
|
||||
subject: str | None = None
|
||||
features: list[str] = Field(default_factory=list)
|
||||
valid_from: str | None = None
|
||||
valid_until: str | None = None
|
||||
signed: bool = False
|
||||
trusted: bool = False
|
||||
key_id: str | None = None
|
||||
enforced: bool = False
|
||||
allowed: bool = True
|
||||
required_features: list[str] = Field(default_factory=list)
|
||||
missing_features: list[str] = Field(default_factory=list)
|
||||
expires_in_days: int | None = None
|
||||
reason: str | None = None
|
||||
guidance: list[str] = Field(default_factory=list)
|
||||
|
||||
|
||||
class ModulePackageCatalogResponse(BaseModel):
|
||||
modules: list[ModulePackageCatalogItem] = Field(default_factory=list)
|
||||
configured: bool = False
|
||||
@@ -298,13 +355,17 @@ class ModulePackageCatalogResponse(BaseModel):
|
||||
path: str | None = None
|
||||
source: str | None = None
|
||||
source_type: str | None = None
|
||||
cache_used: bool = False
|
||||
cache_path: str | None = None
|
||||
channel: str | None = None
|
||||
sequence: int | None = None
|
||||
generated_at: str | None = None
|
||||
not_before: str | None = None
|
||||
expires_at: str | None = None
|
||||
signed: bool = False
|
||||
trusted: bool = False
|
||||
key_id: str | None = None
|
||||
license: ModuleLicenseDiagnostics = Field(default_factory=ModuleLicenseDiagnostics)
|
||||
warnings: list[str] = Field(default_factory=list)
|
||||
error: str | None = None
|
||||
|
||||
@@ -313,6 +374,7 @@ class ModuleInstallPlanUpdateRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
items: list[ModuleInstallPlanItem] = Field(default_factory=list)
|
||||
change_request_id: str | None = None
|
||||
|
||||
|
||||
class GovernanceAssignment(BaseModel):
|
||||
@@ -338,6 +400,14 @@ class GovernanceTemplateListResponse(BaseModel):
|
||||
templates: list[GovernanceTemplateItem]
|
||||
|
||||
|
||||
class GovernanceTemplateListDeltaResponse(BaseModel):
|
||||
templates: list[GovernanceTemplateItem] = Field(default_factory=list)
|
||||
deleted: list[DeltaDeletedItem] = Field(default_factory=list)
|
||||
watermark: str | None = None
|
||||
has_more: bool = False
|
||||
full: bool = False
|
||||
|
||||
|
||||
class GovernanceTemplateCreateRequest(BaseModel):
|
||||
model_config = ConfigDict(extra="forbid")
|
||||
|
||||
@@ -348,6 +418,7 @@ class GovernanceTemplateCreateRequest(BaseModel):
|
||||
permissions: list[str] = Field(default_factory=list)
|
||||
is_active: bool = True
|
||||
assignments: list[GovernanceAssignment] = Field(default_factory=list)
|
||||
change_request_id: str | None = None
|
||||
|
||||
|
||||
class GovernanceTemplateUpdateRequest(BaseModel):
|
||||
@@ -358,3 +429,4 @@ class GovernanceTemplateUpdateRequest(BaseModel):
|
||||
permissions: list[str] = Field(default_factory=list)
|
||||
is_active: bool = True
|
||||
assignments: list[GovernanceAssignment] = Field(default_factory=list)
|
||||
change_request_id: str | None = None
|
||||
|
||||
Reference in New Issue
Block a user