From b19588d4bc0ae3328bb3e6a82d4c924dbdad4809 Mon Sep 17 00:00:00 2001 From: scaleway-bot Date: Mon, 24 Aug 2026 14:35:59 +0000 Subject: [PATCH] feat(block): add kms_key_id to Snapshot --- .../audit_trail/v1alpha1/__init__.py | 12 ++ .../audit_trail/v1alpha1/marshalling.py | 136 ++++++++++++++++++ .../audit_trail/v1alpha1/types.py | 52 +++++++ .../scaleway_async/block/v1/marshalling.py | 6 + .../scaleway_async/block/v1/types.py | 5 + .../scaleway/audit_trail/v1alpha1/__init__.py | 12 ++ .../audit_trail/v1alpha1/marshalling.py | 136 ++++++++++++++++++ .../scaleway/audit_trail/v1alpha1/types.py | 52 +++++++ scaleway/scaleway/block/v1/marshalling.py | 6 + scaleway/scaleway/block/v1/types.py | 5 + 10 files changed, 422 insertions(+) diff --git a/scaleway-async/scaleway_async/audit_trail/v1alpha1/__init__.py b/scaleway-async/scaleway_async/audit_trail/v1alpha1/__init__.py index b4cc75d78..c93a5172c 100644 --- a/scaleway-async/scaleway_async/audit_trail/v1alpha1/__init__.py +++ b/scaleway-async/scaleway_async/audit_trail/v1alpha1/__init__.py @@ -18,6 +18,7 @@ from .types import ListSystemEventsRequestOrderBy from .types import ResourceType from .types import ServerlessContainersTriggerInfoSourceType +from .types import ServerlessFunctionsTriggerInfoInputType from .types import SystemEventKind from .types import AccountContractSignatureInfoAccountContractInfo from .types import AccountContractSignatureInfo @@ -64,6 +65,11 @@ from .types import ServerlessContainersDomainInfo from .types import ServerlessContainersNamespaceInfo from .types import ServerlessContainersTriggerInfo +from .types import ServerlessFunctionsCronInfo +from .types import ServerlessFunctionsDomainInfo +from .types import ServerlessFunctionsFunctionInfo +from .types import ServerlessFunctionsNamespaceInfo +from .types import ServerlessFunctionsTriggerInfo from .types import VpcConnectorInfo from .types import VpcGwGatewayInfo from .types import VpcGwGatewayNetworkInfo @@ -140,6 +146,7 @@ "ListSystemEventsRequestOrderBy", "ResourceType", "ServerlessContainersTriggerInfoSourceType", + "ServerlessFunctionsTriggerInfoInputType", "SystemEventKind", "AccountContractSignatureInfoAccountContractInfo", "AccountContractSignatureInfo", @@ -186,6 +193,11 @@ "ServerlessContainersDomainInfo", "ServerlessContainersNamespaceInfo", "ServerlessContainersTriggerInfo", + "ServerlessFunctionsCronInfo", + "ServerlessFunctionsDomainInfo", + "ServerlessFunctionsFunctionInfo", + "ServerlessFunctionsNamespaceInfo", + "ServerlessFunctionsTriggerInfo", "VpcConnectorInfo", "VpcGwGatewayInfo", "VpcGwGatewayNetworkInfo", diff --git a/scaleway-async/scaleway_async/audit_trail/v1alpha1/marshalling.py b/scaleway-async/scaleway_async/audit_trail/v1alpha1/marshalling.py index 2e493db39..e1984cebd 100644 --- a/scaleway-async/scaleway_async/audit_trail/v1alpha1/marshalling.py +++ b/scaleway-async/scaleway_async/audit_trail/v1alpha1/marshalling.py @@ -73,6 +73,11 @@ ServerlessContainersDomainInfo, ServerlessContainersNamespaceInfo, ServerlessContainersTriggerInfo, + ServerlessFunctionsCronInfo, + ServerlessFunctionsDomainInfo, + ServerlessFunctionsFunctionInfo, + ServerlessFunctionsNamespaceInfo, + ServerlessFunctionsTriggerInfo, VpcConnectorInfo, VpcGwGatewayInfo, VpcGwGatewayNetworkInfo, @@ -1284,6 +1289,97 @@ def unmarshal_ServerlessContainersTriggerInfo( return ServerlessContainersTriggerInfo(**args) +def unmarshal_ServerlessFunctionsCronInfo(data: Any) -> ServerlessFunctionsCronInfo: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ServerlessFunctionsCronInfo' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("function_id", None) + if field is not None: + args["function_id"] = field + else: + args["function_id"] = None + + return ServerlessFunctionsCronInfo(**args) + + +def unmarshal_ServerlessFunctionsDomainInfo(data: Any) -> ServerlessFunctionsDomainInfo: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ServerlessFunctionsDomainInfo' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("function_id", None) + if field is not None: + args["function_id"] = field + else: + args["function_id"] = None + + return ServerlessFunctionsDomainInfo(**args) + + +def unmarshal_ServerlessFunctionsFunctionInfo( + data: Any, +) -> ServerlessFunctionsFunctionInfo: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ServerlessFunctionsFunctionInfo' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("namespace_id", None) + if field is not None: + args["namespace_id"] = field + else: + args["namespace_id"] = None + + return ServerlessFunctionsFunctionInfo(**args) + + +def unmarshal_ServerlessFunctionsNamespaceInfo( + data: Any, +) -> ServerlessFunctionsNamespaceInfo: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ServerlessFunctionsNamespaceInfo' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + return ServerlessFunctionsNamespaceInfo(**args) + + +def unmarshal_ServerlessFunctionsTriggerInfo( + data: Any, +) -> ServerlessFunctionsTriggerInfo: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ServerlessFunctionsTriggerInfo' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("function_id", None) + if field is not None: + args["function_id"] = field + else: + args["function_id"] = None + + field = data.get("input_type", None) + if field is not None: + args["input_type"] = field + else: + args["input_type"] = None + + return ServerlessFunctionsTriggerInfo(**args) + + def unmarshal_VpcConnectorInfo(data: Any) -> VpcConnectorInfo: if not isinstance(data, dict): raise TypeError( @@ -1906,6 +2002,46 @@ def unmarshal_Resource(data: Any) -> Resource: else: args["serverless_containers_trigger_info"] = None + field = data.get("serverless_functions_namespace_info", None) + if field is not None: + args["serverless_functions_namespace_info"] = ( + unmarshal_ServerlessFunctionsNamespaceInfo(field) + ) + else: + args["serverless_functions_namespace_info"] = None + + field = data.get("serverless_functions_function_info", None) + if field is not None: + args["serverless_functions_function_info"] = ( + unmarshal_ServerlessFunctionsFunctionInfo(field) + ) + else: + args["serverless_functions_function_info"] = None + + field = data.get("serverless_functions_domain_info", None) + if field is not None: + args["serverless_functions_domain_info"] = ( + unmarshal_ServerlessFunctionsDomainInfo(field) + ) + else: + args["serverless_functions_domain_info"] = None + + field = data.get("serverless_functions_cron_info", None) + if field is not None: + args["serverless_functions_cron_info"] = unmarshal_ServerlessFunctionsCronInfo( + field + ) + else: + args["serverless_functions_cron_info"] = None + + field = data.get("serverless_functions_trigger_info", None) + if field is not None: + args["serverless_functions_trigger_info"] = ( + unmarshal_ServerlessFunctionsTriggerInfo(field) + ) + else: + args["serverless_functions_trigger_info"] = None + return Resource(**args) diff --git a/scaleway-async/scaleway_async/audit_trail/v1alpha1/types.py b/scaleway-async/scaleway_async/audit_trail/v1alpha1/types.py index 62b2e00e1..807e982c5 100644 --- a/scaleway-async/scaleway_async/audit_trail/v1alpha1/types.py +++ b/scaleway-async/scaleway_async/audit_trail/v1alpha1/types.py @@ -259,6 +259,11 @@ class ResourceType(str, Enum, metaclass=StrEnumMeta): SERVERLESS_CONTAINERS_CONTAINER = "serverless_containers_container" SERVERLESS_CONTAINERS_DOMAIN = "serverless_containers_domain" SERVERLESS_CONTAINERS_TRIGGER = "serverless_containers_trigger" + SERVERLESS_FUNCTIONS_NAMESPACE = "serverless_functions_namespace" + SERVERLESS_FUNCTIONS_FUNCTION = "serverless_functions_function" + SERVERLESS_FUNCTIONS_DOMAIN = "serverless_functions_domain" + SERVERLESS_FUNCTIONS_CRON = "serverless_functions_cron" + SERVERLESS_FUNCTIONS_TRIGGER = "serverless_functions_trigger" def __str__(self) -> str: return str(self.value) @@ -274,6 +279,15 @@ def __str__(self) -> str: return str(self.value) +class ServerlessFunctionsTriggerInfoInputType(str, Enum, metaclass=StrEnumMeta): + UNKNOWN_INPUT_TYPE = "unknown_input_type" + SCW_SQS = "scw_sqs" + SCW_NATS = "scw_nats" + + def __str__(self) -> str: + return str(self.value) + + class SystemEventKind(str, Enum, metaclass=StrEnumMeta): UNKNOWN_KIND = "unknown_kind" CRON = "cron" @@ -531,6 +545,32 @@ class ServerlessContainersTriggerInfo: source_type: ServerlessContainersTriggerInfoSourceType +@dataclass +class ServerlessFunctionsCronInfo: + function_id: str + + +@dataclass +class ServerlessFunctionsDomainInfo: + function_id: str + + +@dataclass +class ServerlessFunctionsFunctionInfo: + namespace_id: str + + +@dataclass +class ServerlessFunctionsNamespaceInfo: + pass + + +@dataclass +class ServerlessFunctionsTriggerInfo: + function_id: str + input_type: ServerlessFunctionsTriggerInfoInputType + + @dataclass class VpcConnectorInfo: vpc_id: str @@ -702,6 +742,18 @@ class Resource: serverless_containers_trigger_info: Optional[ServerlessContainersTriggerInfo] = None + serverless_functions_namespace_info: Optional[ServerlessFunctionsNamespaceInfo] = ( + None + ) + + serverless_functions_function_info: Optional[ServerlessFunctionsFunctionInfo] = None + + serverless_functions_domain_info: Optional[ServerlessFunctionsDomainInfo] = None + + serverless_functions_cron_info: Optional[ServerlessFunctionsCronInfo] = None + + serverless_functions_trigger_info: Optional[ServerlessFunctionsTriggerInfo] = None + @dataclass class EventPrincipal: diff --git a/scaleway-async/scaleway_async/block/v1/marshalling.py b/scaleway-async/scaleway_async/block/v1/marshalling.py index 7ceb69335..c206bde0c 100644 --- a/scaleway-async/scaleway_async/block/v1/marshalling.py +++ b/scaleway-async/scaleway_async/block/v1/marshalling.py @@ -208,6 +208,12 @@ def unmarshal_Snapshot(data: Any) -> Snapshot: else: args["public"] = False + field = data.get("kms_key_id", None) + if field is not None: + args["kms_key_id"] = field + else: + args["kms_key_id"] = None + return Snapshot(**args) diff --git a/scaleway-async/scaleway_async/block/v1/types.py b/scaleway-async/scaleway_async/block/v1/types.py index 15e524b5b..b07a93fac 100644 --- a/scaleway-async/scaleway_async/block/v1/types.py +++ b/scaleway-async/scaleway_async/block/v1/types.py @@ -259,6 +259,11 @@ class Snapshot: Last modification date of the properties of a snapshot. """ + kms_key_id: Optional[str] = None + """ + KMS Key used for securing the parent volume's encryption. + """ + @dataclass class VolumeType: diff --git a/scaleway/scaleway/audit_trail/v1alpha1/__init__.py b/scaleway/scaleway/audit_trail/v1alpha1/__init__.py index b4cc75d78..c93a5172c 100644 --- a/scaleway/scaleway/audit_trail/v1alpha1/__init__.py +++ b/scaleway/scaleway/audit_trail/v1alpha1/__init__.py @@ -18,6 +18,7 @@ from .types import ListSystemEventsRequestOrderBy from .types import ResourceType from .types import ServerlessContainersTriggerInfoSourceType +from .types import ServerlessFunctionsTriggerInfoInputType from .types import SystemEventKind from .types import AccountContractSignatureInfoAccountContractInfo from .types import AccountContractSignatureInfo @@ -64,6 +65,11 @@ from .types import ServerlessContainersDomainInfo from .types import ServerlessContainersNamespaceInfo from .types import ServerlessContainersTriggerInfo +from .types import ServerlessFunctionsCronInfo +from .types import ServerlessFunctionsDomainInfo +from .types import ServerlessFunctionsFunctionInfo +from .types import ServerlessFunctionsNamespaceInfo +from .types import ServerlessFunctionsTriggerInfo from .types import VpcConnectorInfo from .types import VpcGwGatewayInfo from .types import VpcGwGatewayNetworkInfo @@ -140,6 +146,7 @@ "ListSystemEventsRequestOrderBy", "ResourceType", "ServerlessContainersTriggerInfoSourceType", + "ServerlessFunctionsTriggerInfoInputType", "SystemEventKind", "AccountContractSignatureInfoAccountContractInfo", "AccountContractSignatureInfo", @@ -186,6 +193,11 @@ "ServerlessContainersDomainInfo", "ServerlessContainersNamespaceInfo", "ServerlessContainersTriggerInfo", + "ServerlessFunctionsCronInfo", + "ServerlessFunctionsDomainInfo", + "ServerlessFunctionsFunctionInfo", + "ServerlessFunctionsNamespaceInfo", + "ServerlessFunctionsTriggerInfo", "VpcConnectorInfo", "VpcGwGatewayInfo", "VpcGwGatewayNetworkInfo", diff --git a/scaleway/scaleway/audit_trail/v1alpha1/marshalling.py b/scaleway/scaleway/audit_trail/v1alpha1/marshalling.py index 2e493db39..e1984cebd 100644 --- a/scaleway/scaleway/audit_trail/v1alpha1/marshalling.py +++ b/scaleway/scaleway/audit_trail/v1alpha1/marshalling.py @@ -73,6 +73,11 @@ ServerlessContainersDomainInfo, ServerlessContainersNamespaceInfo, ServerlessContainersTriggerInfo, + ServerlessFunctionsCronInfo, + ServerlessFunctionsDomainInfo, + ServerlessFunctionsFunctionInfo, + ServerlessFunctionsNamespaceInfo, + ServerlessFunctionsTriggerInfo, VpcConnectorInfo, VpcGwGatewayInfo, VpcGwGatewayNetworkInfo, @@ -1284,6 +1289,97 @@ def unmarshal_ServerlessContainersTriggerInfo( return ServerlessContainersTriggerInfo(**args) +def unmarshal_ServerlessFunctionsCronInfo(data: Any) -> ServerlessFunctionsCronInfo: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ServerlessFunctionsCronInfo' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("function_id", None) + if field is not None: + args["function_id"] = field + else: + args["function_id"] = None + + return ServerlessFunctionsCronInfo(**args) + + +def unmarshal_ServerlessFunctionsDomainInfo(data: Any) -> ServerlessFunctionsDomainInfo: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ServerlessFunctionsDomainInfo' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("function_id", None) + if field is not None: + args["function_id"] = field + else: + args["function_id"] = None + + return ServerlessFunctionsDomainInfo(**args) + + +def unmarshal_ServerlessFunctionsFunctionInfo( + data: Any, +) -> ServerlessFunctionsFunctionInfo: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ServerlessFunctionsFunctionInfo' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("namespace_id", None) + if field is not None: + args["namespace_id"] = field + else: + args["namespace_id"] = None + + return ServerlessFunctionsFunctionInfo(**args) + + +def unmarshal_ServerlessFunctionsNamespaceInfo( + data: Any, +) -> ServerlessFunctionsNamespaceInfo: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ServerlessFunctionsNamespaceInfo' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + return ServerlessFunctionsNamespaceInfo(**args) + + +def unmarshal_ServerlessFunctionsTriggerInfo( + data: Any, +) -> ServerlessFunctionsTriggerInfo: + if not isinstance(data, dict): + raise TypeError( + "Unmarshalling the type 'ServerlessFunctionsTriggerInfo' failed as data isn't a dictionary." + ) + + args: dict[str, Any] = {} + + field = data.get("function_id", None) + if field is not None: + args["function_id"] = field + else: + args["function_id"] = None + + field = data.get("input_type", None) + if field is not None: + args["input_type"] = field + else: + args["input_type"] = None + + return ServerlessFunctionsTriggerInfo(**args) + + def unmarshal_VpcConnectorInfo(data: Any) -> VpcConnectorInfo: if not isinstance(data, dict): raise TypeError( @@ -1906,6 +2002,46 @@ def unmarshal_Resource(data: Any) -> Resource: else: args["serverless_containers_trigger_info"] = None + field = data.get("serverless_functions_namespace_info", None) + if field is not None: + args["serverless_functions_namespace_info"] = ( + unmarshal_ServerlessFunctionsNamespaceInfo(field) + ) + else: + args["serverless_functions_namespace_info"] = None + + field = data.get("serverless_functions_function_info", None) + if field is not None: + args["serverless_functions_function_info"] = ( + unmarshal_ServerlessFunctionsFunctionInfo(field) + ) + else: + args["serverless_functions_function_info"] = None + + field = data.get("serverless_functions_domain_info", None) + if field is not None: + args["serverless_functions_domain_info"] = ( + unmarshal_ServerlessFunctionsDomainInfo(field) + ) + else: + args["serverless_functions_domain_info"] = None + + field = data.get("serverless_functions_cron_info", None) + if field is not None: + args["serverless_functions_cron_info"] = unmarshal_ServerlessFunctionsCronInfo( + field + ) + else: + args["serverless_functions_cron_info"] = None + + field = data.get("serverless_functions_trigger_info", None) + if field is not None: + args["serverless_functions_trigger_info"] = ( + unmarshal_ServerlessFunctionsTriggerInfo(field) + ) + else: + args["serverless_functions_trigger_info"] = None + return Resource(**args) diff --git a/scaleway/scaleway/audit_trail/v1alpha1/types.py b/scaleway/scaleway/audit_trail/v1alpha1/types.py index 62b2e00e1..807e982c5 100644 --- a/scaleway/scaleway/audit_trail/v1alpha1/types.py +++ b/scaleway/scaleway/audit_trail/v1alpha1/types.py @@ -259,6 +259,11 @@ class ResourceType(str, Enum, metaclass=StrEnumMeta): SERVERLESS_CONTAINERS_CONTAINER = "serverless_containers_container" SERVERLESS_CONTAINERS_DOMAIN = "serverless_containers_domain" SERVERLESS_CONTAINERS_TRIGGER = "serverless_containers_trigger" + SERVERLESS_FUNCTIONS_NAMESPACE = "serverless_functions_namespace" + SERVERLESS_FUNCTIONS_FUNCTION = "serverless_functions_function" + SERVERLESS_FUNCTIONS_DOMAIN = "serverless_functions_domain" + SERVERLESS_FUNCTIONS_CRON = "serverless_functions_cron" + SERVERLESS_FUNCTIONS_TRIGGER = "serverless_functions_trigger" def __str__(self) -> str: return str(self.value) @@ -274,6 +279,15 @@ def __str__(self) -> str: return str(self.value) +class ServerlessFunctionsTriggerInfoInputType(str, Enum, metaclass=StrEnumMeta): + UNKNOWN_INPUT_TYPE = "unknown_input_type" + SCW_SQS = "scw_sqs" + SCW_NATS = "scw_nats" + + def __str__(self) -> str: + return str(self.value) + + class SystemEventKind(str, Enum, metaclass=StrEnumMeta): UNKNOWN_KIND = "unknown_kind" CRON = "cron" @@ -531,6 +545,32 @@ class ServerlessContainersTriggerInfo: source_type: ServerlessContainersTriggerInfoSourceType +@dataclass +class ServerlessFunctionsCronInfo: + function_id: str + + +@dataclass +class ServerlessFunctionsDomainInfo: + function_id: str + + +@dataclass +class ServerlessFunctionsFunctionInfo: + namespace_id: str + + +@dataclass +class ServerlessFunctionsNamespaceInfo: + pass + + +@dataclass +class ServerlessFunctionsTriggerInfo: + function_id: str + input_type: ServerlessFunctionsTriggerInfoInputType + + @dataclass class VpcConnectorInfo: vpc_id: str @@ -702,6 +742,18 @@ class Resource: serverless_containers_trigger_info: Optional[ServerlessContainersTriggerInfo] = None + serverless_functions_namespace_info: Optional[ServerlessFunctionsNamespaceInfo] = ( + None + ) + + serverless_functions_function_info: Optional[ServerlessFunctionsFunctionInfo] = None + + serverless_functions_domain_info: Optional[ServerlessFunctionsDomainInfo] = None + + serverless_functions_cron_info: Optional[ServerlessFunctionsCronInfo] = None + + serverless_functions_trigger_info: Optional[ServerlessFunctionsTriggerInfo] = None + @dataclass class EventPrincipal: diff --git a/scaleway/scaleway/block/v1/marshalling.py b/scaleway/scaleway/block/v1/marshalling.py index 7ceb69335..c206bde0c 100644 --- a/scaleway/scaleway/block/v1/marshalling.py +++ b/scaleway/scaleway/block/v1/marshalling.py @@ -208,6 +208,12 @@ def unmarshal_Snapshot(data: Any) -> Snapshot: else: args["public"] = False + field = data.get("kms_key_id", None) + if field is not None: + args["kms_key_id"] = field + else: + args["kms_key_id"] = None + return Snapshot(**args) diff --git a/scaleway/scaleway/block/v1/types.py b/scaleway/scaleway/block/v1/types.py index 15e524b5b..b07a93fac 100644 --- a/scaleway/scaleway/block/v1/types.py +++ b/scaleway/scaleway/block/v1/types.py @@ -259,6 +259,11 @@ class Snapshot: Last modification date of the properties of a snapshot. """ + kms_key_id: Optional[str] = None + """ + KMS Key used for securing the parent volume's encryption. + """ + @dataclass class VolumeType: