From 5072053548d5442f3feac9e0b9b01e21eb9071e7 Mon Sep 17 00:00:00 2001 From: Tobias Herber <22559657+herber@users.noreply.github.com> Date: Thu, 4 Jun 2026 15:03:00 +0200 Subject: [PATCH 1/2] Update SDK --- .../src/mt_2026_01_01_magnetar/__init__.py | 88 ++++++- .../endpoints/__init__.py | 27 ++- .../endpoints/dashboard_instance_enclaves.py | 76 ++++++ .../dashboard_instance_firewall_bindings.py | 120 ++++++++++ .../endpoints/dashboard_instance_firewalls.py | 159 +++++++++++++ ...ard_instance_firewalls_network_policies.py | 47 ++++ .../dashboard_instance_network_policies.py | 139 +++++++++++ ...shboard_instance_network_policies_rules.py | 93 ++++++++ .../endpoints/dashboard_instance_networks.py | 107 +++++++++ .../dashboard_instance_provider_templates.py | 10 +- ...y => dashboard_instance_provider_tools.py} | 20 +- .../endpoints/enclaves.py | 74 ++++++ .../endpoints/firewall_bindings.py | 116 +++++++++ .../endpoints/firewalls.py | 154 ++++++++++++ .../endpoints/firewalls_network_policies.py | 45 ++++ .../endpoints/management_instance_enclaves.py | 76 ++++++ .../management_instance_firewall_bindings.py | 120 ++++++++++ .../management_instance_firewalls.py | 159 +++++++++++++ ...ent_instance_firewalls_network_policies.py | 47 ++++ .../management_instance_network_policies.py | 139 +++++++++++ ...agement_instance_network_policies_rules.py | 93 ++++++++ .../endpoints/management_instance_networks.py | 107 +++++++++ .../management_instance_provider_templates.py | 10 +- ... => management_instance_provider_tools.py} | 20 +- .../endpoints/network_policies.py | 134 +++++++++++ .../endpoints/network_policies_rules.py | 90 +++++++ .../endpoints/networks.py | 104 ++++++++ .../endpoints/provider_templates.py | 10 +- .../{providers_tools.py => provider_tools.py} | 20 +- .../resources/__init__.py | 6 + .../resources/dashboard/instance/__init__.py | 6 + .../{providers/tools => enclaves}/__init__.py | 0 .../dashboard/instance/enclaves/get.py | 70 ++++++ .../dashboard/instance/enclaves/list.py | 157 ++++++++++++ .../instance/firewall_bindings/__init__.py | 4 + .../instance/firewall_bindings/create.py | 113 +++++++++ .../instance/firewall_bindings/delete.py | 84 +++++++ .../instance/firewall_bindings/get.py | 84 +++++++ .../instance/firewall_bindings/list.py | 171 ++++++++++++++ .../dashboard/instance/firewalls/__init__.py | 6 + .../dashboard/instance/firewalls/create.py | 183 ++++++++++++++ .../dashboard/instance/firewalls/delete.py | 128 ++++++++++ .../dashboard/instance/firewalls/get.py | 128 ++++++++++ .../dashboard/instance/firewalls/list.py | 223 ++++++++++++++++++ .../firewalls/network_policies/__init__.py | 2 + .../firewalls/network_policies/attach.py | 151 ++++++++++++ .../firewalls/network_policies/detach.py | 128 ++++++++++ .../dashboard/instance/firewalls/update.py | 155 ++++++++++++ .../instance/network_policies/__init__.py | 6 + .../instance/network_policies/create.py | 177 ++++++++++++++ .../instance/network_policies/delete.py | 102 ++++++++ .../instance/network_policies/get.py | 102 ++++++++ .../instance/network_policies/list.py | 191 +++++++++++++++ .../network_policies/rules/__init__.py | 3 + .../instance/network_policies/rules/create.py | 117 +++++++++ .../instance/network_policies/rules/delete.py | 102 ++++++++ .../instance/network_policies/rules/update.py | 117 +++++++++ .../instance/network_policies/update.py | 177 ++++++++++++++ .../dashboard/instance/networks/__init__.py | 3 + .../dashboard/instance/networks/get.py | 66 ++++++ .../dashboard/instance/networks/list.py | 153 ++++++++++++ .../instance/networks/list_network_logs.py | 103 ++++++++ .../dashboard/instance/provider/__init__.py | 1 + .../instance/provider}/tools/__init__.py | 0 .../instance/provider}/tools/get.py | 52 ++-- .../dashboard/instance/provider/tools/list.py | 185 +++++++++++++++ .../instance/provider_templates/create.py | 6 +- .../dashboard/instance/providers/__init__.py | 1 - .../{providers/tools => enclaves}/__init__.py | 0 .../resources/enclaves/get.py | 70 ++++++ .../resources/enclaves/list.py | 157 ++++++++++++ .../resources/firewall_bindings/__init__.py | 4 + .../resources/firewall_bindings/create.py | 113 +++++++++ .../resources/firewall_bindings/delete.py | 84 +++++++ .../resources/firewall_bindings/get.py | 84 +++++++ .../resources/firewall_bindings/list.py | 171 ++++++++++++++ .../resources/firewalls/__init__.py | 6 + .../resources/firewalls/create.py | 183 ++++++++++++++ .../resources/firewalls/delete.py | 128 ++++++++++ .../resources/firewalls/get.py | 128 ++++++++++ .../resources/firewalls/list.py | 223 ++++++++++++++++++ .../firewalls/network_policies/__init__.py | 2 + .../firewalls/network_policies/attach.py | 151 ++++++++++++ .../firewalls/network_policies/detach.py | 128 ++++++++++ .../resources/firewalls/update.py | 155 ++++++++++++ .../resources/management/instance/__init__.py | 6 + .../management/instance/enclaves/__init__.py | 2 + .../management/instance/enclaves/get.py | 70 ++++++ .../management/instance/enclaves/list.py | 157 ++++++++++++ .../instance/firewall_bindings/__init__.py | 4 + .../instance/firewall_bindings/create.py | 113 +++++++++ .../instance/firewall_bindings/delete.py | 84 +++++++ .../instance/firewall_bindings/get.py | 84 +++++++ .../instance/firewall_bindings/list.py | 171 ++++++++++++++ .../management/instance/firewalls/__init__.py | 6 + .../management/instance/firewalls/create.py | 183 ++++++++++++++ .../management/instance/firewalls/delete.py | 128 ++++++++++ .../management/instance/firewalls/get.py | 128 ++++++++++ .../management/instance/firewalls/list.py | 223 ++++++++++++++++++ .../firewalls/network_policies/__init__.py | 2 + .../firewalls/network_policies/attach.py | 151 ++++++++++++ .../firewalls/network_policies/detach.py | 128 ++++++++++ .../management/instance/firewalls/update.py | 155 ++++++++++++ .../instance/network_policies/__init__.py | 6 + .../instance/network_policies/create.py | 177 ++++++++++++++ .../instance/network_policies/delete.py | 102 ++++++++ .../instance/network_policies/get.py | 102 ++++++++ .../instance/network_policies/list.py | 191 +++++++++++++++ .../network_policies/rules/__init__.py | 3 + .../instance/network_policies/rules/create.py | 117 +++++++++ .../instance/network_policies/rules/delete.py | 102 ++++++++ .../instance/network_policies/rules/update.py | 117 +++++++++ .../instance/network_policies/update.py | 177 ++++++++++++++ .../management/instance/networks/__init__.py | 3 + .../management/instance/networks/get.py | 66 ++++++ .../management/instance/networks/list.py | 153 ++++++++++++ .../instance/networks/list_network_logs.py | 103 ++++++++ .../management/instance/provider/__init__.py | 1 + .../instance/provider/tools/__init__.py | 2 + .../instance/provider}/tools/get.py | 52 ++-- .../instance/provider}/tools/list.py | 90 +++---- .../instance/provider_templates/create.py | 6 +- .../management/instance/providers/__init__.py | 1 - .../instance/providers/tools/list.py | 185 --------------- .../resources/network_policies/__init__.py | 6 + .../resources/network_policies/create.py | 177 ++++++++++++++ .../resources/network_policies/delete.py | 102 ++++++++ .../resources/network_policies/get.py | 102 ++++++++ .../resources/network_policies/list.py | 191 +++++++++++++++ .../network_policies/rules/__init__.py | 3 + .../network_policies/rules/create.py | 117 +++++++++ .../network_policies/rules/delete.py | 102 ++++++++ .../network_policies/rules/update.py | 117 +++++++++ .../resources/network_policies/update.py | 177 ++++++++++++++ .../resources/networks/__init__.py | 3 + .../resources/networks/get.py | 66 ++++++ .../resources/networks/list.py | 153 ++++++++++++ .../resources/networks/list_network_logs.py | 103 ++++++++ .../resources/provider/__init__.py | 1 + .../resources/provider/tools/__init__.py | 2 + .../{providers => provider}/tools/get.py | 52 ++-- .../{providers => provider}/tools/list.py | 90 +++---- .../resources/provider_templates/create.py | 6 +- .../resources/providers/__init__.py | 1 - 144 files changed, 12366 insertions(+), 410 deletions(-) create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_enclaves.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_firewall_bindings.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_firewalls.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_firewalls_network_policies.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_network_policies.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_network_policies_rules.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_networks.py rename src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/{dashboard_instance_providers_tools.py => dashboard_instance_provider_tools.py} (76%) create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/enclaves.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/firewall_bindings.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/firewalls.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/firewalls_network_policies.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_enclaves.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_firewall_bindings.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_firewalls.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_firewalls_network_policies.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_network_policies.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_network_policies_rules.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_networks.py rename src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/{management_instance_providers_tools.py => management_instance_provider_tools.py} (72%) create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/network_policies.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/network_policies_rules.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/networks.py rename src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/{providers_tools.py => provider_tools.py} (75%) rename src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/{providers/tools => enclaves}/__init__.py (100%) create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/enclaves/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/enclaves/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/create.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/delete.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/create.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/delete.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/network_policies/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/network_policies/attach.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/network_policies/detach.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/update.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/create.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/delete.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/create.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/delete.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/update.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/update.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/list_network_logs.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/__init__.py rename src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/{management/instance/providers => dashboard/instance/provider}/tools/__init__.py (100%) rename src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/{management/instance/providers => dashboard/instance/provider}/tools/get.py (50%) create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/tools/list.py rename src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/{providers/tools => enclaves}/__init__.py (100%) create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/enclaves/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/enclaves/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/create.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/delete.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/create.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/delete.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/network_policies/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/network_policies/attach.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/network_policies/detach.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/update.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/enclaves/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/enclaves/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/enclaves/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/create.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/delete.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/create.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/delete.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/network_policies/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/network_policies/attach.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/network_policies/detach.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/update.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/create.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/delete.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/create.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/delete.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/update.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/update.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/list_network_logs.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/tools/__init__.py rename src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/{dashboard/instance/providers => management/instance/provider}/tools/get.py (63%) rename src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/{dashboard/instance/providers => management/instance/provider}/tools/list.py (60%) delete mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/tools/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/create.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/delete.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/create.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/delete.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/update.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/update.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/get.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/list.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/list_network_logs.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/__init__.py create mode 100644 src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/tools/__init__.py rename src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/{providers => provider}/tools/get.py (57%) rename src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/{providers => provider}/tools/list.py (55%) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/__init__.py index c96e0a8b..d4ea1905 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/__init__.py @@ -136,6 +136,9 @@ # DashboardInstanceDocumentsVersionsGetOutput # DashboardInstanceDocumentsVersionsListOutput # DashboardInstanceDocumentsVersionsListQuery +# DashboardInstanceEnclavesGetOutput +# DashboardInstanceEnclavesListOutput +# DashboardInstanceEnclavesListQuery # DashboardInstanceFilesDeleteOutput # DashboardInstanceFilesGetOutput # DashboardInstanceFilesLinksCreateBody @@ -146,6 +149,23 @@ # DashboardInstanceFilesLinksListQuery # DashboardInstanceFilesListOutput # DashboardInstanceFilesListQuery +# DashboardInstanceFirewallBindingsCreateBody +# DashboardInstanceFirewallBindingsCreateOutput +# DashboardInstanceFirewallBindingsDeleteOutput +# DashboardInstanceFirewallBindingsGetOutput +# DashboardInstanceFirewallBindingsListOutput +# DashboardInstanceFirewallBindingsListQuery +# DashboardInstanceFirewallsCreateBody +# DashboardInstanceFirewallsCreateOutput +# DashboardInstanceFirewallsDeleteOutput +# DashboardInstanceFirewallsGetOutput +# DashboardInstanceFirewallsListOutput +# DashboardInstanceFirewallsListQuery +# DashboardInstanceFirewallsNetworkPoliciesAttachBody +# DashboardInstanceFirewallsNetworkPoliciesAttachOutput +# DashboardInstanceFirewallsNetworkPoliciesDetachOutput +# DashboardInstanceFirewallsUpdateBody +# DashboardInstanceFirewallsUpdateOutput # DashboardInstanceIdentitiesCreateBody # DashboardInstanceIdentitiesCreateOutput # DashboardInstanceIdentitiesCredentialsCreateBody @@ -307,6 +327,24 @@ # DashboardInstanceMagicMcpTokensRemoveGroupsOutput # DashboardInstanceMagicMcpTokensUpdateBody # DashboardInstanceMagicMcpTokensUpdateOutput +# DashboardInstanceNetworkPoliciesCreateBody +# DashboardInstanceNetworkPoliciesCreateOutput +# DashboardInstanceNetworkPoliciesDeleteOutput +# DashboardInstanceNetworkPoliciesGetOutput +# DashboardInstanceNetworkPoliciesListOutput +# DashboardInstanceNetworkPoliciesListQuery +# DashboardInstanceNetworkPoliciesRulesCreateBody +# DashboardInstanceNetworkPoliciesRulesCreateOutput +# DashboardInstanceNetworkPoliciesRulesDeleteOutput +# DashboardInstanceNetworkPoliciesRulesUpdateBody +# DashboardInstanceNetworkPoliciesRulesUpdateOutput +# DashboardInstanceNetworkPoliciesUpdateBody +# DashboardInstanceNetworkPoliciesUpdateOutput +# DashboardInstanceNetworksGetOutput +# DashboardInstanceNetworksListNetworkLogsOutput +# DashboardInstanceNetworksListNetworkLogsQuery +# DashboardInstanceNetworksListOutput +# DashboardInstanceNetworksListQuery # DashboardInstancePortalsAccessCreateBody # DashboardInstancePortalsAccessCreateOutput # DashboardInstancePortalsAccessDeleteOutput @@ -461,6 +499,9 @@ # DashboardInstanceProviderTemplatesListQuery # DashboardInstanceProviderTemplatesUpdateBody # DashboardInstanceProviderTemplatesUpdateOutput +# DashboardInstanceProviderToolsGetOutput +# DashboardInstanceProviderToolsListOutput +# DashboardInstanceProviderToolsListQuery # DashboardInstanceProvidersAuthMethodsGetOutput # DashboardInstanceProvidersAuthMethodsListOutput # DashboardInstanceProvidersAuthMethodsListQuery @@ -470,9 +511,6 @@ # DashboardInstanceProvidersSpecificationsGetOutput # DashboardInstanceProvidersSpecificationsListOutput # DashboardInstanceProvidersSpecificationsListQuery -# DashboardInstanceProvidersToolsGetOutput -# DashboardInstanceProvidersToolsListOutput -# DashboardInstanceProvidersToolsListQuery # DashboardInstanceProvidersTriggersGetOutput # DashboardInstanceProvidersTriggersListOutput # DashboardInstanceProvidersTriggersListQuery @@ -812,6 +850,9 @@ # mapDashboardInstanceDocumentsVersionsGetOutput # mapDashboardInstanceDocumentsVersionsListOutput # mapDashboardInstanceDocumentsVersionsListQuery +# mapDashboardInstanceEnclavesGetOutput +# mapDashboardInstanceEnclavesListOutput +# mapDashboardInstanceEnclavesListQuery # mapDashboardInstanceFilesDeleteOutput # mapDashboardInstanceFilesGetOutput # mapDashboardInstanceFilesLinksCreateBody @@ -822,6 +863,23 @@ # mapDashboardInstanceFilesLinksListQuery # mapDashboardInstanceFilesListOutput # mapDashboardInstanceFilesListQuery +# mapDashboardInstanceFirewallBindingsCreateBody +# mapDashboardInstanceFirewallBindingsCreateOutput +# mapDashboardInstanceFirewallBindingsDeleteOutput +# mapDashboardInstanceFirewallBindingsGetOutput +# mapDashboardInstanceFirewallBindingsListOutput +# mapDashboardInstanceFirewallBindingsListQuery +# mapDashboardInstanceFirewallsCreateBody +# mapDashboardInstanceFirewallsCreateOutput +# mapDashboardInstanceFirewallsDeleteOutput +# mapDashboardInstanceFirewallsGetOutput +# mapDashboardInstanceFirewallsListOutput +# mapDashboardInstanceFirewallsListQuery +# mapDashboardInstanceFirewallsNetworkPoliciesAttachBody +# mapDashboardInstanceFirewallsNetworkPoliciesAttachOutput +# mapDashboardInstanceFirewallsNetworkPoliciesDetachOutput +# mapDashboardInstanceFirewallsUpdateBody +# mapDashboardInstanceFirewallsUpdateOutput # mapDashboardInstanceIdentitiesCreateBody # mapDashboardInstanceIdentitiesCreateOutput # mapDashboardInstanceIdentitiesCredentialsCreateBody @@ -983,6 +1041,24 @@ # mapDashboardInstanceMagicMcpTokensRemoveGroupsOutput # mapDashboardInstanceMagicMcpTokensUpdateBody # mapDashboardInstanceMagicMcpTokensUpdateOutput +# mapDashboardInstanceNetworkPoliciesCreateBody +# mapDashboardInstanceNetworkPoliciesCreateOutput +# mapDashboardInstanceNetworkPoliciesDeleteOutput +# mapDashboardInstanceNetworkPoliciesGetOutput +# mapDashboardInstanceNetworkPoliciesListOutput +# mapDashboardInstanceNetworkPoliciesListQuery +# mapDashboardInstanceNetworkPoliciesRulesCreateBody +# mapDashboardInstanceNetworkPoliciesRulesCreateOutput +# mapDashboardInstanceNetworkPoliciesRulesDeleteOutput +# mapDashboardInstanceNetworkPoliciesRulesUpdateBody +# mapDashboardInstanceNetworkPoliciesRulesUpdateOutput +# mapDashboardInstanceNetworkPoliciesUpdateBody +# mapDashboardInstanceNetworkPoliciesUpdateOutput +# mapDashboardInstanceNetworksGetOutput +# mapDashboardInstanceNetworksListNetworkLogsOutput +# mapDashboardInstanceNetworksListNetworkLogsQuery +# mapDashboardInstanceNetworksListOutput +# mapDashboardInstanceNetworksListQuery # mapDashboardInstancePortalsAccessCreateBody # mapDashboardInstancePortalsAccessCreateOutput # mapDashboardInstancePortalsAccessDeleteOutput @@ -1137,6 +1213,9 @@ # mapDashboardInstanceProviderTemplatesListQuery # mapDashboardInstanceProviderTemplatesUpdateBody # mapDashboardInstanceProviderTemplatesUpdateOutput +# mapDashboardInstanceProviderToolsGetOutput +# mapDashboardInstanceProviderToolsListOutput +# mapDashboardInstanceProviderToolsListQuery # mapDashboardInstanceProvidersAuthMethodsGetOutput # mapDashboardInstanceProvidersAuthMethodsListOutput # mapDashboardInstanceProvidersAuthMethodsListQuery @@ -1146,9 +1225,6 @@ # mapDashboardInstanceProvidersSpecificationsGetOutput # mapDashboardInstanceProvidersSpecificationsListOutput # mapDashboardInstanceProvidersSpecificationsListQuery -# mapDashboardInstanceProvidersToolsGetOutput -# mapDashboardInstanceProvidersToolsListOutput -# mapDashboardInstanceProvidersToolsListQuery # mapDashboardInstanceProvidersTriggersGetOutput # mapDashboardInstanceProvidersTriggersListOutput # mapDashboardInstanceProvidersTriggersListQuery diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/__init__.py index ba2d9cdf..77e107f3 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/__init__.py @@ -45,8 +45,12 @@ from .dashboard_instance_documents_participants import * from .dashboard_instance_documents_permissions import * from .dashboard_instance_documents_versions import * +from .dashboard_instance_enclaves import * from .dashboard_instance_files import * from .dashboard_instance_files_links import * +from .dashboard_instance_firewall_bindings import * +from .dashboard_instance_firewalls import * +from .dashboard_instance_firewalls_network_policies import * from .dashboard_instance_identities import * from .dashboard_instance_identities_credentials import * from .dashboard_instance_identities_delegation_configs import * @@ -67,6 +71,9 @@ from .dashboard_instance_magic_mcp_servers_providers import * from .dashboard_instance_magic_mcp_sessions import * from .dashboard_instance_magic_mcp_tokens import * +from .dashboard_instance_network_policies import * +from .dashboard_instance_network_policies_rules import * +from .dashboard_instance_networks import * from .dashboard_instance_portals import * from .dashboard_instance_portals_access import * from .dashboard_instance_portals_access_requests import * @@ -91,10 +98,10 @@ from .dashboard_instance_provider_listings import * from .dashboard_instance_provider_runs import * from .dashboard_instance_provider_templates import * +from .dashboard_instance_provider_tools import * from .dashboard_instance_providers import * from .dashboard_instance_providers_auth_methods import * from .dashboard_instance_providers_specifications import * -from .dashboard_instance_providers_tools import * from .dashboard_instance_providers_triggers import * from .dashboard_instance_providers_versions import * from .dashboard_instance_publishers import * @@ -134,8 +141,12 @@ from .documents_participants import * from .documents_permissions import * from .documents_versions import * +from .enclaves import * from .files import * from .files_links import * +from .firewall_bindings import * +from .firewalls import * +from .firewalls_network_policies import * from .identities import * from .identities_credentials import * from .identities_delegation_configs import * @@ -179,8 +190,12 @@ from .management_instance_documents_participants import * from .management_instance_documents_permissions import * from .management_instance_documents_versions import * +from .management_instance_enclaves import * from .management_instance_files import * from .management_instance_files_links import * +from .management_instance_firewall_bindings import * +from .management_instance_firewalls import * +from .management_instance_firewalls_network_policies import * from .management_instance_identities import * from .management_instance_identities_credentials import * from .management_instance_identities_delegation_configs import * @@ -201,6 +216,9 @@ from .management_instance_magic_mcp_servers_providers import * from .management_instance_magic_mcp_sessions import * from .management_instance_magic_mcp_tokens import * +from .management_instance_network_policies import * +from .management_instance_network_policies_rules import * +from .management_instance_networks import * from .management_instance_portals import * from .management_instance_portals_access import * from .management_instance_portals_access_requests import * @@ -225,10 +243,10 @@ from .management_instance_provider_listings import * from .management_instance_provider_runs import * from .management_instance_provider_templates import * +from .management_instance_provider_tools import * from .management_instance_providers import * from .management_instance_providers_auth_methods import * from .management_instance_providers_specifications import * -from .management_instance_providers_tools import * from .management_instance_providers_triggers import * from .management_instance_providers_versions import * from .management_instance_publishers import * @@ -264,6 +282,9 @@ from .management_instance_stores_permissions import * from .management_instance_tool_calls import * from .management_organization_api_keys import * +from .network_policies import * +from .network_policies_rules import * +from .networks import * from .portals import * from .portals_access import * from .portals_access_requests import * @@ -288,10 +309,10 @@ from .provider_listings import * from .provider_runs import * from .provider_templates import * +from .provider_tools import * from .providers import * from .providers_auth_methods import * from .providers_specifications import * -from .providers_tools import * from .providers_triggers import * from .providers_versions import * from .publishers import * diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_enclaves.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_enclaves.py new file mode 100644 index 00000000..9f22f999 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_enclaves.py @@ -0,0 +1,76 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceEnclavesListOutput, DashboardInstanceEnclavesListOutput, mapDashboardInstanceEnclavesListQuery, DashboardInstanceEnclavesListQuery, mapDashboardInstanceEnclavesGetOutput, DashboardInstanceEnclavesGetOutput + +class MetorialDashboardInstanceEnclavesEndpoint(BaseMetorialEndpoint): + """Read enclave records for provider deployments in an instance.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, slug: Optional[Union[str, List[str]]] = None, network_id: Optional[Union[str, List[str]]] = None, provider_deployment_id: Optional[Union[str, List[str]]] = None, provider_id: Optional[Union[str, List[str]]] = None, firewall_id: Optional[Union[str, List[str]]] = None, created_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceEnclavesListOutput: + """ + List enclaves + Returns a paginated list of enclaves. + + :param instance_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param slug: Optional[Union[str, List[str]]] (optional) + :param network_id: Optional[Union[str, List[str]]] (optional) + :param provider_deployment_id: Optional[Union[str, List[str]]] (optional) + :param provider_id: Optional[Union[str, List[str]]] (optional) + :param firewall_id: Optional[Union[str, List[str]]] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceEnclavesListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if slug is not None: + query_dict["slug"] = slug + if network_id is not None: + query_dict["network_id"] = network_id + if provider_deployment_id is not None: + query_dict["provider_deployment_id"] = provider_deployment_id + if provider_id is not None: + query_dict["provider_id"] = provider_id + if firewall_id is not None: + query_dict["firewall_id"] = firewall_id + if created_at is not None: + query_dict["created_at"] = created_at + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'enclaves'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceEnclavesListOutput.from_dict) + + def get(self, instance_id: str, enclave_id: str) -> DashboardInstanceEnclavesGetOutput: + """ + Get enclave + Retrieves a specific enclave by ID. + + :param instance_id: str + :param enclave_id: str + :return: DashboardInstanceEnclavesGetOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'enclaves', enclave_id] + ) + return self._get(request).transform(mapDashboardInstanceEnclavesGetOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_firewall_bindings.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_firewall_bindings.py new file mode 100644 index 00000000..06479723 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_firewall_bindings.py @@ -0,0 +1,120 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceFirewallBindingsListOutput, DashboardInstanceFirewallBindingsListOutput, mapDashboardInstanceFirewallBindingsListQuery, DashboardInstanceFirewallBindingsListQuery, mapDashboardInstanceFirewallBindingsGetOutput, DashboardInstanceFirewallBindingsGetOutput, mapDashboardInstanceFirewallBindingsCreateOutput, DashboardInstanceFirewallBindingsCreateOutput, mapDashboardInstanceFirewallBindingsCreateBody, DashboardInstanceFirewallBindingsCreateBody, mapDashboardInstanceFirewallBindingsDeleteOutput, DashboardInstanceFirewallBindingsDeleteOutput + +class MetorialDashboardInstanceFirewallBindingsEndpoint(BaseMetorialEndpoint): + """Manage bindings that apply firewalls to enclaves, providers, or networks.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, firewall_id: Optional[Union[str, List[str]]] = None, enclave_id: Optional[Union[str, List[str]]] = None, provider_id: Optional[Union[str, List[str]]] = None, network_id: Optional[Union[str, List[str]]] = None, target_type: Optional[Union[str, List[str]]] = None, created_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceFirewallBindingsListOutput: + """ + List firewall bindings + Returns a paginated list of firewall bindings. + + :param instance_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param firewall_id: Optional[Union[str, List[str]]] (optional) + :param enclave_id: Optional[Union[str, List[str]]] (optional) + :param provider_id: Optional[Union[str, List[str]]] (optional) + :param network_id: Optional[Union[str, List[str]]] (optional) + :param target_type: Optional[Union[str, List[str]]] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceFirewallBindingsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if firewall_id is not None: + query_dict["firewall_id"] = firewall_id + if enclave_id is not None: + query_dict["enclave_id"] = enclave_id + if provider_id is not None: + query_dict["provider_id"] = provider_id + if network_id is not None: + query_dict["network_id"] = network_id + if target_type is not None: + query_dict["target_type"] = target_type + if created_at is not None: + query_dict["created_at"] = created_at + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'firewall-bindings'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceFirewallBindingsListOutput.from_dict) + + def get(self, instance_id: str, firewall_binding_id: str) -> DashboardInstanceFirewallBindingsGetOutput: + """ + Get firewall binding + Retrieves a specific firewall binding by ID. + + :param instance_id: str + :param firewall_binding_id: str + :return: DashboardInstanceFirewallBindingsGetOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'firewall-bindings', firewall_binding_id] + ) + return self._get(request).transform(mapDashboardInstanceFirewallBindingsGetOutput.from_dict) + + def create(self, instance_id: str, *, firewall_id: str, target_type: str, enclave_id: Optional[str] = None, provider_id: Optional[str] = None, network_id: Optional[str] = None) -> DashboardInstanceFirewallBindingsCreateOutput: + """ + Create firewall binding + Creates a binding that applies a firewall to a target. + + :param instance_id: str + :param firewall_id: str + :param target_type: str + :param enclave_id: Optional[str] (optional) + :param provider_id: Optional[str] (optional) + :param network_id: Optional[str] (optional) + :return: DashboardInstanceFirewallBindingsCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["firewall_id"] = firewall_id + body_dict["target_type"] = target_type + if enclave_id is not None: + body_dict["enclave_id"] = enclave_id + if provider_id is not None: + body_dict["provider_id"] = provider_id + if network_id is not None: + body_dict["network_id"] = network_id + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'firewall-bindings'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceFirewallBindingsCreateOutput.from_dict) + + def delete(self, instance_id: str, firewall_binding_id: str) -> DashboardInstanceFirewallBindingsDeleteOutput: + """ + Delete firewall binding + Deletes a firewall binding. + + :param instance_id: str + :param firewall_binding_id: str + :return: DashboardInstanceFirewallBindingsDeleteOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'firewall-bindings', firewall_binding_id] + ) + return self._delete(request).transform(mapDashboardInstanceFirewallBindingsDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_firewalls.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_firewalls.py new file mode 100644 index 00000000..f183099b --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_firewalls.py @@ -0,0 +1,159 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceFirewallsListOutput, DashboardInstanceFirewallsListOutput, mapDashboardInstanceFirewallsListQuery, DashboardInstanceFirewallsListQuery, mapDashboardInstanceFirewallsGetOutput, DashboardInstanceFirewallsGetOutput, mapDashboardInstanceFirewallsCreateOutput, DashboardInstanceFirewallsCreateOutput, mapDashboardInstanceFirewallsCreateBody, DashboardInstanceFirewallsCreateBody, mapDashboardInstanceFirewallsUpdateOutput, DashboardInstanceFirewallsUpdateOutput, mapDashboardInstanceFirewallsUpdateBody, DashboardInstanceFirewallsUpdateBody, mapDashboardInstanceFirewallsDeleteOutput, DashboardInstanceFirewallsDeleteOutput + +class MetorialDashboardInstanceFirewallsEndpoint(BaseMetorialEndpoint): + """Manage firewalls and their attached network policies.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, slug: Optional[Union[str, List[str]]] = None, status: Optional[Union[str, List[str]]] = None, network_id: Optional[Union[str, List[str]]] = None, enclave_id: Optional[Union[str, List[str]]] = None, provider_id: Optional[Union[str, List[str]]] = None, network_policy_id: Optional[Union[str, List[str]]] = None, created_at: Optional[Dict[str, Any]] = None, updated_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceFirewallsListOutput: + """ + List firewalls + Returns a paginated list of firewalls. + + :param instance_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param slug: Optional[Union[str, List[str]]] (optional) + :param status: Optional[Union[str, List[str]]] (optional) + :param network_id: Optional[Union[str, List[str]]] (optional) + :param enclave_id: Optional[Union[str, List[str]]] (optional) + :param provider_id: Optional[Union[str, List[str]]] (optional) + :param network_policy_id: Optional[Union[str, List[str]]] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :param updated_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceFirewallsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if slug is not None: + query_dict["slug"] = slug + if status is not None: + query_dict["status"] = status + if network_id is not None: + query_dict["network_id"] = network_id + if enclave_id is not None: + query_dict["enclave_id"] = enclave_id + if provider_id is not None: + query_dict["provider_id"] = provider_id + if network_policy_id is not None: + query_dict["network_policy_id"] = network_policy_id + if created_at is not None: + query_dict["created_at"] = created_at + if updated_at is not None: + query_dict["updated_at"] = updated_at + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'firewalls'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceFirewallsListOutput.from_dict) + + def get(self, instance_id: str, firewall_id: str) -> DashboardInstanceFirewallsGetOutput: + """ + Get firewall + Retrieves a specific firewall by ID. + + :param instance_id: str + :param firewall_id: str + :return: DashboardInstanceFirewallsGetOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'firewalls', firewall_id] + ) + return self._get(request).transform(mapDashboardInstanceFirewallsGetOutput.from_dict) + + def create(self, instance_id: str, *, name: str, network_id: str, description: Optional[str] = None, slug: Optional[str] = None, bindings: Optional[List[Dict[str, Any]]] = None, network_policy_ids: Optional[List[str]] = None) -> DashboardInstanceFirewallsCreateOutput: + """ + Create firewall + Creates a new firewall. + + :param instance_id: str + :param name: str + :param description: Optional[str] (optional) + :param slug: Optional[str] (optional) + :param network_id: str + :param bindings: Optional[List[Dict[str, Any]]] (optional) + :param network_policy_ids: Optional[List[str]] (optional) + :return: DashboardInstanceFirewallsCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if slug is not None: + body_dict["slug"] = slug + body_dict["network_id"] = network_id + if bindings is not None: + body_dict["bindings"] = bindings + if network_policy_ids is not None: + body_dict["network_policy_ids"] = network_policy_ids + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'firewalls'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceFirewallsCreateOutput.from_dict) + + def update(self, instance_id: str, firewall_id: str, *, name: Optional[str] = None, description: Optional[str] = None, slug: Optional[str] = None, network_policy_ids: Optional[List[str]] = None) -> DashboardInstanceFirewallsUpdateOutput: + """ + Update firewall + Updates a firewall definition. + + :param instance_id: str + :param firewall_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param slug: Optional[str] (optional) + :param network_policy_ids: Optional[List[str]] (optional) + :return: DashboardInstanceFirewallsUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if name is not None: + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if slug is not None: + body_dict["slug"] = slug + if network_policy_ids is not None: + body_dict["network_policy_ids"] = network_policy_ids + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'firewalls', firewall_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstanceFirewallsUpdateOutput.from_dict) + + def delete(self, instance_id: str, firewall_id: str) -> DashboardInstanceFirewallsDeleteOutput: + """ + Delete firewall + Archives a firewall. + + :param instance_id: str + :param firewall_id: str + :return: DashboardInstanceFirewallsDeleteOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'firewalls', firewall_id] + ) + return self._delete(request).transform(mapDashboardInstanceFirewallsDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_firewalls_network_policies.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_firewalls_network_policies.py new file mode 100644 index 00000000..666ff17e --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_firewalls_network_policies.py @@ -0,0 +1,47 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceFirewallsNetworkPoliciesAttachOutput, DashboardInstanceFirewallsNetworkPoliciesAttachOutput, mapDashboardInstanceFirewallsNetworkPoliciesAttachBody, DashboardInstanceFirewallsNetworkPoliciesAttachBody, mapDashboardInstanceFirewallsNetworkPoliciesDetachOutput, DashboardInstanceFirewallsNetworkPoliciesDetachOutput + +class MetorialDashboardInstanceFirewallsNetworkPoliciesEndpoint(BaseMetorialEndpoint): + """Manage firewalls and their attached network policies.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def attach(self, instance_id: str, firewall_id: str, *, network_policy_id: str, position: Optional[float] = None) -> DashboardInstanceFirewallsNetworkPoliciesAttachOutput: + """ + Attach network policy + Attaches a network policy to a firewall. + + :param instance_id: str + :param firewall_id: str + :param network_policy_id: str + :param position: Optional[float] (optional) + :return: DashboardInstanceFirewallsNetworkPoliciesAttachOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["network_policy_id"] = network_policy_id + if position is not None: + body_dict["position"] = position + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'firewalls', firewall_id, 'network-policies'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceFirewallsNetworkPoliciesAttachOutput.from_dict) + + def detach(self, instance_id: str, firewall_id: str, network_policy_id: str) -> DashboardInstanceFirewallsNetworkPoliciesDetachOutput: + """ + Detach network policy + Detaches a network policy from a firewall. + + :param instance_id: str + :param firewall_id: str + :param network_policy_id: str + :return: DashboardInstanceFirewallsNetworkPoliciesDetachOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'firewalls', firewall_id, 'network-policies', network_policy_id] + ) + return self._delete(request).transform(mapDashboardInstanceFirewallsNetworkPoliciesDetachOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_network_policies.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_network_policies.py new file mode 100644 index 00000000..64af8661 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_network_policies.py @@ -0,0 +1,139 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceNetworkPoliciesListOutput, DashboardInstanceNetworkPoliciesListOutput, mapDashboardInstanceNetworkPoliciesListQuery, DashboardInstanceNetworkPoliciesListQuery, mapDashboardInstanceNetworkPoliciesGetOutput, DashboardInstanceNetworkPoliciesGetOutput, mapDashboardInstanceNetworkPoliciesCreateOutput, DashboardInstanceNetworkPoliciesCreateOutput, mapDashboardInstanceNetworkPoliciesCreateBody, DashboardInstanceNetworkPoliciesCreateBody, mapDashboardInstanceNetworkPoliciesUpdateOutput, DashboardInstanceNetworkPoliciesUpdateOutput, mapDashboardInstanceNetworkPoliciesUpdateBody, DashboardInstanceNetworkPoliciesUpdateBody, mapDashboardInstanceNetworkPoliciesDeleteOutput, DashboardInstanceNetworkPoliciesDeleteOutput + +class MetorialDashboardInstanceNetworkPoliciesEndpoint(BaseMetorialEndpoint): + """Manage reusable network policy definitions and their rules.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, status: Optional[Union[str, List[str]]] = None, firewall_id: Optional[Union[str, List[str]]] = None, search: Optional[str] = None, created_at: Optional[Dict[str, Any]] = None, updated_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceNetworkPoliciesListOutput: + """ + List network policies + Returns a paginated list of network policies. + + :param instance_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param status: Optional[Union[str, List[str]]] (optional) + :param firewall_id: Optional[Union[str, List[str]]] (optional) + :param search: Optional[str] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :param updated_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceNetworkPoliciesListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if status is not None: + query_dict["status"] = status + if firewall_id is not None: + query_dict["firewall_id"] = firewall_id + if search is not None: + query_dict["search"] = search + if created_at is not None: + query_dict["created_at"] = created_at + if updated_at is not None: + query_dict["updated_at"] = updated_at + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'network-policies'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceNetworkPoliciesListOutput.from_dict) + + def get(self, instance_id: str, network_policy_id: str) -> DashboardInstanceNetworkPoliciesGetOutput: + """ + Get network policy + Retrieves a specific network policy by ID. + + :param instance_id: str + :param network_policy_id: str + :return: DashboardInstanceNetworkPoliciesGetOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'network-policies', network_policy_id] + ) + return self._get(request).transform(mapDashboardInstanceNetworkPoliciesGetOutput.from_dict) + + def create(self, instance_id: str, *, name: str, description: Optional[str] = None, rules: Optional[List[Dict[str, Any]]] = None) -> DashboardInstanceNetworkPoliciesCreateOutput: + """ + Create network policy + Creates a new network policy. + + :param instance_id: str + :param name: str + :param description: Optional[str] (optional) + :param rules: Optional[List[Dict[str, Any]]] (optional) + :return: DashboardInstanceNetworkPoliciesCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if rules is not None: + body_dict["rules"] = rules + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'network-policies'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceNetworkPoliciesCreateOutput.from_dict) + + def update(self, instance_id: str, network_policy_id: str, *, name: Optional[str] = None, description: Optional[str] = None, rules: Optional[List[Dict[str, Any]]] = None) -> DashboardInstanceNetworkPoliciesUpdateOutput: + """ + Update network policy + Updates a network policy definition. + + :param instance_id: str + :param network_policy_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param rules: Optional[List[Dict[str, Any]]] (optional) + :return: DashboardInstanceNetworkPoliciesUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if name is not None: + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if rules is not None: + body_dict["rules"] = rules + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'network-policies', network_policy_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstanceNetworkPoliciesUpdateOutput.from_dict) + + def delete(self, instance_id: str, network_policy_id: str) -> DashboardInstanceNetworkPoliciesDeleteOutput: + """ + Delete network policy + Archives a network policy. + + :param instance_id: str + :param network_policy_id: str + :return: DashboardInstanceNetworkPoliciesDeleteOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'network-policies', network_policy_id] + ) + return self._delete(request).transform(mapDashboardInstanceNetworkPoliciesDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_network_policies_rules.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_network_policies_rules.py new file mode 100644 index 00000000..af9821c3 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_network_policies_rules.py @@ -0,0 +1,93 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceNetworkPoliciesRulesCreateOutput, DashboardInstanceNetworkPoliciesRulesCreateOutput, mapDashboardInstanceNetworkPoliciesRulesCreateBody, DashboardInstanceNetworkPoliciesRulesCreateBody, mapDashboardInstanceNetworkPoliciesRulesUpdateOutput, DashboardInstanceNetworkPoliciesRulesUpdateOutput, mapDashboardInstanceNetworkPoliciesRulesUpdateBody, DashboardInstanceNetworkPoliciesRulesUpdateBody, mapDashboardInstanceNetworkPoliciesRulesDeleteOutput, DashboardInstanceNetworkPoliciesRulesDeleteOutput + +class MetorialDashboardInstanceNetworkPoliciesRulesEndpoint(BaseMetorialEndpoint): + """Manage reusable network policy definitions and their rules.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def create(self, instance_id: str, network_policy_id: str, *, effect: str, direction: str, cidrs: List[str], enabled: bool, priority: float, description: Optional[str] = None, ports: Optional[List[Dict[str, Any]]] = None) -> DashboardInstanceNetworkPoliciesRulesCreateOutput: + """ + Create network policy rule + Adds a rule to a network policy. + + :param instance_id: str + :param network_policy_id: str + :param effect: str + :param direction: str + :param cidrs: List[str] + :param description: Optional[str] (optional) + :param enabled: bool + :param priority: float + :param ports: Optional[List[Dict[str, Any]]] (optional) + :return: DashboardInstanceNetworkPoliciesRulesCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["effect"] = effect + body_dict["direction"] = direction + body_dict["cidrs"] = cidrs + if description is not None: + body_dict["description"] = description + body_dict["enabled"] = enabled + body_dict["priority"] = priority + if ports is not None: + body_dict["ports"] = ports + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'network-policies', network_policy_id, 'rules'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceNetworkPoliciesRulesCreateOutput.from_dict) + + def update(self, instance_id: str, network_policy_id: str, rule_id: str, *, effect: str, direction: str, cidrs: List[str], enabled: bool, priority: float, description: Optional[str] = None, ports: Optional[List[Dict[str, Any]]] = None) -> DashboardInstanceNetworkPoliciesRulesUpdateOutput: + """ + Update network policy rule + Updates a rule on a network policy. + + :param instance_id: str + :param network_policy_id: str + :param rule_id: str + :param effect: str + :param direction: str + :param cidrs: List[str] + :param description: Optional[str] (optional) + :param enabled: bool + :param priority: float + :param ports: Optional[List[Dict[str, Any]]] (optional) + :return: DashboardInstanceNetworkPoliciesRulesUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["effect"] = effect + body_dict["direction"] = direction + body_dict["cidrs"] = cidrs + if description is not None: + body_dict["description"] = description + body_dict["enabled"] = enabled + body_dict["priority"] = priority + if ports is not None: + body_dict["ports"] = ports + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'network-policies', network_policy_id, 'rules', rule_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstanceNetworkPoliciesRulesUpdateOutput.from_dict) + + def delete(self, instance_id: str, network_policy_id: str, rule_id: str) -> DashboardInstanceNetworkPoliciesRulesDeleteOutput: + """ + Delete network policy rule + Removes a rule from a network policy. + + :param instance_id: str + :param network_policy_id: str + :param rule_id: str + :return: DashboardInstanceNetworkPoliciesRulesDeleteOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'network-policies', network_policy_id, 'rules', rule_id] + ) + return self._delete(request).transform(mapDashboardInstanceNetworkPoliciesRulesDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_networks.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_networks.py new file mode 100644 index 00000000..f4bcc483 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_networks.py @@ -0,0 +1,107 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceNetworksListOutput, DashboardInstanceNetworksListOutput, mapDashboardInstanceNetworksListQuery, DashboardInstanceNetworksListQuery, mapDashboardInstanceNetworksGetOutput, DashboardInstanceNetworksGetOutput, mapDashboardInstanceNetworksListNetworkLogsOutput, DashboardInstanceNetworksListNetworkLogsOutput, mapDashboardInstanceNetworksListNetworkLogsQuery, DashboardInstanceNetworksListNetworkLogsQuery + +class MetorialDashboardInstanceNetworksEndpoint(BaseMetorialEndpoint): + """Read network records for an instance environment.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, firewall_id: Optional[Union[str, List[str]]] = None, enclave_id: Optional[Union[str, List[str]]] = None, created_at: Optional[Dict[str, Any]] = None, updated_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceNetworksListOutput: + """ + List networks + Returns a paginated list of networks. + + :param instance_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param firewall_id: Optional[Union[str, List[str]]] (optional) + :param enclave_id: Optional[Union[str, List[str]]] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :param updated_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceNetworksListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if firewall_id is not None: + query_dict["firewall_id"] = firewall_id + if enclave_id is not None: + query_dict["enclave_id"] = enclave_id + if created_at is not None: + query_dict["created_at"] = created_at + if updated_at is not None: + query_dict["updated_at"] = updated_at + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'networks'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceNetworksListOutput.from_dict) + + def get(self, instance_id: str, network_id: str) -> DashboardInstanceNetworksGetOutput: + """ + Get network + Retrieves a specific network by ID. + + :param instance_id: str + :param network_id: str + :return: DashboardInstanceNetworksGetOutput + """ + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'networks', network_id] + ) + return self._get(request).transform(mapDashboardInstanceNetworksGetOutput.from_dict) + + def list_network_logs(self, instance_id: str, *, direction: str, enclave_id: Optional[Union[str, List[str]]] = None, hostname: Optional[Union[str, List[str]]] = None, ip: Optional[Union[str, List[str]]] = None, from_: Optional[str] = None, to: Optional[str] = None, interval_minutes: Optional[float] = None) -> DashboardInstanceNetworksListNetworkLogsOutput: + """ + List network logs + Returns ingress or egress network logs for enclaves in the instance environment. + + :param instance_id: str + :param direction: str + :param enclave_id: Optional[Union[str, List[str]]] (optional) + :param hostname: Optional[Union[str, List[str]]] (optional) + :param ip: Optional[Union[str, List[str]]] (optional) + :param from_: Optional[str] (optional) + :param to: Optional[str] (optional) + :param interval_minutes: Optional[float] (optional) + :return: DashboardInstanceNetworksListNetworkLogsOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + query_dict["direction"] = direction + if enclave_id is not None: + query_dict["enclave_id"] = enclave_id + if hostname is not None: + query_dict["hostname"] = hostname + if ip is not None: + query_dict["ip"] = ip + if from_ is not None: + query_dict["from"] = from_ + if to is not None: + query_dict["to"] = to + if interval_minutes is not None: + query_dict["interval_minutes"] = interval_minutes + + request = MetorialRequest( + path=['dashboard', 'instances', instance_id, 'network-logs'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceNetworksListNetworkLogsOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_provider_templates.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_provider_templates.py index cfc87f0d..24d143b6 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_provider_templates.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_provider_templates.py @@ -66,7 +66,7 @@ def get(self, instance_id: str, provider_template_id: str) -> DashboardInstanceP ) return self._get(request).transform(mapDashboardInstanceProviderTemplatesGetOutput.from_dict) - def create(self, instance_id: str, *, name: str, providers: List[Dict[str, Any]], description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None) -> DashboardInstanceProviderTemplatesCreateOutput: + def create(self, instance_id: str, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, providers: Optional[List[Dict[str, Any]]] = None, integration_id: Optional[str] = None) -> DashboardInstanceProviderTemplatesCreateOutput: """ Create provider template Creates a new provider template from an existing provider deployment or creates a minimal backing deployment first. @@ -75,7 +75,8 @@ def create(self, instance_id: str, *, name: str, providers: List[Dict[str, Any]] :param name: str :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) - :param providers: List[Dict[str, Any]] + :param providers: Optional[List[Dict[str, Any]]] (optional) + :param integration_id: Optional[str] (optional) :return: DashboardInstanceProviderTemplatesCreateOutput """ # Build body parameters from keyword arguments @@ -85,7 +86,10 @@ def create(self, instance_id: str, *, name: str, providers: List[Dict[str, Any]] body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata - body_dict["providers"] = providers + if providers is not None: + body_dict["providers"] = providers + if integration_id is not None: + body_dict["integration_id"] = integration_id request = MetorialRequest( path=['dashboard', 'instances', instance_id, 'provider-templates'], diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_providers_tools.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_provider_tools.py similarity index 76% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_providers_tools.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_provider_tools.py index fe68855e..06281302 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_providers_tools.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_provider_tools.py @@ -1,14 +1,14 @@ from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstanceProvidersToolsListOutput, DashboardInstanceProvidersToolsListOutput, mapDashboardInstanceProvidersToolsListQuery, DashboardInstanceProvidersToolsListQuery, mapDashboardInstanceProvidersToolsGetOutput, DashboardInstanceProvidersToolsGetOutput +from ..resources import mapDashboardInstanceProviderToolsListOutput, DashboardInstanceProviderToolsListOutput, mapDashboardInstanceProviderToolsListQuery, DashboardInstanceProviderToolsListQuery, mapDashboardInstanceProviderToolsGetOutput, DashboardInstanceProviderToolsGetOutput -class MetorialDashboardInstanceProvidersToolsEndpoint(BaseMetorialEndpoint): +class MetorialDashboardInstanceProviderToolsEndpoint(BaseMetorialEndpoint): """A tool is a single action a provider can perform like 'search_issues' or 'send_message'. Tools are what AI agents call via MCP. By default, tools from the latest provider version are returned. Use the optional version filter to get tools for a specific version.""" def __init__(self, config: MetorialEndpointManager): super().__init__(config) - def list(self, instance_id: str, *, provider_version_id: str, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None) -> DashboardInstanceProvidersToolsListOutput: + def list(self, instance_id: str, *, provider_version_id: str, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None) -> DashboardInstanceProviderToolsListOutput: """ List provider tools Returns a paginated list of provider tools. By default returns tools from the latest version. Use optional filters to get tools for a specific version. @@ -20,7 +20,7 @@ def list(self, instance_id: str, *, provider_version_id: str, limit: Optional[fl :param cursor: Optional[str] (optional) :param order: Optional[str] (optional) :param provider_version_id: str - :return: DashboardInstanceProvidersToolsListOutput + :return: DashboardInstanceProviderToolsListOutput """ # Build query parameters from keyword arguments query_dict = {} @@ -37,21 +37,21 @@ def list(self, instance_id: str, *, provider_version_id: str, limit: Optional[fl query_dict["provider_version_id"] = provider_version_id request = MetorialRequest( - path=['dashboard', 'instances', instance_id, 'providers-tools'], + path=['dashboard', 'instances', instance_id, 'provider-tools'], query=query_dict ) - return self._get(request).transform(mapDashboardInstanceProvidersToolsListOutput.from_dict) + return self._get(request).transform(mapDashboardInstanceProviderToolsListOutput.from_dict) - def get(self, instance_id: str, provider_tool_id: str) -> DashboardInstanceProvidersToolsGetOutput: + def get(self, instance_id: str, provider_tool_id: str) -> DashboardInstanceProviderToolsGetOutput: """ Get provider tool Retrieves a specific provider tool by ID. :param instance_id: str :param provider_tool_id: str - :return: DashboardInstanceProvidersToolsGetOutput + :return: DashboardInstanceProviderToolsGetOutput """ request = MetorialRequest( - path=['dashboard', 'instances', instance_id, 'providers-tools', provider_tool_id] + path=['dashboard', 'instances', instance_id, 'provider-tools', provider_tool_id] ) - return self._get(request).transform(mapDashboardInstanceProvidersToolsGetOutput.from_dict) \ No newline at end of file + return self._get(request).transform(mapDashboardInstanceProviderToolsGetOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/enclaves.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/enclaves.py new file mode 100644 index 00000000..6dbaf3a2 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/enclaves.py @@ -0,0 +1,74 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceEnclavesListOutput, DashboardInstanceEnclavesListOutput, mapDashboardInstanceEnclavesListQuery, DashboardInstanceEnclavesListQuery, mapDashboardInstanceEnclavesGetOutput, DashboardInstanceEnclavesGetOutput + +class MetorialEnclavesEndpoint(BaseMetorialEndpoint): + """Read enclave records for provider deployments in an instance.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, slug: Optional[Union[str, List[str]]] = None, network_id: Optional[Union[str, List[str]]] = None, provider_deployment_id: Optional[Union[str, List[str]]] = None, provider_id: Optional[Union[str, List[str]]] = None, firewall_id: Optional[Union[str, List[str]]] = None, created_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceEnclavesListOutput: + """ + List enclaves + Returns a paginated list of enclaves. + + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param slug: Optional[Union[str, List[str]]] (optional) + :param network_id: Optional[Union[str, List[str]]] (optional) + :param provider_deployment_id: Optional[Union[str, List[str]]] (optional) + :param provider_id: Optional[Union[str, List[str]]] (optional) + :param firewall_id: Optional[Union[str, List[str]]] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceEnclavesListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if slug is not None: + query_dict["slug"] = slug + if network_id is not None: + query_dict["network_id"] = network_id + if provider_deployment_id is not None: + query_dict["provider_deployment_id"] = provider_deployment_id + if provider_id is not None: + query_dict["provider_id"] = provider_id + if firewall_id is not None: + query_dict["firewall_id"] = firewall_id + if created_at is not None: + query_dict["created_at"] = created_at + + request = MetorialRequest( + path=['enclaves'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceEnclavesListOutput.from_dict) + + def get(self, enclave_id: str) -> DashboardInstanceEnclavesGetOutput: + """ + Get enclave + Retrieves a specific enclave by ID. + + :param enclave_id: str + :return: DashboardInstanceEnclavesGetOutput + """ + request = MetorialRequest( + path=['enclaves', enclave_id] + ) + return self._get(request).transform(mapDashboardInstanceEnclavesGetOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/firewall_bindings.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/firewall_bindings.py new file mode 100644 index 00000000..7628ca77 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/firewall_bindings.py @@ -0,0 +1,116 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceFirewallBindingsListOutput, DashboardInstanceFirewallBindingsListOutput, mapDashboardInstanceFirewallBindingsListQuery, DashboardInstanceFirewallBindingsListQuery, mapDashboardInstanceFirewallBindingsGetOutput, DashboardInstanceFirewallBindingsGetOutput, mapDashboardInstanceFirewallBindingsCreateOutput, DashboardInstanceFirewallBindingsCreateOutput, mapDashboardInstanceFirewallBindingsCreateBody, DashboardInstanceFirewallBindingsCreateBody, mapDashboardInstanceFirewallBindingsDeleteOutput, DashboardInstanceFirewallBindingsDeleteOutput + +class MetorialFirewallBindingsEndpoint(BaseMetorialEndpoint): + """Manage bindings that apply firewalls to enclaves, providers, or networks.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, firewall_id: Optional[Union[str, List[str]]] = None, enclave_id: Optional[Union[str, List[str]]] = None, provider_id: Optional[Union[str, List[str]]] = None, network_id: Optional[Union[str, List[str]]] = None, target_type: Optional[Union[str, List[str]]] = None, created_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceFirewallBindingsListOutput: + """ + List firewall bindings + Returns a paginated list of firewall bindings. + + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param firewall_id: Optional[Union[str, List[str]]] (optional) + :param enclave_id: Optional[Union[str, List[str]]] (optional) + :param provider_id: Optional[Union[str, List[str]]] (optional) + :param network_id: Optional[Union[str, List[str]]] (optional) + :param target_type: Optional[Union[str, List[str]]] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceFirewallBindingsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if firewall_id is not None: + query_dict["firewall_id"] = firewall_id + if enclave_id is not None: + query_dict["enclave_id"] = enclave_id + if provider_id is not None: + query_dict["provider_id"] = provider_id + if network_id is not None: + query_dict["network_id"] = network_id + if target_type is not None: + query_dict["target_type"] = target_type + if created_at is not None: + query_dict["created_at"] = created_at + + request = MetorialRequest( + path=['firewall-bindings'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceFirewallBindingsListOutput.from_dict) + + def get(self, firewall_binding_id: str) -> DashboardInstanceFirewallBindingsGetOutput: + """ + Get firewall binding + Retrieves a specific firewall binding by ID. + + :param firewall_binding_id: str + :return: DashboardInstanceFirewallBindingsGetOutput + """ + request = MetorialRequest( + path=['firewall-bindings', firewall_binding_id] + ) + return self._get(request).transform(mapDashboardInstanceFirewallBindingsGetOutput.from_dict) + + def create(self, *, firewall_id: str, target_type: str, enclave_id: Optional[str] = None, provider_id: Optional[str] = None, network_id: Optional[str] = None) -> DashboardInstanceFirewallBindingsCreateOutput: + """ + Create firewall binding + Creates a binding that applies a firewall to a target. + + :param firewall_id: str + :param target_type: str + :param enclave_id: Optional[str] (optional) + :param provider_id: Optional[str] (optional) + :param network_id: Optional[str] (optional) + :return: DashboardInstanceFirewallBindingsCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["firewall_id"] = firewall_id + body_dict["target_type"] = target_type + if enclave_id is not None: + body_dict["enclave_id"] = enclave_id + if provider_id is not None: + body_dict["provider_id"] = provider_id + if network_id is not None: + body_dict["network_id"] = network_id + + request = MetorialRequest( + path=['firewall-bindings'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceFirewallBindingsCreateOutput.from_dict) + + def delete(self, firewall_binding_id: str) -> DashboardInstanceFirewallBindingsDeleteOutput: + """ + Delete firewall binding + Deletes a firewall binding. + + :param firewall_binding_id: str + :return: DashboardInstanceFirewallBindingsDeleteOutput + """ + request = MetorialRequest( + path=['firewall-bindings', firewall_binding_id] + ) + return self._delete(request).transform(mapDashboardInstanceFirewallBindingsDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/firewalls.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/firewalls.py new file mode 100644 index 00000000..c422cfb6 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/firewalls.py @@ -0,0 +1,154 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceFirewallsListOutput, DashboardInstanceFirewallsListOutput, mapDashboardInstanceFirewallsListQuery, DashboardInstanceFirewallsListQuery, mapDashboardInstanceFirewallsGetOutput, DashboardInstanceFirewallsGetOutput, mapDashboardInstanceFirewallsCreateOutput, DashboardInstanceFirewallsCreateOutput, mapDashboardInstanceFirewallsCreateBody, DashboardInstanceFirewallsCreateBody, mapDashboardInstanceFirewallsUpdateOutput, DashboardInstanceFirewallsUpdateOutput, mapDashboardInstanceFirewallsUpdateBody, DashboardInstanceFirewallsUpdateBody, mapDashboardInstanceFirewallsDeleteOutput, DashboardInstanceFirewallsDeleteOutput + +class MetorialFirewallsEndpoint(BaseMetorialEndpoint): + """Manage firewalls and their attached network policies.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, slug: Optional[Union[str, List[str]]] = None, status: Optional[Union[str, List[str]]] = None, network_id: Optional[Union[str, List[str]]] = None, enclave_id: Optional[Union[str, List[str]]] = None, provider_id: Optional[Union[str, List[str]]] = None, network_policy_id: Optional[Union[str, List[str]]] = None, created_at: Optional[Dict[str, Any]] = None, updated_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceFirewallsListOutput: + """ + List firewalls + Returns a paginated list of firewalls. + + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param slug: Optional[Union[str, List[str]]] (optional) + :param status: Optional[Union[str, List[str]]] (optional) + :param network_id: Optional[Union[str, List[str]]] (optional) + :param enclave_id: Optional[Union[str, List[str]]] (optional) + :param provider_id: Optional[Union[str, List[str]]] (optional) + :param network_policy_id: Optional[Union[str, List[str]]] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :param updated_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceFirewallsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if slug is not None: + query_dict["slug"] = slug + if status is not None: + query_dict["status"] = status + if network_id is not None: + query_dict["network_id"] = network_id + if enclave_id is not None: + query_dict["enclave_id"] = enclave_id + if provider_id is not None: + query_dict["provider_id"] = provider_id + if network_policy_id is not None: + query_dict["network_policy_id"] = network_policy_id + if created_at is not None: + query_dict["created_at"] = created_at + if updated_at is not None: + query_dict["updated_at"] = updated_at + + request = MetorialRequest( + path=['firewalls'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceFirewallsListOutput.from_dict) + + def get(self, firewall_id: str) -> DashboardInstanceFirewallsGetOutput: + """ + Get firewall + Retrieves a specific firewall by ID. + + :param firewall_id: str + :return: DashboardInstanceFirewallsGetOutput + """ + request = MetorialRequest( + path=['firewalls', firewall_id] + ) + return self._get(request).transform(mapDashboardInstanceFirewallsGetOutput.from_dict) + + def create(self, *, name: str, network_id: str, description: Optional[str] = None, slug: Optional[str] = None, bindings: Optional[List[Dict[str, Any]]] = None, network_policy_ids: Optional[List[str]] = None) -> DashboardInstanceFirewallsCreateOutput: + """ + Create firewall + Creates a new firewall. + + :param name: str + :param description: Optional[str] (optional) + :param slug: Optional[str] (optional) + :param network_id: str + :param bindings: Optional[List[Dict[str, Any]]] (optional) + :param network_policy_ids: Optional[List[str]] (optional) + :return: DashboardInstanceFirewallsCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if slug is not None: + body_dict["slug"] = slug + body_dict["network_id"] = network_id + if bindings is not None: + body_dict["bindings"] = bindings + if network_policy_ids is not None: + body_dict["network_policy_ids"] = network_policy_ids + + request = MetorialRequest( + path=['firewalls'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceFirewallsCreateOutput.from_dict) + + def update(self, firewall_id: str, *, name: Optional[str] = None, description: Optional[str] = None, slug: Optional[str] = None, network_policy_ids: Optional[List[str]] = None) -> DashboardInstanceFirewallsUpdateOutput: + """ + Update firewall + Updates a firewall definition. + + :param firewall_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param slug: Optional[str] (optional) + :param network_policy_ids: Optional[List[str]] (optional) + :return: DashboardInstanceFirewallsUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if name is not None: + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if slug is not None: + body_dict["slug"] = slug + if network_policy_ids is not None: + body_dict["network_policy_ids"] = network_policy_ids + + request = MetorialRequest( + path=['firewalls', firewall_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstanceFirewallsUpdateOutput.from_dict) + + def delete(self, firewall_id: str) -> DashboardInstanceFirewallsDeleteOutput: + """ + Delete firewall + Archives a firewall. + + :param firewall_id: str + :return: DashboardInstanceFirewallsDeleteOutput + """ + request = MetorialRequest( + path=['firewalls', firewall_id] + ) + return self._delete(request).transform(mapDashboardInstanceFirewallsDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/firewalls_network_policies.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/firewalls_network_policies.py new file mode 100644 index 00000000..9434aeb8 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/firewalls_network_policies.py @@ -0,0 +1,45 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceFirewallsNetworkPoliciesAttachOutput, DashboardInstanceFirewallsNetworkPoliciesAttachOutput, mapDashboardInstanceFirewallsNetworkPoliciesAttachBody, DashboardInstanceFirewallsNetworkPoliciesAttachBody, mapDashboardInstanceFirewallsNetworkPoliciesDetachOutput, DashboardInstanceFirewallsNetworkPoliciesDetachOutput + +class MetorialFirewallsNetworkPoliciesEndpoint(BaseMetorialEndpoint): + """Manage firewalls and their attached network policies.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def attach(self, firewall_id: str, *, network_policy_id: str, position: Optional[float] = None) -> DashboardInstanceFirewallsNetworkPoliciesAttachOutput: + """ + Attach network policy + Attaches a network policy to a firewall. + + :param firewall_id: str + :param network_policy_id: str + :param position: Optional[float] (optional) + :return: DashboardInstanceFirewallsNetworkPoliciesAttachOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["network_policy_id"] = network_policy_id + if position is not None: + body_dict["position"] = position + + request = MetorialRequest( + path=['firewalls', firewall_id, 'network-policies'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceFirewallsNetworkPoliciesAttachOutput.from_dict) + + def detach(self, firewall_id: str, network_policy_id: str) -> DashboardInstanceFirewallsNetworkPoliciesDetachOutput: + """ + Detach network policy + Detaches a network policy from a firewall. + + :param firewall_id: str + :param network_policy_id: str + :return: DashboardInstanceFirewallsNetworkPoliciesDetachOutput + """ + request = MetorialRequest( + path=['firewalls', firewall_id, 'network-policies', network_policy_id] + ) + return self._delete(request).transform(mapDashboardInstanceFirewallsNetworkPoliciesDetachOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_enclaves.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_enclaves.py new file mode 100644 index 00000000..291594ca --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_enclaves.py @@ -0,0 +1,76 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceEnclavesListOutput, DashboardInstanceEnclavesListOutput, mapDashboardInstanceEnclavesListQuery, DashboardInstanceEnclavesListQuery, mapDashboardInstanceEnclavesGetOutput, DashboardInstanceEnclavesGetOutput + +class MetorialManagementInstanceEnclavesEndpoint(BaseMetorialEndpoint): + """Read enclave records for provider deployments in an instance.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, slug: Optional[Union[str, List[str]]] = None, network_id: Optional[Union[str, List[str]]] = None, provider_deployment_id: Optional[Union[str, List[str]]] = None, provider_id: Optional[Union[str, List[str]]] = None, firewall_id: Optional[Union[str, List[str]]] = None, created_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceEnclavesListOutput: + """ + List enclaves + Returns a paginated list of enclaves. + + :param instance_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param slug: Optional[Union[str, List[str]]] (optional) + :param network_id: Optional[Union[str, List[str]]] (optional) + :param provider_deployment_id: Optional[Union[str, List[str]]] (optional) + :param provider_id: Optional[Union[str, List[str]]] (optional) + :param firewall_id: Optional[Union[str, List[str]]] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceEnclavesListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if slug is not None: + query_dict["slug"] = slug + if network_id is not None: + query_dict["network_id"] = network_id + if provider_deployment_id is not None: + query_dict["provider_deployment_id"] = provider_deployment_id + if provider_id is not None: + query_dict["provider_id"] = provider_id + if firewall_id is not None: + query_dict["firewall_id"] = firewall_id + if created_at is not None: + query_dict["created_at"] = created_at + + request = MetorialRequest( + path=['instances', instance_id, 'enclaves'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceEnclavesListOutput.from_dict) + + def get(self, instance_id: str, enclave_id: str) -> DashboardInstanceEnclavesGetOutput: + """ + Get enclave + Retrieves a specific enclave by ID. + + :param instance_id: str + :param enclave_id: str + :return: DashboardInstanceEnclavesGetOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'enclaves', enclave_id] + ) + return self._get(request).transform(mapDashboardInstanceEnclavesGetOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_firewall_bindings.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_firewall_bindings.py new file mode 100644 index 00000000..14d7904c --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_firewall_bindings.py @@ -0,0 +1,120 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceFirewallBindingsListOutput, DashboardInstanceFirewallBindingsListOutput, mapDashboardInstanceFirewallBindingsListQuery, DashboardInstanceFirewallBindingsListQuery, mapDashboardInstanceFirewallBindingsGetOutput, DashboardInstanceFirewallBindingsGetOutput, mapDashboardInstanceFirewallBindingsCreateOutput, DashboardInstanceFirewallBindingsCreateOutput, mapDashboardInstanceFirewallBindingsCreateBody, DashboardInstanceFirewallBindingsCreateBody, mapDashboardInstanceFirewallBindingsDeleteOutput, DashboardInstanceFirewallBindingsDeleteOutput + +class MetorialManagementInstanceFirewallBindingsEndpoint(BaseMetorialEndpoint): + """Manage bindings that apply firewalls to enclaves, providers, or networks.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, firewall_id: Optional[Union[str, List[str]]] = None, enclave_id: Optional[Union[str, List[str]]] = None, provider_id: Optional[Union[str, List[str]]] = None, network_id: Optional[Union[str, List[str]]] = None, target_type: Optional[Union[str, List[str]]] = None, created_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceFirewallBindingsListOutput: + """ + List firewall bindings + Returns a paginated list of firewall bindings. + + :param instance_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param firewall_id: Optional[Union[str, List[str]]] (optional) + :param enclave_id: Optional[Union[str, List[str]]] (optional) + :param provider_id: Optional[Union[str, List[str]]] (optional) + :param network_id: Optional[Union[str, List[str]]] (optional) + :param target_type: Optional[Union[str, List[str]]] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceFirewallBindingsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if firewall_id is not None: + query_dict["firewall_id"] = firewall_id + if enclave_id is not None: + query_dict["enclave_id"] = enclave_id + if provider_id is not None: + query_dict["provider_id"] = provider_id + if network_id is not None: + query_dict["network_id"] = network_id + if target_type is not None: + query_dict["target_type"] = target_type + if created_at is not None: + query_dict["created_at"] = created_at + + request = MetorialRequest( + path=['instances', instance_id, 'firewall-bindings'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceFirewallBindingsListOutput.from_dict) + + def get(self, instance_id: str, firewall_binding_id: str) -> DashboardInstanceFirewallBindingsGetOutput: + """ + Get firewall binding + Retrieves a specific firewall binding by ID. + + :param instance_id: str + :param firewall_binding_id: str + :return: DashboardInstanceFirewallBindingsGetOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'firewall-bindings', firewall_binding_id] + ) + return self._get(request).transform(mapDashboardInstanceFirewallBindingsGetOutput.from_dict) + + def create(self, instance_id: str, *, firewall_id: str, target_type: str, enclave_id: Optional[str] = None, provider_id: Optional[str] = None, network_id: Optional[str] = None) -> DashboardInstanceFirewallBindingsCreateOutput: + """ + Create firewall binding + Creates a binding that applies a firewall to a target. + + :param instance_id: str + :param firewall_id: str + :param target_type: str + :param enclave_id: Optional[str] (optional) + :param provider_id: Optional[str] (optional) + :param network_id: Optional[str] (optional) + :return: DashboardInstanceFirewallBindingsCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["firewall_id"] = firewall_id + body_dict["target_type"] = target_type + if enclave_id is not None: + body_dict["enclave_id"] = enclave_id + if provider_id is not None: + body_dict["provider_id"] = provider_id + if network_id is not None: + body_dict["network_id"] = network_id + + request = MetorialRequest( + path=['instances', instance_id, 'firewall-bindings'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceFirewallBindingsCreateOutput.from_dict) + + def delete(self, instance_id: str, firewall_binding_id: str) -> DashboardInstanceFirewallBindingsDeleteOutput: + """ + Delete firewall binding + Deletes a firewall binding. + + :param instance_id: str + :param firewall_binding_id: str + :return: DashboardInstanceFirewallBindingsDeleteOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'firewall-bindings', firewall_binding_id] + ) + return self._delete(request).transform(mapDashboardInstanceFirewallBindingsDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_firewalls.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_firewalls.py new file mode 100644 index 00000000..4d13dc6b --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_firewalls.py @@ -0,0 +1,159 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceFirewallsListOutput, DashboardInstanceFirewallsListOutput, mapDashboardInstanceFirewallsListQuery, DashboardInstanceFirewallsListQuery, mapDashboardInstanceFirewallsGetOutput, DashboardInstanceFirewallsGetOutput, mapDashboardInstanceFirewallsCreateOutput, DashboardInstanceFirewallsCreateOutput, mapDashboardInstanceFirewallsCreateBody, DashboardInstanceFirewallsCreateBody, mapDashboardInstanceFirewallsUpdateOutput, DashboardInstanceFirewallsUpdateOutput, mapDashboardInstanceFirewallsUpdateBody, DashboardInstanceFirewallsUpdateBody, mapDashboardInstanceFirewallsDeleteOutput, DashboardInstanceFirewallsDeleteOutput + +class MetorialManagementInstanceFirewallsEndpoint(BaseMetorialEndpoint): + """Manage firewalls and their attached network policies.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, slug: Optional[Union[str, List[str]]] = None, status: Optional[Union[str, List[str]]] = None, network_id: Optional[Union[str, List[str]]] = None, enclave_id: Optional[Union[str, List[str]]] = None, provider_id: Optional[Union[str, List[str]]] = None, network_policy_id: Optional[Union[str, List[str]]] = None, created_at: Optional[Dict[str, Any]] = None, updated_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceFirewallsListOutput: + """ + List firewalls + Returns a paginated list of firewalls. + + :param instance_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param slug: Optional[Union[str, List[str]]] (optional) + :param status: Optional[Union[str, List[str]]] (optional) + :param network_id: Optional[Union[str, List[str]]] (optional) + :param enclave_id: Optional[Union[str, List[str]]] (optional) + :param provider_id: Optional[Union[str, List[str]]] (optional) + :param network_policy_id: Optional[Union[str, List[str]]] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :param updated_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceFirewallsListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if slug is not None: + query_dict["slug"] = slug + if status is not None: + query_dict["status"] = status + if network_id is not None: + query_dict["network_id"] = network_id + if enclave_id is not None: + query_dict["enclave_id"] = enclave_id + if provider_id is not None: + query_dict["provider_id"] = provider_id + if network_policy_id is not None: + query_dict["network_policy_id"] = network_policy_id + if created_at is not None: + query_dict["created_at"] = created_at + if updated_at is not None: + query_dict["updated_at"] = updated_at + + request = MetorialRequest( + path=['instances', instance_id, 'firewalls'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceFirewallsListOutput.from_dict) + + def get(self, instance_id: str, firewall_id: str) -> DashboardInstanceFirewallsGetOutput: + """ + Get firewall + Retrieves a specific firewall by ID. + + :param instance_id: str + :param firewall_id: str + :return: DashboardInstanceFirewallsGetOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'firewalls', firewall_id] + ) + return self._get(request).transform(mapDashboardInstanceFirewallsGetOutput.from_dict) + + def create(self, instance_id: str, *, name: str, network_id: str, description: Optional[str] = None, slug: Optional[str] = None, bindings: Optional[List[Dict[str, Any]]] = None, network_policy_ids: Optional[List[str]] = None) -> DashboardInstanceFirewallsCreateOutput: + """ + Create firewall + Creates a new firewall. + + :param instance_id: str + :param name: str + :param description: Optional[str] (optional) + :param slug: Optional[str] (optional) + :param network_id: str + :param bindings: Optional[List[Dict[str, Any]]] (optional) + :param network_policy_ids: Optional[List[str]] (optional) + :return: DashboardInstanceFirewallsCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if slug is not None: + body_dict["slug"] = slug + body_dict["network_id"] = network_id + if bindings is not None: + body_dict["bindings"] = bindings + if network_policy_ids is not None: + body_dict["network_policy_ids"] = network_policy_ids + + request = MetorialRequest( + path=['instances', instance_id, 'firewalls'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceFirewallsCreateOutput.from_dict) + + def update(self, instance_id: str, firewall_id: str, *, name: Optional[str] = None, description: Optional[str] = None, slug: Optional[str] = None, network_policy_ids: Optional[List[str]] = None) -> DashboardInstanceFirewallsUpdateOutput: + """ + Update firewall + Updates a firewall definition. + + :param instance_id: str + :param firewall_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param slug: Optional[str] (optional) + :param network_policy_ids: Optional[List[str]] (optional) + :return: DashboardInstanceFirewallsUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if name is not None: + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if slug is not None: + body_dict["slug"] = slug + if network_policy_ids is not None: + body_dict["network_policy_ids"] = network_policy_ids + + request = MetorialRequest( + path=['instances', instance_id, 'firewalls', firewall_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstanceFirewallsUpdateOutput.from_dict) + + def delete(self, instance_id: str, firewall_id: str) -> DashboardInstanceFirewallsDeleteOutput: + """ + Delete firewall + Archives a firewall. + + :param instance_id: str + :param firewall_id: str + :return: DashboardInstanceFirewallsDeleteOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'firewalls', firewall_id] + ) + return self._delete(request).transform(mapDashboardInstanceFirewallsDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_firewalls_network_policies.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_firewalls_network_policies.py new file mode 100644 index 00000000..9ea3075b --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_firewalls_network_policies.py @@ -0,0 +1,47 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceFirewallsNetworkPoliciesAttachOutput, DashboardInstanceFirewallsNetworkPoliciesAttachOutput, mapDashboardInstanceFirewallsNetworkPoliciesAttachBody, DashboardInstanceFirewallsNetworkPoliciesAttachBody, mapDashboardInstanceFirewallsNetworkPoliciesDetachOutput, DashboardInstanceFirewallsNetworkPoliciesDetachOutput + +class MetorialManagementInstanceFirewallsNetworkPoliciesEndpoint(BaseMetorialEndpoint): + """Manage firewalls and their attached network policies.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def attach(self, instance_id: str, firewall_id: str, *, network_policy_id: str, position: Optional[float] = None) -> DashboardInstanceFirewallsNetworkPoliciesAttachOutput: + """ + Attach network policy + Attaches a network policy to a firewall. + + :param instance_id: str + :param firewall_id: str + :param network_policy_id: str + :param position: Optional[float] (optional) + :return: DashboardInstanceFirewallsNetworkPoliciesAttachOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["network_policy_id"] = network_policy_id + if position is not None: + body_dict["position"] = position + + request = MetorialRequest( + path=['instances', instance_id, 'firewalls', firewall_id, 'network-policies'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceFirewallsNetworkPoliciesAttachOutput.from_dict) + + def detach(self, instance_id: str, firewall_id: str, network_policy_id: str) -> DashboardInstanceFirewallsNetworkPoliciesDetachOutput: + """ + Detach network policy + Detaches a network policy from a firewall. + + :param instance_id: str + :param firewall_id: str + :param network_policy_id: str + :return: DashboardInstanceFirewallsNetworkPoliciesDetachOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'firewalls', firewall_id, 'network-policies', network_policy_id] + ) + return self._delete(request).transform(mapDashboardInstanceFirewallsNetworkPoliciesDetachOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_network_policies.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_network_policies.py new file mode 100644 index 00000000..9a10d1ce --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_network_policies.py @@ -0,0 +1,139 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceNetworkPoliciesListOutput, DashboardInstanceNetworkPoliciesListOutput, mapDashboardInstanceNetworkPoliciesListQuery, DashboardInstanceNetworkPoliciesListQuery, mapDashboardInstanceNetworkPoliciesGetOutput, DashboardInstanceNetworkPoliciesGetOutput, mapDashboardInstanceNetworkPoliciesCreateOutput, DashboardInstanceNetworkPoliciesCreateOutput, mapDashboardInstanceNetworkPoliciesCreateBody, DashboardInstanceNetworkPoliciesCreateBody, mapDashboardInstanceNetworkPoliciesUpdateOutput, DashboardInstanceNetworkPoliciesUpdateOutput, mapDashboardInstanceNetworkPoliciesUpdateBody, DashboardInstanceNetworkPoliciesUpdateBody, mapDashboardInstanceNetworkPoliciesDeleteOutput, DashboardInstanceNetworkPoliciesDeleteOutput + +class MetorialManagementInstanceNetworkPoliciesEndpoint(BaseMetorialEndpoint): + """Manage reusable network policy definitions and their rules.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, status: Optional[Union[str, List[str]]] = None, firewall_id: Optional[Union[str, List[str]]] = None, search: Optional[str] = None, created_at: Optional[Dict[str, Any]] = None, updated_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceNetworkPoliciesListOutput: + """ + List network policies + Returns a paginated list of network policies. + + :param instance_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param status: Optional[Union[str, List[str]]] (optional) + :param firewall_id: Optional[Union[str, List[str]]] (optional) + :param search: Optional[str] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :param updated_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceNetworkPoliciesListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if status is not None: + query_dict["status"] = status + if firewall_id is not None: + query_dict["firewall_id"] = firewall_id + if search is not None: + query_dict["search"] = search + if created_at is not None: + query_dict["created_at"] = created_at + if updated_at is not None: + query_dict["updated_at"] = updated_at + + request = MetorialRequest( + path=['instances', instance_id, 'network-policies'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceNetworkPoliciesListOutput.from_dict) + + def get(self, instance_id: str, network_policy_id: str) -> DashboardInstanceNetworkPoliciesGetOutput: + """ + Get network policy + Retrieves a specific network policy by ID. + + :param instance_id: str + :param network_policy_id: str + :return: DashboardInstanceNetworkPoliciesGetOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'network-policies', network_policy_id] + ) + return self._get(request).transform(mapDashboardInstanceNetworkPoliciesGetOutput.from_dict) + + def create(self, instance_id: str, *, name: str, description: Optional[str] = None, rules: Optional[List[Dict[str, Any]]] = None) -> DashboardInstanceNetworkPoliciesCreateOutput: + """ + Create network policy + Creates a new network policy. + + :param instance_id: str + :param name: str + :param description: Optional[str] (optional) + :param rules: Optional[List[Dict[str, Any]]] (optional) + :return: DashboardInstanceNetworkPoliciesCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if rules is not None: + body_dict["rules"] = rules + + request = MetorialRequest( + path=['instances', instance_id, 'network-policies'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceNetworkPoliciesCreateOutput.from_dict) + + def update(self, instance_id: str, network_policy_id: str, *, name: Optional[str] = None, description: Optional[str] = None, rules: Optional[List[Dict[str, Any]]] = None) -> DashboardInstanceNetworkPoliciesUpdateOutput: + """ + Update network policy + Updates a network policy definition. + + :param instance_id: str + :param network_policy_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param rules: Optional[List[Dict[str, Any]]] (optional) + :return: DashboardInstanceNetworkPoliciesUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if name is not None: + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if rules is not None: + body_dict["rules"] = rules + + request = MetorialRequest( + path=['instances', instance_id, 'network-policies', network_policy_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstanceNetworkPoliciesUpdateOutput.from_dict) + + def delete(self, instance_id: str, network_policy_id: str) -> DashboardInstanceNetworkPoliciesDeleteOutput: + """ + Delete network policy + Archives a network policy. + + :param instance_id: str + :param network_policy_id: str + :return: DashboardInstanceNetworkPoliciesDeleteOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'network-policies', network_policy_id] + ) + return self._delete(request).transform(mapDashboardInstanceNetworkPoliciesDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_network_policies_rules.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_network_policies_rules.py new file mode 100644 index 00000000..8db36013 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_network_policies_rules.py @@ -0,0 +1,93 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceNetworkPoliciesRulesCreateOutput, DashboardInstanceNetworkPoliciesRulesCreateOutput, mapDashboardInstanceNetworkPoliciesRulesCreateBody, DashboardInstanceNetworkPoliciesRulesCreateBody, mapDashboardInstanceNetworkPoliciesRulesUpdateOutput, DashboardInstanceNetworkPoliciesRulesUpdateOutput, mapDashboardInstanceNetworkPoliciesRulesUpdateBody, DashboardInstanceNetworkPoliciesRulesUpdateBody, mapDashboardInstanceNetworkPoliciesRulesDeleteOutput, DashboardInstanceNetworkPoliciesRulesDeleteOutput + +class MetorialManagementInstanceNetworkPoliciesRulesEndpoint(BaseMetorialEndpoint): + """Manage reusable network policy definitions and their rules.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def create(self, instance_id: str, network_policy_id: str, *, effect: str, direction: str, cidrs: List[str], enabled: bool, priority: float, description: Optional[str] = None, ports: Optional[List[Dict[str, Any]]] = None) -> DashboardInstanceNetworkPoliciesRulesCreateOutput: + """ + Create network policy rule + Adds a rule to a network policy. + + :param instance_id: str + :param network_policy_id: str + :param effect: str + :param direction: str + :param cidrs: List[str] + :param description: Optional[str] (optional) + :param enabled: bool + :param priority: float + :param ports: Optional[List[Dict[str, Any]]] (optional) + :return: DashboardInstanceNetworkPoliciesRulesCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["effect"] = effect + body_dict["direction"] = direction + body_dict["cidrs"] = cidrs + if description is not None: + body_dict["description"] = description + body_dict["enabled"] = enabled + body_dict["priority"] = priority + if ports is not None: + body_dict["ports"] = ports + + request = MetorialRequest( + path=['instances', instance_id, 'network-policies', network_policy_id, 'rules'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceNetworkPoliciesRulesCreateOutput.from_dict) + + def update(self, instance_id: str, network_policy_id: str, rule_id: str, *, effect: str, direction: str, cidrs: List[str], enabled: bool, priority: float, description: Optional[str] = None, ports: Optional[List[Dict[str, Any]]] = None) -> DashboardInstanceNetworkPoliciesRulesUpdateOutput: + """ + Update network policy rule + Updates a rule on a network policy. + + :param instance_id: str + :param network_policy_id: str + :param rule_id: str + :param effect: str + :param direction: str + :param cidrs: List[str] + :param description: Optional[str] (optional) + :param enabled: bool + :param priority: float + :param ports: Optional[List[Dict[str, Any]]] (optional) + :return: DashboardInstanceNetworkPoliciesRulesUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["effect"] = effect + body_dict["direction"] = direction + body_dict["cidrs"] = cidrs + if description is not None: + body_dict["description"] = description + body_dict["enabled"] = enabled + body_dict["priority"] = priority + if ports is not None: + body_dict["ports"] = ports + + request = MetorialRequest( + path=['instances', instance_id, 'network-policies', network_policy_id, 'rules', rule_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstanceNetworkPoliciesRulesUpdateOutput.from_dict) + + def delete(self, instance_id: str, network_policy_id: str, rule_id: str) -> DashboardInstanceNetworkPoliciesRulesDeleteOutput: + """ + Delete network policy rule + Removes a rule from a network policy. + + :param instance_id: str + :param network_policy_id: str + :param rule_id: str + :return: DashboardInstanceNetworkPoliciesRulesDeleteOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'network-policies', network_policy_id, 'rules', rule_id] + ) + return self._delete(request).transform(mapDashboardInstanceNetworkPoliciesRulesDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_networks.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_networks.py new file mode 100644 index 00000000..25c28a8c --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_networks.py @@ -0,0 +1,107 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceNetworksListOutput, DashboardInstanceNetworksListOutput, mapDashboardInstanceNetworksListQuery, DashboardInstanceNetworksListQuery, mapDashboardInstanceNetworksGetOutput, DashboardInstanceNetworksGetOutput, mapDashboardInstanceNetworksListNetworkLogsOutput, DashboardInstanceNetworksListNetworkLogsOutput, mapDashboardInstanceNetworksListNetworkLogsQuery, DashboardInstanceNetworksListNetworkLogsQuery + +class MetorialManagementInstanceNetworksEndpoint(BaseMetorialEndpoint): + """Read network records for an instance environment.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, instance_id: str, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, firewall_id: Optional[Union[str, List[str]]] = None, enclave_id: Optional[Union[str, List[str]]] = None, created_at: Optional[Dict[str, Any]] = None, updated_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceNetworksListOutput: + """ + List networks + Returns a paginated list of networks. + + :param instance_id: str + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param firewall_id: Optional[Union[str, List[str]]] (optional) + :param enclave_id: Optional[Union[str, List[str]]] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :param updated_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceNetworksListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if firewall_id is not None: + query_dict["firewall_id"] = firewall_id + if enclave_id is not None: + query_dict["enclave_id"] = enclave_id + if created_at is not None: + query_dict["created_at"] = created_at + if updated_at is not None: + query_dict["updated_at"] = updated_at + + request = MetorialRequest( + path=['instances', instance_id, 'networks'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceNetworksListOutput.from_dict) + + def get(self, instance_id: str, network_id: str) -> DashboardInstanceNetworksGetOutput: + """ + Get network + Retrieves a specific network by ID. + + :param instance_id: str + :param network_id: str + :return: DashboardInstanceNetworksGetOutput + """ + request = MetorialRequest( + path=['instances', instance_id, 'networks', network_id] + ) + return self._get(request).transform(mapDashboardInstanceNetworksGetOutput.from_dict) + + def list_network_logs(self, instance_id: str, *, direction: str, enclave_id: Optional[Union[str, List[str]]] = None, hostname: Optional[Union[str, List[str]]] = None, ip: Optional[Union[str, List[str]]] = None, from_: Optional[str] = None, to: Optional[str] = None, interval_minutes: Optional[float] = None) -> DashboardInstanceNetworksListNetworkLogsOutput: + """ + List network logs + Returns ingress or egress network logs for enclaves in the instance environment. + + :param instance_id: str + :param direction: str + :param enclave_id: Optional[Union[str, List[str]]] (optional) + :param hostname: Optional[Union[str, List[str]]] (optional) + :param ip: Optional[Union[str, List[str]]] (optional) + :param from_: Optional[str] (optional) + :param to: Optional[str] (optional) + :param interval_minutes: Optional[float] (optional) + :return: DashboardInstanceNetworksListNetworkLogsOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + query_dict["direction"] = direction + if enclave_id is not None: + query_dict["enclave_id"] = enclave_id + if hostname is not None: + query_dict["hostname"] = hostname + if ip is not None: + query_dict["ip"] = ip + if from_ is not None: + query_dict["from"] = from_ + if to is not None: + query_dict["to"] = to + if interval_minutes is not None: + query_dict["interval_minutes"] = interval_minutes + + request = MetorialRequest( + path=['instances', instance_id, 'network-logs'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceNetworksListNetworkLogsOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_provider_templates.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_provider_templates.py index 8158b57b..8becdcae 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_provider_templates.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_provider_templates.py @@ -66,7 +66,7 @@ def get(self, instance_id: str, provider_template_id: str) -> DashboardInstanceP ) return self._get(request).transform(mapDashboardInstanceProviderTemplatesGetOutput.from_dict) - def create(self, instance_id: str, *, name: str, providers: List[Dict[str, Any]], description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None) -> DashboardInstanceProviderTemplatesCreateOutput: + def create(self, instance_id: str, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, providers: Optional[List[Dict[str, Any]]] = None, integration_id: Optional[str] = None) -> DashboardInstanceProviderTemplatesCreateOutput: """ Create provider template Creates a new provider template from an existing provider deployment or creates a minimal backing deployment first. @@ -75,7 +75,8 @@ def create(self, instance_id: str, *, name: str, providers: List[Dict[str, Any]] :param name: str :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) - :param providers: List[Dict[str, Any]] + :param providers: Optional[List[Dict[str, Any]]] (optional) + :param integration_id: Optional[str] (optional) :return: DashboardInstanceProviderTemplatesCreateOutput """ # Build body parameters from keyword arguments @@ -85,7 +86,10 @@ def create(self, instance_id: str, *, name: str, providers: List[Dict[str, Any]] body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata - body_dict["providers"] = providers + if providers is not None: + body_dict["providers"] = providers + if integration_id is not None: + body_dict["integration_id"] = integration_id request = MetorialRequest( path=['instances', instance_id, 'provider-templates'], diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_providers_tools.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_provider_tools.py similarity index 72% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_providers_tools.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_provider_tools.py index d7a7f1bf..962325c7 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_providers_tools.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_provider_tools.py @@ -1,14 +1,14 @@ from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstanceProvidersToolsListOutput, DashboardInstanceProvidersToolsListOutput, mapDashboardInstanceProvidersToolsListQuery, DashboardInstanceProvidersToolsListQuery, mapDashboardInstanceProvidersToolsGetOutput, DashboardInstanceProvidersToolsGetOutput +from ..resources import mapDashboardInstanceProviderToolsListOutput, DashboardInstanceProviderToolsListOutput, mapDashboardInstanceProviderToolsListQuery, DashboardInstanceProviderToolsListQuery, mapDashboardInstanceProviderToolsGetOutput, DashboardInstanceProviderToolsGetOutput -class MetorialManagementInstanceProvidersToolsEndpoint(BaseMetorialEndpoint): +class MetorialManagementInstanceProviderToolsEndpoint(BaseMetorialEndpoint): """A tool is a single action a provider can perform like 'search_issues' or 'send_message'. Tools are what AI agents call via MCP. By default, tools from the latest provider version are returned. Use the optional version filter to get tools for a specific version.""" def __init__(self, config: MetorialEndpointManager): super().__init__(config) - def list(self, instance_id: str, *, provider_version_id: str, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None) -> DashboardInstanceProvidersToolsListOutput: + def list(self, instance_id: str, *, provider_version_id: str, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None) -> DashboardInstanceProviderToolsListOutput: """ List provider tools Returns a paginated list of provider tools. By default returns tools from the latest version. Use optional filters to get tools for a specific version. @@ -20,7 +20,7 @@ def list(self, instance_id: str, *, provider_version_id: str, limit: Optional[fl :param cursor: Optional[str] (optional) :param order: Optional[str] (optional) :param provider_version_id: str - :return: DashboardInstanceProvidersToolsListOutput + :return: DashboardInstanceProviderToolsListOutput """ # Build query parameters from keyword arguments query_dict = {} @@ -37,21 +37,21 @@ def list(self, instance_id: str, *, provider_version_id: str, limit: Optional[fl query_dict["provider_version_id"] = provider_version_id request = MetorialRequest( - path=['instances', instance_id, 'providers-tools'], + path=['instances', instance_id, 'provider-tools'], query=query_dict ) - return self._get(request).transform(mapDashboardInstanceProvidersToolsListOutput.from_dict) + return self._get(request).transform(mapDashboardInstanceProviderToolsListOutput.from_dict) - def get(self, instance_id: str, provider_tool_id: str) -> DashboardInstanceProvidersToolsGetOutput: + def get(self, instance_id: str, provider_tool_id: str) -> DashboardInstanceProviderToolsGetOutput: """ Get provider tool Retrieves a specific provider tool by ID. :param instance_id: str :param provider_tool_id: str - :return: DashboardInstanceProvidersToolsGetOutput + :return: DashboardInstanceProviderToolsGetOutput """ request = MetorialRequest( - path=['instances', instance_id, 'providers-tools', provider_tool_id] + path=['instances', instance_id, 'provider-tools', provider_tool_id] ) - return self._get(request).transform(mapDashboardInstanceProvidersToolsGetOutput.from_dict) \ No newline at end of file + return self._get(request).transform(mapDashboardInstanceProviderToolsGetOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/network_policies.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/network_policies.py new file mode 100644 index 00000000..c7efcabb --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/network_policies.py @@ -0,0 +1,134 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceNetworkPoliciesListOutput, DashboardInstanceNetworkPoliciesListOutput, mapDashboardInstanceNetworkPoliciesListQuery, DashboardInstanceNetworkPoliciesListQuery, mapDashboardInstanceNetworkPoliciesGetOutput, DashboardInstanceNetworkPoliciesGetOutput, mapDashboardInstanceNetworkPoliciesCreateOutput, DashboardInstanceNetworkPoliciesCreateOutput, mapDashboardInstanceNetworkPoliciesCreateBody, DashboardInstanceNetworkPoliciesCreateBody, mapDashboardInstanceNetworkPoliciesUpdateOutput, DashboardInstanceNetworkPoliciesUpdateOutput, mapDashboardInstanceNetworkPoliciesUpdateBody, DashboardInstanceNetworkPoliciesUpdateBody, mapDashboardInstanceNetworkPoliciesDeleteOutput, DashboardInstanceNetworkPoliciesDeleteOutput + +class MetorialNetworkPoliciesEndpoint(BaseMetorialEndpoint): + """Manage reusable network policy definitions and their rules.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, status: Optional[Union[str, List[str]]] = None, firewall_id: Optional[Union[str, List[str]]] = None, search: Optional[str] = None, created_at: Optional[Dict[str, Any]] = None, updated_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceNetworkPoliciesListOutput: + """ + List network policies + Returns a paginated list of network policies. + + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param status: Optional[Union[str, List[str]]] (optional) + :param firewall_id: Optional[Union[str, List[str]]] (optional) + :param search: Optional[str] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :param updated_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceNetworkPoliciesListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if status is not None: + query_dict["status"] = status + if firewall_id is not None: + query_dict["firewall_id"] = firewall_id + if search is not None: + query_dict["search"] = search + if created_at is not None: + query_dict["created_at"] = created_at + if updated_at is not None: + query_dict["updated_at"] = updated_at + + request = MetorialRequest( + path=['network-policies'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceNetworkPoliciesListOutput.from_dict) + + def get(self, network_policy_id: str) -> DashboardInstanceNetworkPoliciesGetOutput: + """ + Get network policy + Retrieves a specific network policy by ID. + + :param network_policy_id: str + :return: DashboardInstanceNetworkPoliciesGetOutput + """ + request = MetorialRequest( + path=['network-policies', network_policy_id] + ) + return self._get(request).transform(mapDashboardInstanceNetworkPoliciesGetOutput.from_dict) + + def create(self, *, name: str, description: Optional[str] = None, rules: Optional[List[Dict[str, Any]]] = None) -> DashboardInstanceNetworkPoliciesCreateOutput: + """ + Create network policy + Creates a new network policy. + + :param name: str + :param description: Optional[str] (optional) + :param rules: Optional[List[Dict[str, Any]]] (optional) + :return: DashboardInstanceNetworkPoliciesCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if rules is not None: + body_dict["rules"] = rules + + request = MetorialRequest( + path=['network-policies'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceNetworkPoliciesCreateOutput.from_dict) + + def update(self, network_policy_id: str, *, name: Optional[str] = None, description: Optional[str] = None, rules: Optional[List[Dict[str, Any]]] = None) -> DashboardInstanceNetworkPoliciesUpdateOutput: + """ + Update network policy + Updates a network policy definition. + + :param network_policy_id: str + :param name: Optional[str] (optional) + :param description: Optional[str] (optional) + :param rules: Optional[List[Dict[str, Any]]] (optional) + :return: DashboardInstanceNetworkPoliciesUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + if name is not None: + body_dict["name"] = name + if description is not None: + body_dict["description"] = description + if rules is not None: + body_dict["rules"] = rules + + request = MetorialRequest( + path=['network-policies', network_policy_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstanceNetworkPoliciesUpdateOutput.from_dict) + + def delete(self, network_policy_id: str) -> DashboardInstanceNetworkPoliciesDeleteOutput: + """ + Delete network policy + Archives a network policy. + + :param network_policy_id: str + :return: DashboardInstanceNetworkPoliciesDeleteOutput + """ + request = MetorialRequest( + path=['network-policies', network_policy_id] + ) + return self._delete(request).transform(mapDashboardInstanceNetworkPoliciesDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/network_policies_rules.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/network_policies_rules.py new file mode 100644 index 00000000..043f1df8 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/network_policies_rules.py @@ -0,0 +1,90 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceNetworkPoliciesRulesCreateOutput, DashboardInstanceNetworkPoliciesRulesCreateOutput, mapDashboardInstanceNetworkPoliciesRulesCreateBody, DashboardInstanceNetworkPoliciesRulesCreateBody, mapDashboardInstanceNetworkPoliciesRulesUpdateOutput, DashboardInstanceNetworkPoliciesRulesUpdateOutput, mapDashboardInstanceNetworkPoliciesRulesUpdateBody, DashboardInstanceNetworkPoliciesRulesUpdateBody, mapDashboardInstanceNetworkPoliciesRulesDeleteOutput, DashboardInstanceNetworkPoliciesRulesDeleteOutput + +class MetorialNetworkPoliciesRulesEndpoint(BaseMetorialEndpoint): + """Manage reusable network policy definitions and their rules.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def create(self, network_policy_id: str, *, effect: str, direction: str, cidrs: List[str], enabled: bool, priority: float, description: Optional[str] = None, ports: Optional[List[Dict[str, Any]]] = None) -> DashboardInstanceNetworkPoliciesRulesCreateOutput: + """ + Create network policy rule + Adds a rule to a network policy. + + :param network_policy_id: str + :param effect: str + :param direction: str + :param cidrs: List[str] + :param description: Optional[str] (optional) + :param enabled: bool + :param priority: float + :param ports: Optional[List[Dict[str, Any]]] (optional) + :return: DashboardInstanceNetworkPoliciesRulesCreateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["effect"] = effect + body_dict["direction"] = direction + body_dict["cidrs"] = cidrs + if description is not None: + body_dict["description"] = description + body_dict["enabled"] = enabled + body_dict["priority"] = priority + if ports is not None: + body_dict["ports"] = ports + + request = MetorialRequest( + path=['network-policies', network_policy_id, 'rules'], + body=body_dict + ) + return self._post(request).transform(mapDashboardInstanceNetworkPoliciesRulesCreateOutput.from_dict) + + def update(self, network_policy_id: str, rule_id: str, *, effect: str, direction: str, cidrs: List[str], enabled: bool, priority: float, description: Optional[str] = None, ports: Optional[List[Dict[str, Any]]] = None) -> DashboardInstanceNetworkPoliciesRulesUpdateOutput: + """ + Update network policy rule + Updates a rule on a network policy. + + :param network_policy_id: str + :param rule_id: str + :param effect: str + :param direction: str + :param cidrs: List[str] + :param description: Optional[str] (optional) + :param enabled: bool + :param priority: float + :param ports: Optional[List[Dict[str, Any]]] (optional) + :return: DashboardInstanceNetworkPoliciesRulesUpdateOutput + """ + # Build body parameters from keyword arguments + body_dict = {} + body_dict["effect"] = effect + body_dict["direction"] = direction + body_dict["cidrs"] = cidrs + if description is not None: + body_dict["description"] = description + body_dict["enabled"] = enabled + body_dict["priority"] = priority + if ports is not None: + body_dict["ports"] = ports + + request = MetorialRequest( + path=['network-policies', network_policy_id, 'rules', rule_id], + body=body_dict + ) + return self._patch(request).transform(mapDashboardInstanceNetworkPoliciesRulesUpdateOutput.from_dict) + + def delete(self, network_policy_id: str, rule_id: str) -> DashboardInstanceNetworkPoliciesRulesDeleteOutput: + """ + Delete network policy rule + Removes a rule from a network policy. + + :param network_policy_id: str + :param rule_id: str + :return: DashboardInstanceNetworkPoliciesRulesDeleteOutput + """ + request = MetorialRequest( + path=['network-policies', network_policy_id, 'rules', rule_id] + ) + return self._delete(request).transform(mapDashboardInstanceNetworkPoliciesRulesDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/networks.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/networks.py new file mode 100644 index 00000000..d7377cb9 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/networks.py @@ -0,0 +1,104 @@ +from typing import Any, Dict, List, Optional, Union +from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest +from ..resources import mapDashboardInstanceNetworksListOutput, DashboardInstanceNetworksListOutput, mapDashboardInstanceNetworksListQuery, DashboardInstanceNetworksListQuery, mapDashboardInstanceNetworksGetOutput, DashboardInstanceNetworksGetOutput, mapDashboardInstanceNetworksListNetworkLogsOutput, DashboardInstanceNetworksListNetworkLogsOutput, mapDashboardInstanceNetworksListNetworkLogsQuery, DashboardInstanceNetworksListNetworkLogsQuery + +class MetorialNetworksEndpoint(BaseMetorialEndpoint): + """Read network records for an instance environment.""" + + def __init__(self, config: MetorialEndpointManager): + super().__init__(config) + + def list(self, *, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None, id: Optional[Union[str, List[str]]] = None, firewall_id: Optional[Union[str, List[str]]] = None, enclave_id: Optional[Union[str, List[str]]] = None, created_at: Optional[Dict[str, Any]] = None, updated_at: Optional[Dict[str, Any]] = None) -> DashboardInstanceNetworksListOutput: + """ + List networks + Returns a paginated list of networks. + + :param limit: Optional[float] (optional) + :param after: Optional[str] (optional) + :param before: Optional[str] (optional) + :param cursor: Optional[str] (optional) + :param order: Optional[str] (optional) + :param id: Optional[Union[str, List[str]]] (optional) + :param firewall_id: Optional[Union[str, List[str]]] (optional) + :param enclave_id: Optional[Union[str, List[str]]] (optional) + :param created_at: Optional[Dict[str, Any]] (optional) + :param updated_at: Optional[Dict[str, Any]] (optional) + :return: DashboardInstanceNetworksListOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + if limit is not None: + query_dict["limit"] = limit + if after is not None: + query_dict["after"] = after + if before is not None: + query_dict["before"] = before + if cursor is not None: + query_dict["cursor"] = cursor + if order is not None: + query_dict["order"] = order + if id is not None: + query_dict["id"] = id + if firewall_id is not None: + query_dict["firewall_id"] = firewall_id + if enclave_id is not None: + query_dict["enclave_id"] = enclave_id + if created_at is not None: + query_dict["created_at"] = created_at + if updated_at is not None: + query_dict["updated_at"] = updated_at + + request = MetorialRequest( + path=['networks'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceNetworksListOutput.from_dict) + + def get(self, network_id: str) -> DashboardInstanceNetworksGetOutput: + """ + Get network + Retrieves a specific network by ID. + + :param network_id: str + :return: DashboardInstanceNetworksGetOutput + """ + request = MetorialRequest( + path=['networks', network_id] + ) + return self._get(request).transform(mapDashboardInstanceNetworksGetOutput.from_dict) + + def list_network_logs(self, *, direction: str, enclave_id: Optional[Union[str, List[str]]] = None, hostname: Optional[Union[str, List[str]]] = None, ip: Optional[Union[str, List[str]]] = None, from_: Optional[str] = None, to: Optional[str] = None, interval_minutes: Optional[float] = None) -> DashboardInstanceNetworksListNetworkLogsOutput: + """ + List network logs + Returns ingress or egress network logs for enclaves in the instance environment. + + :param direction: str + :param enclave_id: Optional[Union[str, List[str]]] (optional) + :param hostname: Optional[Union[str, List[str]]] (optional) + :param ip: Optional[Union[str, List[str]]] (optional) + :param from_: Optional[str] (optional) + :param to: Optional[str] (optional) + :param interval_minutes: Optional[float] (optional) + :return: DashboardInstanceNetworksListNetworkLogsOutput + """ + # Build query parameters from keyword arguments + query_dict = {} + query_dict["direction"] = direction + if enclave_id is not None: + query_dict["enclave_id"] = enclave_id + if hostname is not None: + query_dict["hostname"] = hostname + if ip is not None: + query_dict["ip"] = ip + if from_ is not None: + query_dict["from"] = from_ + if to is not None: + query_dict["to"] = to + if interval_minutes is not None: + query_dict["interval_minutes"] = interval_minutes + + request = MetorialRequest( + path=['network-logs'], + query=query_dict + ) + return self._get(request).transform(mapDashboardInstanceNetworksListNetworkLogsOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/provider_templates.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/provider_templates.py index ba0dd566..84b0ac2b 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/provider_templates.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/provider_templates.py @@ -64,7 +64,7 @@ def get(self, provider_template_id: str) -> DashboardInstanceProviderTemplatesGe ) return self._get(request).transform(mapDashboardInstanceProviderTemplatesGetOutput.from_dict) - def create(self, *, name: str, providers: List[Dict[str, Any]], description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None) -> DashboardInstanceProviderTemplatesCreateOutput: + def create(self, *, name: str, description: Optional[str] = None, metadata: Optional[Dict[str, Any]] = None, providers: Optional[List[Dict[str, Any]]] = None, integration_id: Optional[str] = None) -> DashboardInstanceProviderTemplatesCreateOutput: """ Create provider template Creates a new provider template from an existing provider deployment or creates a minimal backing deployment first. @@ -72,7 +72,8 @@ def create(self, *, name: str, providers: List[Dict[str, Any]], description: Opt :param name: str :param description: Optional[str] (optional) :param metadata: Optional[Dict[str, Any]] (optional) - :param providers: List[Dict[str, Any]] + :param providers: Optional[List[Dict[str, Any]]] (optional) + :param integration_id: Optional[str] (optional) :return: DashboardInstanceProviderTemplatesCreateOutput """ # Build body parameters from keyword arguments @@ -82,7 +83,10 @@ def create(self, *, name: str, providers: List[Dict[str, Any]], description: Opt body_dict["description"] = description if metadata is not None: body_dict["metadata"] = metadata - body_dict["providers"] = providers + if providers is not None: + body_dict["providers"] = providers + if integration_id is not None: + body_dict["integration_id"] = integration_id request = MetorialRequest( path=['provider-templates'], diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/providers_tools.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/provider_tools.py similarity index 75% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/providers_tools.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/provider_tools.py index b76438e0..7adb9da6 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/providers_tools.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/provider_tools.py @@ -1,14 +1,14 @@ from typing import Any, Dict, List, Optional, Union from metorial_util_endpoint import BaseMetorialEndpoint, MetorialEndpointManager, MetorialRequest -from ..resources import mapDashboardInstanceProvidersToolsListOutput, DashboardInstanceProvidersToolsListOutput, mapDashboardInstanceProvidersToolsListQuery, DashboardInstanceProvidersToolsListQuery, mapDashboardInstanceProvidersToolsGetOutput, DashboardInstanceProvidersToolsGetOutput +from ..resources import mapDashboardInstanceProviderToolsListOutput, DashboardInstanceProviderToolsListOutput, mapDashboardInstanceProviderToolsListQuery, DashboardInstanceProviderToolsListQuery, mapDashboardInstanceProviderToolsGetOutput, DashboardInstanceProviderToolsGetOutput -class MetorialProvidersToolsEndpoint(BaseMetorialEndpoint): +class MetorialProviderToolsEndpoint(BaseMetorialEndpoint): """A tool is a single action a provider can perform like 'search_issues' or 'send_message'. Tools are what AI agents call via MCP. By default, tools from the latest provider version are returned. Use the optional version filter to get tools for a specific version.""" def __init__(self, config: MetorialEndpointManager): super().__init__(config) - def list(self, *, provider_version_id: str, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None) -> DashboardInstanceProvidersToolsListOutput: + def list(self, *, provider_version_id: str, limit: Optional[float] = None, after: Optional[str] = None, before: Optional[str] = None, cursor: Optional[str] = None, order: Optional[str] = None) -> DashboardInstanceProviderToolsListOutput: """ List provider tools Returns a paginated list of provider tools. By default returns tools from the latest version. Use optional filters to get tools for a specific version. @@ -19,7 +19,7 @@ def list(self, *, provider_version_id: str, limit: Optional[float] = None, after :param cursor: Optional[str] (optional) :param order: Optional[str] (optional) :param provider_version_id: str - :return: DashboardInstanceProvidersToolsListOutput + :return: DashboardInstanceProviderToolsListOutput """ # Build query parameters from keyword arguments query_dict = {} @@ -36,20 +36,20 @@ def list(self, *, provider_version_id: str, limit: Optional[float] = None, after query_dict["provider_version_id"] = provider_version_id request = MetorialRequest( - path=['providers-tools'], + path=['provider-tools'], query=query_dict ) - return self._get(request).transform(mapDashboardInstanceProvidersToolsListOutput.from_dict) + return self._get(request).transform(mapDashboardInstanceProviderToolsListOutput.from_dict) - def get(self, provider_tool_id: str) -> DashboardInstanceProvidersToolsGetOutput: + def get(self, provider_tool_id: str) -> DashboardInstanceProviderToolsGetOutput: """ Get provider tool Retrieves a specific provider tool by ID. :param provider_tool_id: str - :return: DashboardInstanceProvidersToolsGetOutput + :return: DashboardInstanceProviderToolsGetOutput """ request = MetorialRequest( - path=['providers-tools', provider_tool_id] + path=['provider-tools', provider_tool_id] ) - return self._get(request).transform(mapDashboardInstanceProvidersToolsGetOutput.from_dict) \ No newline at end of file + return self._get(request).transform(mapDashboardInstanceProviderToolsGetOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/__init__.py index 04052223..7684a065 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/__init__.py @@ -8,7 +8,10 @@ from .custom_providers import * from .dashboard import * from .documents import * +from .enclaves import * from .files import * +from .firewall_bindings import * +from .firewalls import * from .identities import * from .identity_actors import * from .instance import * @@ -20,7 +23,10 @@ from .magic_mcp_sessions import * from .magic_mcp_tokens import * from .management import * +from .network_policies import * +from .networks import * from .portals import * +from .provider import * from .provider_categories import * from .provider_collections import * from .provider_deployments import * diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/__init__.py index 01f9b497..f718dc42 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/__init__.py @@ -6,7 +6,10 @@ from .conversations import * from .custom_providers import * from .documents import * +from .enclaves import * from .files import * +from .firewall_bindings import * +from .firewalls import * from .identities import * from .identity_actors import * from .instance import * @@ -16,7 +19,10 @@ from .magic_mcp_servers import * from .magic_mcp_sessions import * from .magic_mcp_tokens import * +from .network_policies import * +from .networks import * from .portals import * +from .provider import * from .provider_categories import * from .provider_collections import * from .provider_deployments import * diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/providers/tools/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/enclaves/__init__.py similarity index 100% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/providers/tools/__init__.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/enclaves/__init__.py diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/enclaves/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/enclaves/get.py new file mode 100644 index 00000000..1ff5b1be --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/enclaves/get.py @@ -0,0 +1,70 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceEnclavesGetOutputEnclaveEnvironment: + object: str + id: str + name: str + type: str + created_at: datetime +@dataclass +class DashboardInstanceEnclavesGetOutput: + object: str + id: str + slug: str + name: str + network_id: str + provider_deployment_id: str + enclave_environment: DashboardInstanceEnclavesGetOutputEnclaveEnvironment + created_at: datetime + description: Optional[str] = None + last_used_at: Optional[datetime] = None + + +class mapDashboardInstanceEnclavesGetOutputEnclaveEnvironment: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceEnclavesGetOutputEnclaveEnvironment: + return DashboardInstanceEnclavesGetOutputEnclaveEnvironment( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + type=data.get('type'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceEnclavesGetOutputEnclaveEnvironment, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceEnclavesGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceEnclavesGetOutput: + return DashboardInstanceEnclavesGetOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + network_id=data.get('network_id'), + provider_deployment_id=data.get('provider_deployment_id'), + enclave_environment=mapDashboardInstanceEnclavesGetOutputEnclaveEnvironment.from_dict(data.get('enclave_environment')) if data.get('enclave_environment') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceEnclavesGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/enclaves/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/enclaves/list.py new file mode 100644 index 00000000..6d9c027d --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/enclaves/list.py @@ -0,0 +1,157 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceEnclavesListOutputItemsEnclaveEnvironment: + object: str + id: str + name: str + type: str + created_at: datetime +@dataclass +class DashboardInstanceEnclavesListOutputItems: + object: str + id: str + slug: str + name: str + network_id: str + provider_deployment_id: str + enclave_environment: DashboardInstanceEnclavesListOutputItemsEnclaveEnvironment + created_at: datetime + description: Optional[str] = None + last_used_at: Optional[datetime] = None +@dataclass +class DashboardInstanceEnclavesListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class DashboardInstanceEnclavesListOutput: + items: List[DashboardInstanceEnclavesListOutputItems] + pagination: DashboardInstanceEnclavesListOutputPagination + + +class mapDashboardInstanceEnclavesListOutputItemsEnclaveEnvironment: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceEnclavesListOutputItemsEnclaveEnvironment: + return DashboardInstanceEnclavesListOutputItemsEnclaveEnvironment( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + type=data.get('type'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceEnclavesListOutputItemsEnclaveEnvironment, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceEnclavesListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceEnclavesListOutputItems: + return DashboardInstanceEnclavesListOutputItems( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + network_id=data.get('network_id'), + provider_deployment_id=data.get('provider_deployment_id'), + enclave_environment=mapDashboardInstanceEnclavesListOutputItemsEnclaveEnvironment.from_dict(data.get('enclave_environment')) if data.get('enclave_environment') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceEnclavesListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceEnclavesListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceEnclavesListOutputPagination: + return DashboardInstanceEnclavesListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceEnclavesListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceEnclavesListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceEnclavesListOutput: + return DashboardInstanceEnclavesListOutput( + items=[mapDashboardInstanceEnclavesListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapDashboardInstanceEnclavesListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceEnclavesListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceEnclavesListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class DashboardInstanceEnclavesListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + slug: Optional[Union[str, List[str]]] = None + network_id: Optional[Union[str, List[str]]] = None + provider_deployment_id: Optional[Union[str, List[str]]] = None + provider_id: Optional[Union[str, List[str]]] = None + firewall_id: Optional[Union[str, List[str]]] = None + created_at: Optional[DashboardInstanceEnclavesListQueryCreatedAt] = None + + +class mapDashboardInstanceEnclavesListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceEnclavesListQuery: + return DashboardInstanceEnclavesListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + slug=data.get('slug'), + network_id=data.get('network_id'), + provider_deployment_id=data.get('provider_deployment_id'), + provider_id=data.get('provider_id'), + firewall_id=data.get('firewall_id'), + created_at=mapDashboardInstanceEnclavesListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceEnclavesListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/__init__.py new file mode 100644 index 00000000..26672d14 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/__init__.py @@ -0,0 +1,4 @@ +from .create import * +from .delete import * +from .get import * +from .list import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/create.py new file mode 100644 index 00000000..fea89b2e --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/create.py @@ -0,0 +1,113 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceFirewallBindingsCreateOutputFirewall: + object: str + id: str + slug: str + name: str +@dataclass +class DashboardInstanceFirewallBindingsCreateOutputTarget: + object: str + type: str + id: str + name: str +@dataclass +class DashboardInstanceFirewallBindingsCreateOutput: + object: str + id: str + target_type: str + firewall: DashboardInstanceFirewallBindingsCreateOutputFirewall + created_at: datetime + target: Optional[DashboardInstanceFirewallBindingsCreateOutputTarget] = None + + +class mapDashboardInstanceFirewallBindingsCreateOutputFirewall: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsCreateOutputFirewall: + return DashboardInstanceFirewallBindingsCreateOutputFirewall( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsCreateOutputFirewall, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallBindingsCreateOutputTarget: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsCreateOutputTarget: + return DashboardInstanceFirewallBindingsCreateOutputTarget( + object=data.get('object'), + type=data.get('type'), + id=data.get('id'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsCreateOutputTarget, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallBindingsCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsCreateOutput: + return DashboardInstanceFirewallBindingsCreateOutput( + object=data.get('object'), + id=data.get('id'), + target_type=data.get('target_type'), + firewall=mapDashboardInstanceFirewallBindingsCreateOutputFirewall.from_dict(data.get('firewall')) if data.get('firewall') else None, + target=mapDashboardInstanceFirewallBindingsCreateOutputTarget.from_dict(data.get('target')) if data.get('target') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsCreateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceFirewallBindingsCreateBody: + firewall_id: str + target_type: str + enclave_id: Optional[str] = None + provider_id: Optional[str] = None + network_id: Optional[str] = None + + +class mapDashboardInstanceFirewallBindingsCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsCreateBody: + return DashboardInstanceFirewallBindingsCreateBody( + firewall_id=data.get('firewall_id'), + target_type=data.get('target_type'), + enclave_id=data.get('enclave_id'), + provider_id=data.get('provider_id'), + network_id=data.get('network_id') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsCreateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/delete.py new file mode 100644 index 00000000..a26888ed --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/delete.py @@ -0,0 +1,84 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceFirewallBindingsDeleteOutputFirewall: + object: str + id: str + slug: str + name: str +@dataclass +class DashboardInstanceFirewallBindingsDeleteOutputTarget: + object: str + type: str + id: str + name: str +@dataclass +class DashboardInstanceFirewallBindingsDeleteOutput: + object: str + id: str + target_type: str + firewall: DashboardInstanceFirewallBindingsDeleteOutputFirewall + created_at: datetime + target: Optional[DashboardInstanceFirewallBindingsDeleteOutputTarget] = None + + +class mapDashboardInstanceFirewallBindingsDeleteOutputFirewall: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsDeleteOutputFirewall: + return DashboardInstanceFirewallBindingsDeleteOutputFirewall( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsDeleteOutputFirewall, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallBindingsDeleteOutputTarget: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsDeleteOutputTarget: + return DashboardInstanceFirewallBindingsDeleteOutputTarget( + object=data.get('object'), + type=data.get('type'), + id=data.get('id'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsDeleteOutputTarget, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallBindingsDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsDeleteOutput: + return DashboardInstanceFirewallBindingsDeleteOutput( + object=data.get('object'), + id=data.get('id'), + target_type=data.get('target_type'), + firewall=mapDashboardInstanceFirewallBindingsDeleteOutputFirewall.from_dict(data.get('firewall')) if data.get('firewall') else None, + target=mapDashboardInstanceFirewallBindingsDeleteOutputTarget.from_dict(data.get('target')) if data.get('target') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsDeleteOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/get.py new file mode 100644 index 00000000..c73f5bf0 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/get.py @@ -0,0 +1,84 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceFirewallBindingsGetOutputFirewall: + object: str + id: str + slug: str + name: str +@dataclass +class DashboardInstanceFirewallBindingsGetOutputTarget: + object: str + type: str + id: str + name: str +@dataclass +class DashboardInstanceFirewallBindingsGetOutput: + object: str + id: str + target_type: str + firewall: DashboardInstanceFirewallBindingsGetOutputFirewall + created_at: datetime + target: Optional[DashboardInstanceFirewallBindingsGetOutputTarget] = None + + +class mapDashboardInstanceFirewallBindingsGetOutputFirewall: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsGetOutputFirewall: + return DashboardInstanceFirewallBindingsGetOutputFirewall( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsGetOutputFirewall, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallBindingsGetOutputTarget: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsGetOutputTarget: + return DashboardInstanceFirewallBindingsGetOutputTarget( + object=data.get('object'), + type=data.get('type'), + id=data.get('id'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsGetOutputTarget, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallBindingsGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsGetOutput: + return DashboardInstanceFirewallBindingsGetOutput( + object=data.get('object'), + id=data.get('id'), + target_type=data.get('target_type'), + firewall=mapDashboardInstanceFirewallBindingsGetOutputFirewall.from_dict(data.get('firewall')) if data.get('firewall') else None, + target=mapDashboardInstanceFirewallBindingsGetOutputTarget.from_dict(data.get('target')) if data.get('target') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/list.py new file mode 100644 index 00000000..ade39098 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewall_bindings/list.py @@ -0,0 +1,171 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceFirewallBindingsListOutputItemsFirewall: + object: str + id: str + slug: str + name: str +@dataclass +class DashboardInstanceFirewallBindingsListOutputItemsTarget: + object: str + type: str + id: str + name: str +@dataclass +class DashboardInstanceFirewallBindingsListOutputItems: + object: str + id: str + target_type: str + firewall: DashboardInstanceFirewallBindingsListOutputItemsFirewall + created_at: datetime + target: Optional[DashboardInstanceFirewallBindingsListOutputItemsTarget] = None +@dataclass +class DashboardInstanceFirewallBindingsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class DashboardInstanceFirewallBindingsListOutput: + items: List[DashboardInstanceFirewallBindingsListOutputItems] + pagination: DashboardInstanceFirewallBindingsListOutputPagination + + +class mapDashboardInstanceFirewallBindingsListOutputItemsFirewall: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsListOutputItemsFirewall: + return DashboardInstanceFirewallBindingsListOutputItemsFirewall( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsListOutputItemsFirewall, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallBindingsListOutputItemsTarget: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsListOutputItemsTarget: + return DashboardInstanceFirewallBindingsListOutputItemsTarget( + object=data.get('object'), + type=data.get('type'), + id=data.get('id'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsListOutputItemsTarget, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallBindingsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsListOutputItems: + return DashboardInstanceFirewallBindingsListOutputItems( + object=data.get('object'), + id=data.get('id'), + target_type=data.get('target_type'), + firewall=mapDashboardInstanceFirewallBindingsListOutputItemsFirewall.from_dict(data.get('firewall')) if data.get('firewall') else None, + target=mapDashboardInstanceFirewallBindingsListOutputItemsTarget.from_dict(data.get('target')) if data.get('target') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallBindingsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsListOutputPagination: + return DashboardInstanceFirewallBindingsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallBindingsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsListOutput: + return DashboardInstanceFirewallBindingsListOutput( + items=[mapDashboardInstanceFirewallBindingsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapDashboardInstanceFirewallBindingsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceFirewallBindingsListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class DashboardInstanceFirewallBindingsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + firewall_id: Optional[Union[str, List[str]]] = None + enclave_id: Optional[Union[str, List[str]]] = None + provider_id: Optional[Union[str, List[str]]] = None + network_id: Optional[Union[str, List[str]]] = None + target_type: Optional[Union[str, List[str]]] = None + created_at: Optional[DashboardInstanceFirewallBindingsListQueryCreatedAt] = None + + +class mapDashboardInstanceFirewallBindingsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallBindingsListQuery: + return DashboardInstanceFirewallBindingsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + firewall_id=data.get('firewall_id'), + enclave_id=data.get('enclave_id'), + provider_id=data.get('provider_id'), + network_id=data.get('network_id'), + target_type=data.get('target_type'), + created_at=mapDashboardInstanceFirewallBindingsListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallBindingsListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/__init__.py new file mode 100644 index 00000000..9d38d38a --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/__init__.py @@ -0,0 +1,6 @@ +from .create import * +from .delete import * +from .get import * +from .list import * +from .network_policies import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/create.py new file mode 100644 index 00000000..51242e4d --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/create.py @@ -0,0 +1,183 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceFirewallsCreateOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class DashboardInstanceFirewallsCreateOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[DashboardInstanceFirewallsCreateOutputNetworkPoliciesRules] +@dataclass +class DashboardInstanceFirewallsCreateOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[DashboardInstanceFirewallsCreateOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapDashboardInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts: + return DashboardInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsCreateOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsCreateOutputNetworkPoliciesRules: + return DashboardInstanceFirewallsCreateOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsCreateOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsCreateOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsCreateOutputNetworkPolicies: + return DashboardInstanceFirewallsCreateOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapDashboardInstanceFirewallsCreateOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsCreateOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsCreateOutput: + return DashboardInstanceFirewallsCreateOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapDashboardInstanceFirewallsCreateOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsCreateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceFirewallsCreateBodyBindings: + target_type: str + enclave_id: Optional[str] = None + provider_id: Optional[str] = None + network_id: Optional[str] = None +@dataclass +class DashboardInstanceFirewallsCreateBody: + name: str + network_id: str + description: Optional[str] = None + slug: Optional[str] = None + bindings: Optional[List[DashboardInstanceFirewallsCreateBodyBindings]] = None + network_policy_ids: Optional[List[str]] = None + + +class mapDashboardInstanceFirewallsCreateBodyBindings: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsCreateBodyBindings: + return DashboardInstanceFirewallsCreateBodyBindings( + target_type=data.get('target_type'), + enclave_id=data.get('enclave_id'), + provider_id=data.get('provider_id'), + network_id=data.get('network_id') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsCreateBodyBindings, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsCreateBody: + return DashboardInstanceFirewallsCreateBody( + name=data.get('name'), + description=data.get('description'), + slug=data.get('slug'), + network_id=data.get('network_id'), + bindings=[mapDashboardInstanceFirewallsCreateBodyBindings.from_dict(item) for item in data.get('bindings', []) if item], + network_policy_ids=data.get('network_policy_ids', []) + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsCreateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/delete.py new file mode 100644 index 00000000..9a40c3d8 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/delete.py @@ -0,0 +1,128 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceFirewallsDeleteOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class DashboardInstanceFirewallsDeleteOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[DashboardInstanceFirewallsDeleteOutputNetworkPoliciesRules] +@dataclass +class DashboardInstanceFirewallsDeleteOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[DashboardInstanceFirewallsDeleteOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapDashboardInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts: + return DashboardInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsDeleteOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsDeleteOutputNetworkPoliciesRules: + return DashboardInstanceFirewallsDeleteOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsDeleteOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsDeleteOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsDeleteOutputNetworkPolicies: + return DashboardInstanceFirewallsDeleteOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapDashboardInstanceFirewallsDeleteOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsDeleteOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsDeleteOutput: + return DashboardInstanceFirewallsDeleteOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapDashboardInstanceFirewallsDeleteOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsDeleteOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/get.py new file mode 100644 index 00000000..ab96413f --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/get.py @@ -0,0 +1,128 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceFirewallsGetOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceFirewallsGetOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceFirewallsGetOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class DashboardInstanceFirewallsGetOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[DashboardInstanceFirewallsGetOutputNetworkPoliciesRules] +@dataclass +class DashboardInstanceFirewallsGetOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[DashboardInstanceFirewallsGetOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapDashboardInstanceFirewallsGetOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsGetOutputNetworkPoliciesRulesPorts: + return DashboardInstanceFirewallsGetOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsGetOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsGetOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsGetOutputNetworkPoliciesRules: + return DashboardInstanceFirewallsGetOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceFirewallsGetOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsGetOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsGetOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsGetOutputNetworkPolicies: + return DashboardInstanceFirewallsGetOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapDashboardInstanceFirewallsGetOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsGetOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsGetOutput: + return DashboardInstanceFirewallsGetOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapDashboardInstanceFirewallsGetOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/list.py new file mode 100644 index 00000000..7dfd19bc --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/list.py @@ -0,0 +1,223 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceFirewallsListOutputItemsNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts]] = None +@dataclass +class DashboardInstanceFirewallsListOutputItemsNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[DashboardInstanceFirewallsListOutputItemsNetworkPoliciesRules] +@dataclass +class DashboardInstanceFirewallsListOutputItems: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[DashboardInstanceFirewallsListOutputItemsNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None +@dataclass +class DashboardInstanceFirewallsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class DashboardInstanceFirewallsListOutput: + items: List[DashboardInstanceFirewallsListOutputItems] + pagination: DashboardInstanceFirewallsListOutputPagination + + +class mapDashboardInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts: + return DashboardInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsListOutputItemsNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsListOutputItemsNetworkPoliciesRules: + return DashboardInstanceFirewallsListOutputItemsNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsListOutputItemsNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsListOutputItemsNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsListOutputItemsNetworkPolicies: + return DashboardInstanceFirewallsListOutputItemsNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapDashboardInstanceFirewallsListOutputItemsNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsListOutputItemsNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsListOutputItems: + return DashboardInstanceFirewallsListOutputItems( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapDashboardInstanceFirewallsListOutputItemsNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsListOutputPagination: + return DashboardInstanceFirewallsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsListOutput: + return DashboardInstanceFirewallsListOutput( + items=[mapDashboardInstanceFirewallsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapDashboardInstanceFirewallsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceFirewallsListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class DashboardInstanceFirewallsListQueryUpdatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class DashboardInstanceFirewallsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + slug: Optional[Union[str, List[str]]] = None + status: Optional[Union[str, List[str]]] = None + network_id: Optional[Union[str, List[str]]] = None + enclave_id: Optional[Union[str, List[str]]] = None + provider_id: Optional[Union[str, List[str]]] = None + network_policy_id: Optional[Union[str, List[str]]] = None + created_at: Optional[DashboardInstanceFirewallsListQueryCreatedAt] = None + updated_at: Optional[DashboardInstanceFirewallsListQueryUpdatedAt] = None + + +class mapDashboardInstanceFirewallsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsListQuery: + return DashboardInstanceFirewallsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + slug=data.get('slug'), + status=data.get('status'), + network_id=data.get('network_id'), + enclave_id=data.get('enclave_id'), + provider_id=data.get('provider_id'), + network_policy_id=data.get('network_policy_id'), + created_at=mapDashboardInstanceFirewallsListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None, + updated_at=mapDashboardInstanceFirewallsListQueryUpdatedAt.from_dict(data.get('updated_at')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/network_policies/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/network_policies/__init__.py new file mode 100644 index 00000000..479f51bf --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/network_policies/__init__.py @@ -0,0 +1,2 @@ +from .attach import * +from .detach import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/network_policies/attach.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/network_policies/attach.py new file mode 100644 index 00000000..659f966f --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/network_policies/attach.py @@ -0,0 +1,151 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules] +@dataclass +class DashboardInstanceFirewallsNetworkPoliciesAttachOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapDashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts: + return DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules: + return DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies: + return DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapDashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsNetworkPoliciesAttachOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsNetworkPoliciesAttachOutput: + return DashboardInstanceFirewallsNetworkPoliciesAttachOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapDashboardInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsNetworkPoliciesAttachOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceFirewallsNetworkPoliciesAttachBody: + network_policy_id: str + position: Optional[float] = None + + +class mapDashboardInstanceFirewallsNetworkPoliciesAttachBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsNetworkPoliciesAttachBody: + return DashboardInstanceFirewallsNetworkPoliciesAttachBody( + network_policy_id=data.get('network_policy_id'), + position=data.get('position') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsNetworkPoliciesAttachBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/network_policies/detach.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/network_policies/detach.py new file mode 100644 index 00000000..a68b185b --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/network_policies/detach.py @@ -0,0 +1,128 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules] +@dataclass +class DashboardInstanceFirewallsNetworkPoliciesDetachOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapDashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts: + return DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules: + return DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies: + return DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapDashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsNetworkPoliciesDetachOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsNetworkPoliciesDetachOutput: + return DashboardInstanceFirewallsNetworkPoliciesDetachOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapDashboardInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsNetworkPoliciesDetachOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/update.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/update.py new file mode 100644 index 00000000..a7b7c653 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/firewalls/update.py @@ -0,0 +1,155 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceFirewallsUpdateOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class DashboardInstanceFirewallsUpdateOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[DashboardInstanceFirewallsUpdateOutputNetworkPoliciesRules] +@dataclass +class DashboardInstanceFirewallsUpdateOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[DashboardInstanceFirewallsUpdateOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapDashboardInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts: + return DashboardInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsUpdateOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsUpdateOutputNetworkPoliciesRules: + return DashboardInstanceFirewallsUpdateOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsUpdateOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsUpdateOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsUpdateOutputNetworkPolicies: + return DashboardInstanceFirewallsUpdateOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapDashboardInstanceFirewallsUpdateOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsUpdateOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceFirewallsUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsUpdateOutput: + return DashboardInstanceFirewallsUpdateOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapDashboardInstanceFirewallsUpdateOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsUpdateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceFirewallsUpdateBody: + name: Optional[str] = None + description: Optional[str] = None + slug: Optional[str] = None + network_policy_ids: Optional[List[str]] = None + + +class mapDashboardInstanceFirewallsUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceFirewallsUpdateBody: + return DashboardInstanceFirewallsUpdateBody( + name=data.get('name'), + description=data.get('description'), + slug=data.get('slug'), + network_policy_ids=data.get('network_policy_ids', []) + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceFirewallsUpdateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/__init__.py new file mode 100644 index 00000000..e33eef95 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/__init__.py @@ -0,0 +1,6 @@ +from .create import * +from .delete import * +from .get import * +from .list import * +from .rules import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/create.py new file mode 100644 index 00000000..8e01ab3a --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/create.py @@ -0,0 +1,177 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceNetworkPoliciesCreateOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceNetworkPoliciesCreateOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceNetworkPoliciesCreateOutputRulesPorts]] = None +@dataclass +class DashboardInstanceNetworkPoliciesCreateOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[DashboardInstanceNetworkPoliciesCreateOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapDashboardInstanceNetworkPoliciesCreateOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesCreateOutputRulesPorts: + return DashboardInstanceNetworkPoliciesCreateOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesCreateOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesCreateOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesCreateOutputRules: + return DashboardInstanceNetworkPoliciesCreateOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceNetworkPoliciesCreateOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesCreateOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesCreateOutput: + return DashboardInstanceNetworkPoliciesCreateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapDashboardInstanceNetworkPoliciesCreateOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesCreateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceNetworkPoliciesCreateBodyRulesPorts: + from_: float + to: float +@dataclass +class DashboardInstanceNetworkPoliciesCreateBodyRules: + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceNetworkPoliciesCreateBodyRulesPorts]] = None +@dataclass +class DashboardInstanceNetworkPoliciesCreateBody: + name: str + description: Optional[str] = None + rules: Optional[List[DashboardInstanceNetworkPoliciesCreateBodyRules]] = None + + +class mapDashboardInstanceNetworkPoliciesCreateBodyRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesCreateBodyRulesPorts: + return DashboardInstanceNetworkPoliciesCreateBodyRulesPorts( + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesCreateBodyRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesCreateBodyRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesCreateBodyRules: + return DashboardInstanceNetworkPoliciesCreateBodyRules( + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceNetworkPoliciesCreateBodyRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesCreateBodyRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesCreateBody: + return DashboardInstanceNetworkPoliciesCreateBody( + name=data.get('name'), + description=data.get('description'), + rules=[mapDashboardInstanceNetworkPoliciesCreateBodyRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesCreateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/delete.py new file mode 100644 index 00000000..87b21434 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/delete.py @@ -0,0 +1,102 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceNetworkPoliciesDeleteOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceNetworkPoliciesDeleteOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceNetworkPoliciesDeleteOutputRulesPorts]] = None +@dataclass +class DashboardInstanceNetworkPoliciesDeleteOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[DashboardInstanceNetworkPoliciesDeleteOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapDashboardInstanceNetworkPoliciesDeleteOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesDeleteOutputRulesPorts: + return DashboardInstanceNetworkPoliciesDeleteOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesDeleteOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesDeleteOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesDeleteOutputRules: + return DashboardInstanceNetworkPoliciesDeleteOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceNetworkPoliciesDeleteOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesDeleteOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesDeleteOutput: + return DashboardInstanceNetworkPoliciesDeleteOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapDashboardInstanceNetworkPoliciesDeleteOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesDeleteOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/get.py new file mode 100644 index 00000000..41c1af04 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/get.py @@ -0,0 +1,102 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceNetworkPoliciesGetOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceNetworkPoliciesGetOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceNetworkPoliciesGetOutputRulesPorts]] = None +@dataclass +class DashboardInstanceNetworkPoliciesGetOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[DashboardInstanceNetworkPoliciesGetOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapDashboardInstanceNetworkPoliciesGetOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesGetOutputRulesPorts: + return DashboardInstanceNetworkPoliciesGetOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesGetOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesGetOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesGetOutputRules: + return DashboardInstanceNetworkPoliciesGetOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceNetworkPoliciesGetOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesGetOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesGetOutput: + return DashboardInstanceNetworkPoliciesGetOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapDashboardInstanceNetworkPoliciesGetOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/list.py new file mode 100644 index 00000000..342f2f92 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/list.py @@ -0,0 +1,191 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceNetworkPoliciesListOutputItemsRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceNetworkPoliciesListOutputItemsRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceNetworkPoliciesListOutputItemsRulesPorts]] = None +@dataclass +class DashboardInstanceNetworkPoliciesListOutputItems: + object: str + id: str + name: str + status: str + version: float + rules: List[DashboardInstanceNetworkPoliciesListOutputItemsRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None +@dataclass +class DashboardInstanceNetworkPoliciesListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class DashboardInstanceNetworkPoliciesListOutput: + items: List[DashboardInstanceNetworkPoliciesListOutputItems] + pagination: DashboardInstanceNetworkPoliciesListOutputPagination + + +class mapDashboardInstanceNetworkPoliciesListOutputItemsRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesListOutputItemsRulesPorts: + return DashboardInstanceNetworkPoliciesListOutputItemsRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesListOutputItemsRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesListOutputItemsRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesListOutputItemsRules: + return DashboardInstanceNetworkPoliciesListOutputItemsRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceNetworkPoliciesListOutputItemsRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesListOutputItemsRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesListOutputItems: + return DashboardInstanceNetworkPoliciesListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapDashboardInstanceNetworkPoliciesListOutputItemsRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesListOutputPagination: + return DashboardInstanceNetworkPoliciesListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesListOutput: + return DashboardInstanceNetworkPoliciesListOutput( + items=[mapDashboardInstanceNetworkPoliciesListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapDashboardInstanceNetworkPoliciesListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceNetworkPoliciesListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class DashboardInstanceNetworkPoliciesListQueryUpdatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class DashboardInstanceNetworkPoliciesListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + status: Optional[Union[str, List[str]]] = None + firewall_id: Optional[Union[str, List[str]]] = None + search: Optional[str] = None + created_at: Optional[DashboardInstanceNetworkPoliciesListQueryCreatedAt] = None + updated_at: Optional[DashboardInstanceNetworkPoliciesListQueryUpdatedAt] = None + + +class mapDashboardInstanceNetworkPoliciesListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesListQuery: + return DashboardInstanceNetworkPoliciesListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + status=data.get('status'), + firewall_id=data.get('firewall_id'), + search=data.get('search'), + created_at=mapDashboardInstanceNetworkPoliciesListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None, + updated_at=mapDashboardInstanceNetworkPoliciesListQueryUpdatedAt.from_dict(data.get('updated_at')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/__init__.py new file mode 100644 index 00000000..3f16c919 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/__init__.py @@ -0,0 +1,3 @@ +from .create import * +from .delete import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/create.py new file mode 100644 index 00000000..88e06f84 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/create.py @@ -0,0 +1,117 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceNetworkPoliciesRulesCreateOutputPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceNetworkPoliciesRulesCreateOutput: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceNetworkPoliciesRulesCreateOutputPorts]] = None + + +class mapDashboardInstanceNetworkPoliciesRulesCreateOutputPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesRulesCreateOutputPorts: + return DashboardInstanceNetworkPoliciesRulesCreateOutputPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesRulesCreateOutputPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesRulesCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesRulesCreateOutput: + return DashboardInstanceNetworkPoliciesRulesCreateOutput( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceNetworkPoliciesRulesCreateOutputPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesRulesCreateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceNetworkPoliciesRulesCreateBodyPorts: + from_: float + to: float +@dataclass +class DashboardInstanceNetworkPoliciesRulesCreateBody: + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceNetworkPoliciesRulesCreateBodyPorts]] = None + + +class mapDashboardInstanceNetworkPoliciesRulesCreateBodyPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesRulesCreateBodyPorts: + return DashboardInstanceNetworkPoliciesRulesCreateBodyPorts( + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesRulesCreateBodyPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesRulesCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesRulesCreateBody: + return DashboardInstanceNetworkPoliciesRulesCreateBody( + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceNetworkPoliciesRulesCreateBodyPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesRulesCreateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/delete.py new file mode 100644 index 00000000..2f5fb3e0 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/delete.py @@ -0,0 +1,102 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceNetworkPoliciesRulesDeleteOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceNetworkPoliciesRulesDeleteOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceNetworkPoliciesRulesDeleteOutputRulesPorts]] = None +@dataclass +class DashboardInstanceNetworkPoliciesRulesDeleteOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[DashboardInstanceNetworkPoliciesRulesDeleteOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapDashboardInstanceNetworkPoliciesRulesDeleteOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesRulesDeleteOutputRulesPorts: + return DashboardInstanceNetworkPoliciesRulesDeleteOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesRulesDeleteOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesRulesDeleteOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesRulesDeleteOutputRules: + return DashboardInstanceNetworkPoliciesRulesDeleteOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceNetworkPoliciesRulesDeleteOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesRulesDeleteOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesRulesDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesRulesDeleteOutput: + return DashboardInstanceNetworkPoliciesRulesDeleteOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapDashboardInstanceNetworkPoliciesRulesDeleteOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesRulesDeleteOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/update.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/update.py new file mode 100644 index 00000000..c5a0856c --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/rules/update.py @@ -0,0 +1,117 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceNetworkPoliciesRulesUpdateOutputPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceNetworkPoliciesRulesUpdateOutput: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceNetworkPoliciesRulesUpdateOutputPorts]] = None + + +class mapDashboardInstanceNetworkPoliciesRulesUpdateOutputPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesRulesUpdateOutputPorts: + return DashboardInstanceNetworkPoliciesRulesUpdateOutputPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesRulesUpdateOutputPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesRulesUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesRulesUpdateOutput: + return DashboardInstanceNetworkPoliciesRulesUpdateOutput( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceNetworkPoliciesRulesUpdateOutputPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesRulesUpdateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceNetworkPoliciesRulesUpdateBodyPorts: + from_: float + to: float +@dataclass +class DashboardInstanceNetworkPoliciesRulesUpdateBody: + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceNetworkPoliciesRulesUpdateBodyPorts]] = None + + +class mapDashboardInstanceNetworkPoliciesRulesUpdateBodyPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesRulesUpdateBodyPorts: + return DashboardInstanceNetworkPoliciesRulesUpdateBodyPorts( + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesRulesUpdateBodyPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesRulesUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesRulesUpdateBody: + return DashboardInstanceNetworkPoliciesRulesUpdateBody( + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceNetworkPoliciesRulesUpdateBodyPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesRulesUpdateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/update.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/update.py new file mode 100644 index 00000000..c57dfb4d --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/network_policies/update.py @@ -0,0 +1,177 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceNetworkPoliciesUpdateOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class DashboardInstanceNetworkPoliciesUpdateOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceNetworkPoliciesUpdateOutputRulesPorts]] = None +@dataclass +class DashboardInstanceNetworkPoliciesUpdateOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[DashboardInstanceNetworkPoliciesUpdateOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapDashboardInstanceNetworkPoliciesUpdateOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesUpdateOutputRulesPorts: + return DashboardInstanceNetworkPoliciesUpdateOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesUpdateOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesUpdateOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesUpdateOutputRules: + return DashboardInstanceNetworkPoliciesUpdateOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceNetworkPoliciesUpdateOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesUpdateOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesUpdateOutput: + return DashboardInstanceNetworkPoliciesUpdateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapDashboardInstanceNetworkPoliciesUpdateOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesUpdateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceNetworkPoliciesUpdateBodyRulesPorts: + from_: float + to: float +@dataclass +class DashboardInstanceNetworkPoliciesUpdateBodyRules: + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[DashboardInstanceNetworkPoliciesUpdateBodyRulesPorts]] = None +@dataclass +class DashboardInstanceNetworkPoliciesUpdateBody: + name: Optional[str] = None + description: Optional[str] = None + rules: Optional[List[DashboardInstanceNetworkPoliciesUpdateBodyRules]] = None + + +class mapDashboardInstanceNetworkPoliciesUpdateBodyRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesUpdateBodyRulesPorts: + return DashboardInstanceNetworkPoliciesUpdateBodyRulesPorts( + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesUpdateBodyRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesUpdateBodyRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesUpdateBodyRules: + return DashboardInstanceNetworkPoliciesUpdateBodyRules( + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapDashboardInstanceNetworkPoliciesUpdateBodyRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesUpdateBodyRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworkPoliciesUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworkPoliciesUpdateBody: + return DashboardInstanceNetworkPoliciesUpdateBody( + name=data.get('name'), + description=data.get('description'), + rules=[mapDashboardInstanceNetworkPoliciesUpdateBodyRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworkPoliciesUpdateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/__init__.py new file mode 100644 index 00000000..a3f095ae --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/__init__.py @@ -0,0 +1,3 @@ +from .get import * +from .list import * +from .list_network_logs import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/get.py new file mode 100644 index 00000000..b2d9b268 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/get.py @@ -0,0 +1,66 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceNetworksGetOutputPublicIps: + object: str + id: str + ip: str + region: str + created_at: datetime + updated_at: datetime +@dataclass +class DashboardInstanceNetworksGetOutput: + object: str + id: str + name: str + created_at: datetime + updated_at: datetime + public_ips: List[DashboardInstanceNetworksGetOutputPublicIps] + description: Optional[str] = None + + +class mapDashboardInstanceNetworksGetOutputPublicIps: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworksGetOutputPublicIps: + return DashboardInstanceNetworksGetOutputPublicIps( + object=data.get('object'), + id=data.get('id'), + ip=data.get('ip'), + region=data.get('region'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworksGetOutputPublicIps, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworksGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworksGetOutput: + return DashboardInstanceNetworksGetOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + public_ips=[mapDashboardInstanceNetworksGetOutputPublicIps.from_dict(item) for item in data.get('public_ips', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworksGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/list.py new file mode 100644 index 00000000..5d633e91 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/list.py @@ -0,0 +1,153 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceNetworksListOutputItemsPublicIps: + object: str + id: str + ip: str + region: str + created_at: datetime + updated_at: datetime +@dataclass +class DashboardInstanceNetworksListOutputItems: + object: str + id: str + name: str + created_at: datetime + updated_at: datetime + public_ips: List[DashboardInstanceNetworksListOutputItemsPublicIps] + description: Optional[str] = None +@dataclass +class DashboardInstanceNetworksListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class DashboardInstanceNetworksListOutput: + items: List[DashboardInstanceNetworksListOutputItems] + pagination: DashboardInstanceNetworksListOutputPagination + + +class mapDashboardInstanceNetworksListOutputItemsPublicIps: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworksListOutputItemsPublicIps: + return DashboardInstanceNetworksListOutputItemsPublicIps( + object=data.get('object'), + id=data.get('id'), + ip=data.get('ip'), + region=data.get('region'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworksListOutputItemsPublicIps, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworksListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworksListOutputItems: + return DashboardInstanceNetworksListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + public_ips=[mapDashboardInstanceNetworksListOutputItemsPublicIps.from_dict(item) for item in data.get('public_ips', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworksListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworksListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworksListOutputPagination: + return DashboardInstanceNetworksListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworksListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworksListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworksListOutput: + return DashboardInstanceNetworksListOutput( + items=[mapDashboardInstanceNetworksListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapDashboardInstanceNetworksListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworksListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceNetworksListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class DashboardInstanceNetworksListQueryUpdatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class DashboardInstanceNetworksListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + firewall_id: Optional[Union[str, List[str]]] = None + enclave_id: Optional[Union[str, List[str]]] = None + created_at: Optional[DashboardInstanceNetworksListQueryCreatedAt] = None + updated_at: Optional[DashboardInstanceNetworksListQueryUpdatedAt] = None + + +class mapDashboardInstanceNetworksListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworksListQuery: + return DashboardInstanceNetworksListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + firewall_id=data.get('firewall_id'), + enclave_id=data.get('enclave_id'), + created_at=mapDashboardInstanceNetworksListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None, + updated_at=mapDashboardInstanceNetworksListQueryUpdatedAt.from_dict(data.get('updated_at')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworksListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/list_network_logs.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/list_network_logs.py new file mode 100644 index 00000000..9d35b6ee --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/networks/list_network_logs.py @@ -0,0 +1,103 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceNetworksListNetworkLogsOutputRecords: + object: str + direction: str + enclave_id: str + bucket_start: str + hostname: str + ip: str + port: float + count: float + first_seen_at: str + last_seen_at: str + result: Optional[str] = None +@dataclass +class DashboardInstanceNetworksListNetworkLogsOutput: + object: str + direction: str + enclave_ids: List[str] + records: List[DashboardInstanceNetworksListNetworkLogsOutputRecords] + + +class mapDashboardInstanceNetworksListNetworkLogsOutputRecords: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworksListNetworkLogsOutputRecords: + return DashboardInstanceNetworksListNetworkLogsOutputRecords( + object=data.get('object'), + direction=data.get('direction'), + enclave_id=data.get('enclave_id'), + bucket_start=data.get('bucket_start'), + hostname=data.get('hostname'), + ip=data.get('ip'), + port=data.get('port'), + count=data.get('count'), + result=data.get('result'), + first_seen_at=data.get('first_seen_at'), + last_seen_at=data.get('last_seen_at') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworksListNetworkLogsOutputRecords, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceNetworksListNetworkLogsOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworksListNetworkLogsOutput: + return DashboardInstanceNetworksListNetworkLogsOutput( + object=data.get('object'), + direction=data.get('direction'), + enclave_ids=data.get('enclave_ids', []), + records=[mapDashboardInstanceNetworksListNetworkLogsOutputRecords.from_dict(item) for item in data.get('records', []) if item] + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworksListNetworkLogsOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceNetworksListNetworkLogsQuery: + direction: str + enclave_id: Optional[Union[str, List[str]]] = None + hostname: Optional[Union[str, List[str]]] = None + ip: Optional[Union[str, List[str]]] = None + from_: Optional[str] = None + to: Optional[str] = None + interval_minutes: Optional[float] = None + + +class mapDashboardInstanceNetworksListNetworkLogsQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceNetworksListNetworkLogsQuery: + return DashboardInstanceNetworksListNetworkLogsQuery( + direction=data.get('direction'), + enclave_id=data.get('enclave_id'), + hostname=data.get('hostname'), + ip=data.get('ip'), + from_=data.get('from'), + to=data.get('to'), + interval_minutes=data.get('interval_minutes') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceNetworksListNetworkLogsQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/__init__.py new file mode 100644 index 00000000..6ac1ccc3 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/__init__.py @@ -0,0 +1 @@ +from .tools import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/tools/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/tools/__init__.py similarity index 100% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/tools/__init__.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/tools/__init__.py diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/tools/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/tools/get.py similarity index 50% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/tools/get.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/tools/get.py index a0d6061d..77543b63 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/tools/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/tools/get.py @@ -4,19 +4,19 @@ import dataclasses @dataclass -class ManagementInstanceProvidersToolsGetOutputInputSchema: +class DashboardInstanceProviderToolsGetOutputInputSchema: type: str schema: Dict[str, Any] @dataclass -class ManagementInstanceProvidersToolsGetOutputOutputSchema: +class DashboardInstanceProviderToolsGetOutputOutputSchema: type: str schema: Dict[str, Any] @dataclass -class ManagementInstanceProvidersToolsGetOutputTags: +class DashboardInstanceProviderToolsGetOutputTags: destructive: Optional[bool] = None read_only: Optional[bool] = None @dataclass -class ManagementInstanceProvidersToolsGetOutput: +class DashboardInstanceProviderToolsGetOutput: object: str id: str key: str @@ -29,63 +29,63 @@ class ManagementInstanceProvidersToolsGetOutput: created_at: datetime updated_at: datetime description: Optional[str] = None - input_schema: Optional[ManagementInstanceProvidersToolsGetOutputInputSchema] = None - output_schema: Optional[ManagementInstanceProvidersToolsGetOutputOutputSchema] = None - tags: Optional[ManagementInstanceProvidersToolsGetOutputTags] = None + input_schema: Optional[DashboardInstanceProviderToolsGetOutputInputSchema] = None + output_schema: Optional[DashboardInstanceProviderToolsGetOutputOutputSchema] = None + tags: Optional[DashboardInstanceProviderToolsGetOutputTags] = None -class mapManagementInstanceProvidersToolsGetOutputInputSchema: +class mapDashboardInstanceProviderToolsGetOutputInputSchema: @staticmethod - def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsGetOutputInputSchema: - return ManagementInstanceProvidersToolsGetOutputInputSchema( + def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderToolsGetOutputInputSchema: + return DashboardInstanceProviderToolsGetOutputInputSchema( type=data.get('type'), schema=data.get('schema') ) @staticmethod - def to_dict(value: Union[ManagementInstanceProvidersToolsGetOutputInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardInstanceProviderToolsGetOutputInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapManagementInstanceProvidersToolsGetOutputOutputSchema: +class mapDashboardInstanceProviderToolsGetOutputOutputSchema: @staticmethod - def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsGetOutputOutputSchema: - return ManagementInstanceProvidersToolsGetOutputOutputSchema( + def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderToolsGetOutputOutputSchema: + return DashboardInstanceProviderToolsGetOutputOutputSchema( type=data.get('type'), schema=data.get('schema') ) @staticmethod - def to_dict(value: Union[ManagementInstanceProvidersToolsGetOutputOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardInstanceProviderToolsGetOutputOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapManagementInstanceProvidersToolsGetOutputTags: +class mapDashboardInstanceProviderToolsGetOutputTags: @staticmethod - def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsGetOutputTags: - return ManagementInstanceProvidersToolsGetOutputTags( + def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderToolsGetOutputTags: + return DashboardInstanceProviderToolsGetOutputTags( destructive=data.get('destructive'), read_only=data.get('read_only') ) @staticmethod - def to_dict(value: Union[ManagementInstanceProvidersToolsGetOutputTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardInstanceProviderToolsGetOutputTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapManagementInstanceProvidersToolsGetOutput: +class mapDashboardInstanceProviderToolsGetOutput: @staticmethod - def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsGetOutput: - return ManagementInstanceProvidersToolsGetOutput( + def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderToolsGetOutput: + return DashboardInstanceProviderToolsGetOutput( object=data.get('object'), id=data.get('id'), key=data.get('key'), @@ -94,9 +94,9 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsGetOutput capabilities=data.get('capabilities'), constraints=data.get('constraints', []), instructions=data.get('instructions', []), - input_schema=mapManagementInstanceProvidersToolsGetOutputInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, - output_schema=mapManagementInstanceProvidersToolsGetOutputOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, - tags=mapManagementInstanceProvidersToolsGetOutputTags.from_dict(data.get('tags')) if data.get('tags') else None, + input_schema=mapDashboardInstanceProviderToolsGetOutputInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, + output_schema=mapDashboardInstanceProviderToolsGetOutputOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, + tags=mapDashboardInstanceProviderToolsGetOutputTags.from_dict(data.get('tags')) if data.get('tags') else None, specification_id=data.get('specification_id'), provider_id=data.get('provider_id'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, @@ -104,7 +104,7 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsGetOutput ) @staticmethod - def to_dict(value: Union[ManagementInstanceProvidersToolsGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[DashboardInstanceProviderToolsGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/tools/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/tools/list.py new file mode 100644 index 00000000..63f82325 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider/tools/list.py @@ -0,0 +1,185 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class DashboardInstanceProviderToolsListOutputItemsInputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class DashboardInstanceProviderToolsListOutputItemsOutputSchema: + type: str + schema: Dict[str, Any] +@dataclass +class DashboardInstanceProviderToolsListOutputItemsTags: + destructive: Optional[bool] = None + read_only: Optional[bool] = None +@dataclass +class DashboardInstanceProviderToolsListOutputItems: + object: str + id: str + key: str + name: str + capabilities: Dict[str, Any] + constraints: List[str] + instructions: List[str] + specification_id: str + provider_id: str + created_at: datetime + updated_at: datetime + description: Optional[str] = None + input_schema: Optional[DashboardInstanceProviderToolsListOutputItemsInputSchema] = None + output_schema: Optional[DashboardInstanceProviderToolsListOutputItemsOutputSchema] = None + tags: Optional[DashboardInstanceProviderToolsListOutputItemsTags] = None +@dataclass +class DashboardInstanceProviderToolsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class DashboardInstanceProviderToolsListOutput: + items: List[DashboardInstanceProviderToolsListOutputItems] + pagination: DashboardInstanceProviderToolsListOutputPagination + + +class mapDashboardInstanceProviderToolsListOutputItemsInputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderToolsListOutputItemsInputSchema: + return DashboardInstanceProviderToolsListOutputItemsInputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceProviderToolsListOutputItemsInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceProviderToolsListOutputItemsOutputSchema: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderToolsListOutputItemsOutputSchema: + return DashboardInstanceProviderToolsListOutputItemsOutputSchema( + type=data.get('type'), + schema=data.get('schema') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceProviderToolsListOutputItemsOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceProviderToolsListOutputItemsTags: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderToolsListOutputItemsTags: + return DashboardInstanceProviderToolsListOutputItemsTags( + destructive=data.get('destructive'), + read_only=data.get('read_only') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceProviderToolsListOutputItemsTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceProviderToolsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderToolsListOutputItems: + return DashboardInstanceProviderToolsListOutputItems( + object=data.get('object'), + id=data.get('id'), + key=data.get('key'), + name=data.get('name'), + description=data.get('description'), + capabilities=data.get('capabilities'), + constraints=data.get('constraints', []), + instructions=data.get('instructions', []), + input_schema=mapDashboardInstanceProviderToolsListOutputItemsInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, + output_schema=mapDashboardInstanceProviderToolsListOutputItemsOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, + tags=mapDashboardInstanceProviderToolsListOutputItemsTags.from_dict(data.get('tags')) if data.get('tags') else None, + specification_id=data.get('specification_id'), + provider_id=data.get('provider_id'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceProviderToolsListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceProviderToolsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderToolsListOutputPagination: + return DashboardInstanceProviderToolsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceProviderToolsListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapDashboardInstanceProviderToolsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderToolsListOutput: + return DashboardInstanceProviderToolsListOutput( + items=[mapDashboardInstanceProviderToolsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapDashboardInstanceProviderToolsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceProviderToolsListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class DashboardInstanceProviderToolsListQuery: + provider_version_id: str + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + + +class mapDashboardInstanceProviderToolsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderToolsListQuery: + return DashboardInstanceProviderToolsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + provider_version_id=data.get('provider_version_id') + ) + + @staticmethod + def to_dict(value: Union[DashboardInstanceProviderToolsListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/create.py index 8d5618b1..d3aa49a5 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/create.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/provider_templates/create.py @@ -54,9 +54,10 @@ class DashboardInstanceProviderTemplatesCreateBodyProviders: @dataclass class DashboardInstanceProviderTemplatesCreateBody: name: str - providers: List[DashboardInstanceProviderTemplatesCreateBodyProviders] description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + providers: Optional[List[DashboardInstanceProviderTemplatesCreateBodyProviders]] = None + integration_id: Optional[str] = None class mapDashboardInstanceProviderTemplatesCreateBodyProviders: @@ -89,7 +90,8 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProviderTemplatesCreateB name=data.get('name'), description=data.get('description'), metadata=data.get('metadata'), - providers=[mapDashboardInstanceProviderTemplatesCreateBodyProviders.from_dict(item) for item in data.get('providers', []) if item] + providers=[mapDashboardInstanceProviderTemplatesCreateBodyProviders.from_dict(item) for item in data.get('providers', []) if item], + integration_id=data.get('integration_id') ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/providers/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/providers/__init__.py index 6ccd84b4..6ed28a91 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/providers/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/providers/__init__.py @@ -2,6 +2,5 @@ from .get import * from .list import * from .specifications import * -from .tools import * from .triggers import * from .versions import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/providers/tools/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/enclaves/__init__.py similarity index 100% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/providers/tools/__init__.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/enclaves/__init__.py diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/enclaves/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/enclaves/get.py new file mode 100644 index 00000000..1c368dc5 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/enclaves/get.py @@ -0,0 +1,70 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class EnclavesGetOutputEnclaveEnvironment: + object: str + id: str + name: str + type: str + created_at: datetime +@dataclass +class EnclavesGetOutput: + object: str + id: str + slug: str + name: str + network_id: str + provider_deployment_id: str + enclave_environment: EnclavesGetOutputEnclaveEnvironment + created_at: datetime + description: Optional[str] = None + last_used_at: Optional[datetime] = None + + +class mapEnclavesGetOutputEnclaveEnvironment: + @staticmethod + def from_dict(data: Dict[str, Any]) -> EnclavesGetOutputEnclaveEnvironment: + return EnclavesGetOutputEnclaveEnvironment( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + type=data.get('type'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[EnclavesGetOutputEnclaveEnvironment, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapEnclavesGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> EnclavesGetOutput: + return EnclavesGetOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + network_id=data.get('network_id'), + provider_deployment_id=data.get('provider_deployment_id'), + enclave_environment=mapEnclavesGetOutputEnclaveEnvironment.from_dict(data.get('enclave_environment')) if data.get('enclave_environment') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None + ) + + @staticmethod + def to_dict(value: Union[EnclavesGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/enclaves/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/enclaves/list.py new file mode 100644 index 00000000..3664f931 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/enclaves/list.py @@ -0,0 +1,157 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class EnclavesListOutputItemsEnclaveEnvironment: + object: str + id: str + name: str + type: str + created_at: datetime +@dataclass +class EnclavesListOutputItems: + object: str + id: str + slug: str + name: str + network_id: str + provider_deployment_id: str + enclave_environment: EnclavesListOutputItemsEnclaveEnvironment + created_at: datetime + description: Optional[str] = None + last_used_at: Optional[datetime] = None +@dataclass +class EnclavesListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class EnclavesListOutput: + items: List[EnclavesListOutputItems] + pagination: EnclavesListOutputPagination + + +class mapEnclavesListOutputItemsEnclaveEnvironment: + @staticmethod + def from_dict(data: Dict[str, Any]) -> EnclavesListOutputItemsEnclaveEnvironment: + return EnclavesListOutputItemsEnclaveEnvironment( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + type=data.get('type'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[EnclavesListOutputItemsEnclaveEnvironment, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapEnclavesListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> EnclavesListOutputItems: + return EnclavesListOutputItems( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + network_id=data.get('network_id'), + provider_deployment_id=data.get('provider_deployment_id'), + enclave_environment=mapEnclavesListOutputItemsEnclaveEnvironment.from_dict(data.get('enclave_environment')) if data.get('enclave_environment') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None + ) + + @staticmethod + def to_dict(value: Union[EnclavesListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapEnclavesListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> EnclavesListOutputPagination: + return EnclavesListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[EnclavesListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapEnclavesListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> EnclavesListOutput: + return EnclavesListOutput( + items=[mapEnclavesListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapEnclavesListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[EnclavesListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class EnclavesListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class EnclavesListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + slug: Optional[Union[str, List[str]]] = None + network_id: Optional[Union[str, List[str]]] = None + provider_deployment_id: Optional[Union[str, List[str]]] = None + provider_id: Optional[Union[str, List[str]]] = None + firewall_id: Optional[Union[str, List[str]]] = None + created_at: Optional[EnclavesListQueryCreatedAt] = None + + +class mapEnclavesListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> EnclavesListQuery: + return EnclavesListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + slug=data.get('slug'), + network_id=data.get('network_id'), + provider_deployment_id=data.get('provider_deployment_id'), + provider_id=data.get('provider_id'), + firewall_id=data.get('firewall_id'), + created_at=mapEnclavesListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[EnclavesListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/__init__.py new file mode 100644 index 00000000..26672d14 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/__init__.py @@ -0,0 +1,4 @@ +from .create import * +from .delete import * +from .get import * +from .list import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/create.py new file mode 100644 index 00000000..244a3b0e --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/create.py @@ -0,0 +1,113 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class FirewallBindingsCreateOutputFirewall: + object: str + id: str + slug: str + name: str +@dataclass +class FirewallBindingsCreateOutputTarget: + object: str + type: str + id: str + name: str +@dataclass +class FirewallBindingsCreateOutput: + object: str + id: str + target_type: str + firewall: FirewallBindingsCreateOutputFirewall + created_at: datetime + target: Optional[FirewallBindingsCreateOutputTarget] = None + + +class mapFirewallBindingsCreateOutputFirewall: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsCreateOutputFirewall: + return FirewallBindingsCreateOutputFirewall( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsCreateOutputFirewall, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallBindingsCreateOutputTarget: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsCreateOutputTarget: + return FirewallBindingsCreateOutputTarget( + object=data.get('object'), + type=data.get('type'), + id=data.get('id'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsCreateOutputTarget, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallBindingsCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsCreateOutput: + return FirewallBindingsCreateOutput( + object=data.get('object'), + id=data.get('id'), + target_type=data.get('target_type'), + firewall=mapFirewallBindingsCreateOutputFirewall.from_dict(data.get('firewall')) if data.get('firewall') else None, + target=mapFirewallBindingsCreateOutputTarget.from_dict(data.get('target')) if data.get('target') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsCreateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class FirewallBindingsCreateBody: + firewall_id: str + target_type: str + enclave_id: Optional[str] = None + provider_id: Optional[str] = None + network_id: Optional[str] = None + + +class mapFirewallBindingsCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsCreateBody: + return FirewallBindingsCreateBody( + firewall_id=data.get('firewall_id'), + target_type=data.get('target_type'), + enclave_id=data.get('enclave_id'), + provider_id=data.get('provider_id'), + network_id=data.get('network_id') + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsCreateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/delete.py new file mode 100644 index 00000000..b7b2101d --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/delete.py @@ -0,0 +1,84 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class FirewallBindingsDeleteOutputFirewall: + object: str + id: str + slug: str + name: str +@dataclass +class FirewallBindingsDeleteOutputTarget: + object: str + type: str + id: str + name: str +@dataclass +class FirewallBindingsDeleteOutput: + object: str + id: str + target_type: str + firewall: FirewallBindingsDeleteOutputFirewall + created_at: datetime + target: Optional[FirewallBindingsDeleteOutputTarget] = None + + +class mapFirewallBindingsDeleteOutputFirewall: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsDeleteOutputFirewall: + return FirewallBindingsDeleteOutputFirewall( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsDeleteOutputFirewall, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallBindingsDeleteOutputTarget: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsDeleteOutputTarget: + return FirewallBindingsDeleteOutputTarget( + object=data.get('object'), + type=data.get('type'), + id=data.get('id'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsDeleteOutputTarget, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallBindingsDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsDeleteOutput: + return FirewallBindingsDeleteOutput( + object=data.get('object'), + id=data.get('id'), + target_type=data.get('target_type'), + firewall=mapFirewallBindingsDeleteOutputFirewall.from_dict(data.get('firewall')) if data.get('firewall') else None, + target=mapFirewallBindingsDeleteOutputTarget.from_dict(data.get('target')) if data.get('target') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsDeleteOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/get.py new file mode 100644 index 00000000..5d39ef99 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/get.py @@ -0,0 +1,84 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class FirewallBindingsGetOutputFirewall: + object: str + id: str + slug: str + name: str +@dataclass +class FirewallBindingsGetOutputTarget: + object: str + type: str + id: str + name: str +@dataclass +class FirewallBindingsGetOutput: + object: str + id: str + target_type: str + firewall: FirewallBindingsGetOutputFirewall + created_at: datetime + target: Optional[FirewallBindingsGetOutputTarget] = None + + +class mapFirewallBindingsGetOutputFirewall: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsGetOutputFirewall: + return FirewallBindingsGetOutputFirewall( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsGetOutputFirewall, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallBindingsGetOutputTarget: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsGetOutputTarget: + return FirewallBindingsGetOutputTarget( + object=data.get('object'), + type=data.get('type'), + id=data.get('id'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsGetOutputTarget, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallBindingsGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsGetOutput: + return FirewallBindingsGetOutput( + object=data.get('object'), + id=data.get('id'), + target_type=data.get('target_type'), + firewall=mapFirewallBindingsGetOutputFirewall.from_dict(data.get('firewall')) if data.get('firewall') else None, + target=mapFirewallBindingsGetOutputTarget.from_dict(data.get('target')) if data.get('target') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/list.py new file mode 100644 index 00000000..39672f94 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewall_bindings/list.py @@ -0,0 +1,171 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class FirewallBindingsListOutputItemsFirewall: + object: str + id: str + slug: str + name: str +@dataclass +class FirewallBindingsListOutputItemsTarget: + object: str + type: str + id: str + name: str +@dataclass +class FirewallBindingsListOutputItems: + object: str + id: str + target_type: str + firewall: FirewallBindingsListOutputItemsFirewall + created_at: datetime + target: Optional[FirewallBindingsListOutputItemsTarget] = None +@dataclass +class FirewallBindingsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class FirewallBindingsListOutput: + items: List[FirewallBindingsListOutputItems] + pagination: FirewallBindingsListOutputPagination + + +class mapFirewallBindingsListOutputItemsFirewall: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsListOutputItemsFirewall: + return FirewallBindingsListOutputItemsFirewall( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsListOutputItemsFirewall, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallBindingsListOutputItemsTarget: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsListOutputItemsTarget: + return FirewallBindingsListOutputItemsTarget( + object=data.get('object'), + type=data.get('type'), + id=data.get('id'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsListOutputItemsTarget, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallBindingsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsListOutputItems: + return FirewallBindingsListOutputItems( + object=data.get('object'), + id=data.get('id'), + target_type=data.get('target_type'), + firewall=mapFirewallBindingsListOutputItemsFirewall.from_dict(data.get('firewall')) if data.get('firewall') else None, + target=mapFirewallBindingsListOutputItemsTarget.from_dict(data.get('target')) if data.get('target') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallBindingsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsListOutputPagination: + return FirewallBindingsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallBindingsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsListOutput: + return FirewallBindingsListOutput( + items=[mapFirewallBindingsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapFirewallBindingsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class FirewallBindingsListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class FirewallBindingsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + firewall_id: Optional[Union[str, List[str]]] = None + enclave_id: Optional[Union[str, List[str]]] = None + provider_id: Optional[Union[str, List[str]]] = None + network_id: Optional[Union[str, List[str]]] = None + target_type: Optional[Union[str, List[str]]] = None + created_at: Optional[FirewallBindingsListQueryCreatedAt] = None + + +class mapFirewallBindingsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallBindingsListQuery: + return FirewallBindingsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + firewall_id=data.get('firewall_id'), + enclave_id=data.get('enclave_id'), + provider_id=data.get('provider_id'), + network_id=data.get('network_id'), + target_type=data.get('target_type'), + created_at=mapFirewallBindingsListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallBindingsListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/__init__.py new file mode 100644 index 00000000..9d38d38a --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/__init__.py @@ -0,0 +1,6 @@ +from .create import * +from .delete import * +from .get import * +from .list import * +from .network_policies import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/create.py new file mode 100644 index 00000000..0e175c9b --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/create.py @@ -0,0 +1,183 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class FirewallsCreateOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class FirewallsCreateOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[FirewallsCreateOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class FirewallsCreateOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[FirewallsCreateOutputNetworkPoliciesRules] +@dataclass +class FirewallsCreateOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[FirewallsCreateOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapFirewallsCreateOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsCreateOutputNetworkPoliciesRulesPorts: + return FirewallsCreateOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[FirewallsCreateOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsCreateOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsCreateOutputNetworkPoliciesRules: + return FirewallsCreateOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapFirewallsCreateOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsCreateOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsCreateOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsCreateOutputNetworkPolicies: + return FirewallsCreateOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapFirewallsCreateOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsCreateOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsCreateOutput: + return FirewallsCreateOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapFirewallsCreateOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallsCreateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class FirewallsCreateBodyBindings: + target_type: str + enclave_id: Optional[str] = None + provider_id: Optional[str] = None + network_id: Optional[str] = None +@dataclass +class FirewallsCreateBody: + name: str + network_id: str + description: Optional[str] = None + slug: Optional[str] = None + bindings: Optional[List[FirewallsCreateBodyBindings]] = None + network_policy_ids: Optional[List[str]] = None + + +class mapFirewallsCreateBodyBindings: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsCreateBodyBindings: + return FirewallsCreateBodyBindings( + target_type=data.get('target_type'), + enclave_id=data.get('enclave_id'), + provider_id=data.get('provider_id'), + network_id=data.get('network_id') + ) + + @staticmethod + def to_dict(value: Union[FirewallsCreateBodyBindings, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsCreateBody: + return FirewallsCreateBody( + name=data.get('name'), + description=data.get('description'), + slug=data.get('slug'), + network_id=data.get('network_id'), + bindings=[mapFirewallsCreateBodyBindings.from_dict(item) for item in data.get('bindings', []) if item], + network_policy_ids=data.get('network_policy_ids', []) + ) + + @staticmethod + def to_dict(value: Union[FirewallsCreateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/delete.py new file mode 100644 index 00000000..607bbf6e --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/delete.py @@ -0,0 +1,128 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class FirewallsDeleteOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class FirewallsDeleteOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[FirewallsDeleteOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class FirewallsDeleteOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[FirewallsDeleteOutputNetworkPoliciesRules] +@dataclass +class FirewallsDeleteOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[FirewallsDeleteOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapFirewallsDeleteOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsDeleteOutputNetworkPoliciesRulesPorts: + return FirewallsDeleteOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[FirewallsDeleteOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsDeleteOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsDeleteOutputNetworkPoliciesRules: + return FirewallsDeleteOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapFirewallsDeleteOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsDeleteOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsDeleteOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsDeleteOutputNetworkPolicies: + return FirewallsDeleteOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapFirewallsDeleteOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsDeleteOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsDeleteOutput: + return FirewallsDeleteOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapFirewallsDeleteOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallsDeleteOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/get.py new file mode 100644 index 00000000..dfb9f205 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/get.py @@ -0,0 +1,128 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class FirewallsGetOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class FirewallsGetOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[FirewallsGetOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class FirewallsGetOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[FirewallsGetOutputNetworkPoliciesRules] +@dataclass +class FirewallsGetOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[FirewallsGetOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapFirewallsGetOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsGetOutputNetworkPoliciesRulesPorts: + return FirewallsGetOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[FirewallsGetOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsGetOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsGetOutputNetworkPoliciesRules: + return FirewallsGetOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapFirewallsGetOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsGetOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsGetOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsGetOutputNetworkPolicies: + return FirewallsGetOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapFirewallsGetOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsGetOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsGetOutput: + return FirewallsGetOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapFirewallsGetOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallsGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/list.py new file mode 100644 index 00000000..79dbfde7 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/list.py @@ -0,0 +1,223 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class FirewallsListOutputItemsNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class FirewallsListOutputItemsNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[FirewallsListOutputItemsNetworkPoliciesRulesPorts]] = None +@dataclass +class FirewallsListOutputItemsNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[FirewallsListOutputItemsNetworkPoliciesRules] +@dataclass +class FirewallsListOutputItems: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[FirewallsListOutputItemsNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None +@dataclass +class FirewallsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class FirewallsListOutput: + items: List[FirewallsListOutputItems] + pagination: FirewallsListOutputPagination + + +class mapFirewallsListOutputItemsNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsListOutputItemsNetworkPoliciesRulesPorts: + return FirewallsListOutputItemsNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[FirewallsListOutputItemsNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsListOutputItemsNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsListOutputItemsNetworkPoliciesRules: + return FirewallsListOutputItemsNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapFirewallsListOutputItemsNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsListOutputItemsNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsListOutputItemsNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsListOutputItemsNetworkPolicies: + return FirewallsListOutputItemsNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapFirewallsListOutputItemsNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsListOutputItemsNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsListOutputItems: + return FirewallsListOutputItems( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapFirewallsListOutputItemsNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallsListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsListOutputPagination: + return FirewallsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[FirewallsListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsListOutput: + return FirewallsListOutput( + items=[mapFirewallsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapFirewallsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallsListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class FirewallsListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class FirewallsListQueryUpdatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class FirewallsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + slug: Optional[Union[str, List[str]]] = None + status: Optional[Union[str, List[str]]] = None + network_id: Optional[Union[str, List[str]]] = None + enclave_id: Optional[Union[str, List[str]]] = None + provider_id: Optional[Union[str, List[str]]] = None + network_policy_id: Optional[Union[str, List[str]]] = None + created_at: Optional[FirewallsListQueryCreatedAt] = None + updated_at: Optional[FirewallsListQueryUpdatedAt] = None + + +class mapFirewallsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsListQuery: + return FirewallsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + slug=data.get('slug'), + status=data.get('status'), + network_id=data.get('network_id'), + enclave_id=data.get('enclave_id'), + provider_id=data.get('provider_id'), + network_policy_id=data.get('network_policy_id'), + created_at=mapFirewallsListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None, + updated_at=mapFirewallsListQueryUpdatedAt.from_dict(data.get('updated_at')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallsListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/network_policies/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/network_policies/__init__.py new file mode 100644 index 00000000..479f51bf --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/network_policies/__init__.py @@ -0,0 +1,2 @@ +from .attach import * +from .detach import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/network_policies/attach.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/network_policies/attach.py new file mode 100644 index 00000000..4915c280 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/network_policies/attach.py @@ -0,0 +1,151 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class FirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class FirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[FirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class FirewallsNetworkPoliciesAttachOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[FirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules] +@dataclass +class FirewallsNetworkPoliciesAttachOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[FirewallsNetworkPoliciesAttachOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts: + return FirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[FirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules: + return FirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsNetworkPoliciesAttachOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsNetworkPoliciesAttachOutputNetworkPolicies: + return FirewallsNetworkPoliciesAttachOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsNetworkPoliciesAttachOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsNetworkPoliciesAttachOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsNetworkPoliciesAttachOutput: + return FirewallsNetworkPoliciesAttachOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapFirewallsNetworkPoliciesAttachOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallsNetworkPoliciesAttachOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class FirewallsNetworkPoliciesAttachBody: + network_policy_id: str + position: Optional[float] = None + + +class mapFirewallsNetworkPoliciesAttachBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsNetworkPoliciesAttachBody: + return FirewallsNetworkPoliciesAttachBody( + network_policy_id=data.get('network_policy_id'), + position=data.get('position') + ) + + @staticmethod + def to_dict(value: Union[FirewallsNetworkPoliciesAttachBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/network_policies/detach.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/network_policies/detach.py new file mode 100644 index 00000000..8e4d9b34 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/network_policies/detach.py @@ -0,0 +1,128 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class FirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class FirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[FirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class FirewallsNetworkPoliciesDetachOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[FirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules] +@dataclass +class FirewallsNetworkPoliciesDetachOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[FirewallsNetworkPoliciesDetachOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts: + return FirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[FirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules: + return FirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsNetworkPoliciesDetachOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsNetworkPoliciesDetachOutputNetworkPolicies: + return FirewallsNetworkPoliciesDetachOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsNetworkPoliciesDetachOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsNetworkPoliciesDetachOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsNetworkPoliciesDetachOutput: + return FirewallsNetworkPoliciesDetachOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapFirewallsNetworkPoliciesDetachOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallsNetworkPoliciesDetachOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/update.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/update.py new file mode 100644 index 00000000..d745aefc --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/firewalls/update.py @@ -0,0 +1,155 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class FirewallsUpdateOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class FirewallsUpdateOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[FirewallsUpdateOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class FirewallsUpdateOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[FirewallsUpdateOutputNetworkPoliciesRules] +@dataclass +class FirewallsUpdateOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[FirewallsUpdateOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapFirewallsUpdateOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsUpdateOutputNetworkPoliciesRulesPorts: + return FirewallsUpdateOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[FirewallsUpdateOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsUpdateOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsUpdateOutputNetworkPoliciesRules: + return FirewallsUpdateOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapFirewallsUpdateOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsUpdateOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsUpdateOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsUpdateOutputNetworkPolicies: + return FirewallsUpdateOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapFirewallsUpdateOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[FirewallsUpdateOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapFirewallsUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsUpdateOutput: + return FirewallsUpdateOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapFirewallsUpdateOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[FirewallsUpdateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class FirewallsUpdateBody: + name: Optional[str] = None + description: Optional[str] = None + slug: Optional[str] = None + network_policy_ids: Optional[List[str]] = None + + +class mapFirewallsUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> FirewallsUpdateBody: + return FirewallsUpdateBody( + name=data.get('name'), + description=data.get('description'), + slug=data.get('slug'), + network_policy_ids=data.get('network_policy_ids', []) + ) + + @staticmethod + def to_dict(value: Union[FirewallsUpdateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/__init__.py index 01f9b497..f718dc42 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/__init__.py @@ -6,7 +6,10 @@ from .conversations import * from .custom_providers import * from .documents import * +from .enclaves import * from .files import * +from .firewall_bindings import * +from .firewalls import * from .identities import * from .identity_actors import * from .instance import * @@ -16,7 +19,10 @@ from .magic_mcp_servers import * from .magic_mcp_sessions import * from .magic_mcp_tokens import * +from .network_policies import * +from .networks import * from .portals import * +from .provider import * from .provider_categories import * from .provider_collections import * from .provider_deployments import * diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/enclaves/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/enclaves/__init__.py new file mode 100644 index 00000000..65eb373b --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/enclaves/__init__.py @@ -0,0 +1,2 @@ +from .get import * +from .list import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/enclaves/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/enclaves/get.py new file mode 100644 index 00000000..86b94f94 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/enclaves/get.py @@ -0,0 +1,70 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceEnclavesGetOutputEnclaveEnvironment: + object: str + id: str + name: str + type: str + created_at: datetime +@dataclass +class ManagementInstanceEnclavesGetOutput: + object: str + id: str + slug: str + name: str + network_id: str + provider_deployment_id: str + enclave_environment: ManagementInstanceEnclavesGetOutputEnclaveEnvironment + created_at: datetime + description: Optional[str] = None + last_used_at: Optional[datetime] = None + + +class mapManagementInstanceEnclavesGetOutputEnclaveEnvironment: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceEnclavesGetOutputEnclaveEnvironment: + return ManagementInstanceEnclavesGetOutputEnclaveEnvironment( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + type=data.get('type'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceEnclavesGetOutputEnclaveEnvironment, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceEnclavesGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceEnclavesGetOutput: + return ManagementInstanceEnclavesGetOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + network_id=data.get('network_id'), + provider_deployment_id=data.get('provider_deployment_id'), + enclave_environment=mapManagementInstanceEnclavesGetOutputEnclaveEnvironment.from_dict(data.get('enclave_environment')) if data.get('enclave_environment') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceEnclavesGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/enclaves/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/enclaves/list.py new file mode 100644 index 00000000..04a12e12 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/enclaves/list.py @@ -0,0 +1,157 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceEnclavesListOutputItemsEnclaveEnvironment: + object: str + id: str + name: str + type: str + created_at: datetime +@dataclass +class ManagementInstanceEnclavesListOutputItems: + object: str + id: str + slug: str + name: str + network_id: str + provider_deployment_id: str + enclave_environment: ManagementInstanceEnclavesListOutputItemsEnclaveEnvironment + created_at: datetime + description: Optional[str] = None + last_used_at: Optional[datetime] = None +@dataclass +class ManagementInstanceEnclavesListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class ManagementInstanceEnclavesListOutput: + items: List[ManagementInstanceEnclavesListOutputItems] + pagination: ManagementInstanceEnclavesListOutputPagination + + +class mapManagementInstanceEnclavesListOutputItemsEnclaveEnvironment: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceEnclavesListOutputItemsEnclaveEnvironment: + return ManagementInstanceEnclavesListOutputItemsEnclaveEnvironment( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + type=data.get('type'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceEnclavesListOutputItemsEnclaveEnvironment, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceEnclavesListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceEnclavesListOutputItems: + return ManagementInstanceEnclavesListOutputItems( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + network_id=data.get('network_id'), + provider_deployment_id=data.get('provider_deployment_id'), + enclave_environment=mapManagementInstanceEnclavesListOutputItemsEnclaveEnvironment.from_dict(data.get('enclave_environment')) if data.get('enclave_environment') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + last_used_at=datetime.fromisoformat(data.get('last_used_at').replace('Z', '+00:00')) if data.get('last_used_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceEnclavesListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceEnclavesListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceEnclavesListOutputPagination: + return ManagementInstanceEnclavesListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceEnclavesListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceEnclavesListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceEnclavesListOutput: + return ManagementInstanceEnclavesListOutput( + items=[mapManagementInstanceEnclavesListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapManagementInstanceEnclavesListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceEnclavesListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceEnclavesListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class ManagementInstanceEnclavesListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + slug: Optional[Union[str, List[str]]] = None + network_id: Optional[Union[str, List[str]]] = None + provider_deployment_id: Optional[Union[str, List[str]]] = None + provider_id: Optional[Union[str, List[str]]] = None + firewall_id: Optional[Union[str, List[str]]] = None + created_at: Optional[ManagementInstanceEnclavesListQueryCreatedAt] = None + + +class mapManagementInstanceEnclavesListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceEnclavesListQuery: + return ManagementInstanceEnclavesListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + slug=data.get('slug'), + network_id=data.get('network_id'), + provider_deployment_id=data.get('provider_deployment_id'), + provider_id=data.get('provider_id'), + firewall_id=data.get('firewall_id'), + created_at=mapManagementInstanceEnclavesListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceEnclavesListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/__init__.py new file mode 100644 index 00000000..26672d14 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/__init__.py @@ -0,0 +1,4 @@ +from .create import * +from .delete import * +from .get import * +from .list import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/create.py new file mode 100644 index 00000000..fa992e03 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/create.py @@ -0,0 +1,113 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceFirewallBindingsCreateOutputFirewall: + object: str + id: str + slug: str + name: str +@dataclass +class ManagementInstanceFirewallBindingsCreateOutputTarget: + object: str + type: str + id: str + name: str +@dataclass +class ManagementInstanceFirewallBindingsCreateOutput: + object: str + id: str + target_type: str + firewall: ManagementInstanceFirewallBindingsCreateOutputFirewall + created_at: datetime + target: Optional[ManagementInstanceFirewallBindingsCreateOutputTarget] = None + + +class mapManagementInstanceFirewallBindingsCreateOutputFirewall: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsCreateOutputFirewall: + return ManagementInstanceFirewallBindingsCreateOutputFirewall( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsCreateOutputFirewall, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallBindingsCreateOutputTarget: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsCreateOutputTarget: + return ManagementInstanceFirewallBindingsCreateOutputTarget( + object=data.get('object'), + type=data.get('type'), + id=data.get('id'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsCreateOutputTarget, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallBindingsCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsCreateOutput: + return ManagementInstanceFirewallBindingsCreateOutput( + object=data.get('object'), + id=data.get('id'), + target_type=data.get('target_type'), + firewall=mapManagementInstanceFirewallBindingsCreateOutputFirewall.from_dict(data.get('firewall')) if data.get('firewall') else None, + target=mapManagementInstanceFirewallBindingsCreateOutputTarget.from_dict(data.get('target')) if data.get('target') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsCreateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceFirewallBindingsCreateBody: + firewall_id: str + target_type: str + enclave_id: Optional[str] = None + provider_id: Optional[str] = None + network_id: Optional[str] = None + + +class mapManagementInstanceFirewallBindingsCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsCreateBody: + return ManagementInstanceFirewallBindingsCreateBody( + firewall_id=data.get('firewall_id'), + target_type=data.get('target_type'), + enclave_id=data.get('enclave_id'), + provider_id=data.get('provider_id'), + network_id=data.get('network_id') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsCreateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/delete.py new file mode 100644 index 00000000..79dcb5a7 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/delete.py @@ -0,0 +1,84 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceFirewallBindingsDeleteOutputFirewall: + object: str + id: str + slug: str + name: str +@dataclass +class ManagementInstanceFirewallBindingsDeleteOutputTarget: + object: str + type: str + id: str + name: str +@dataclass +class ManagementInstanceFirewallBindingsDeleteOutput: + object: str + id: str + target_type: str + firewall: ManagementInstanceFirewallBindingsDeleteOutputFirewall + created_at: datetime + target: Optional[ManagementInstanceFirewallBindingsDeleteOutputTarget] = None + + +class mapManagementInstanceFirewallBindingsDeleteOutputFirewall: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsDeleteOutputFirewall: + return ManagementInstanceFirewallBindingsDeleteOutputFirewall( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsDeleteOutputFirewall, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallBindingsDeleteOutputTarget: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsDeleteOutputTarget: + return ManagementInstanceFirewallBindingsDeleteOutputTarget( + object=data.get('object'), + type=data.get('type'), + id=data.get('id'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsDeleteOutputTarget, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallBindingsDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsDeleteOutput: + return ManagementInstanceFirewallBindingsDeleteOutput( + object=data.get('object'), + id=data.get('id'), + target_type=data.get('target_type'), + firewall=mapManagementInstanceFirewallBindingsDeleteOutputFirewall.from_dict(data.get('firewall')) if data.get('firewall') else None, + target=mapManagementInstanceFirewallBindingsDeleteOutputTarget.from_dict(data.get('target')) if data.get('target') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsDeleteOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/get.py new file mode 100644 index 00000000..0264ba92 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/get.py @@ -0,0 +1,84 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceFirewallBindingsGetOutputFirewall: + object: str + id: str + slug: str + name: str +@dataclass +class ManagementInstanceFirewallBindingsGetOutputTarget: + object: str + type: str + id: str + name: str +@dataclass +class ManagementInstanceFirewallBindingsGetOutput: + object: str + id: str + target_type: str + firewall: ManagementInstanceFirewallBindingsGetOutputFirewall + created_at: datetime + target: Optional[ManagementInstanceFirewallBindingsGetOutputTarget] = None + + +class mapManagementInstanceFirewallBindingsGetOutputFirewall: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsGetOutputFirewall: + return ManagementInstanceFirewallBindingsGetOutputFirewall( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsGetOutputFirewall, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallBindingsGetOutputTarget: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsGetOutputTarget: + return ManagementInstanceFirewallBindingsGetOutputTarget( + object=data.get('object'), + type=data.get('type'), + id=data.get('id'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsGetOutputTarget, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallBindingsGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsGetOutput: + return ManagementInstanceFirewallBindingsGetOutput( + object=data.get('object'), + id=data.get('id'), + target_type=data.get('target_type'), + firewall=mapManagementInstanceFirewallBindingsGetOutputFirewall.from_dict(data.get('firewall')) if data.get('firewall') else None, + target=mapManagementInstanceFirewallBindingsGetOutputTarget.from_dict(data.get('target')) if data.get('target') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/list.py new file mode 100644 index 00000000..fc81c09f --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewall_bindings/list.py @@ -0,0 +1,171 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceFirewallBindingsListOutputItemsFirewall: + object: str + id: str + slug: str + name: str +@dataclass +class ManagementInstanceFirewallBindingsListOutputItemsTarget: + object: str + type: str + id: str + name: str +@dataclass +class ManagementInstanceFirewallBindingsListOutputItems: + object: str + id: str + target_type: str + firewall: ManagementInstanceFirewallBindingsListOutputItemsFirewall + created_at: datetime + target: Optional[ManagementInstanceFirewallBindingsListOutputItemsTarget] = None +@dataclass +class ManagementInstanceFirewallBindingsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class ManagementInstanceFirewallBindingsListOutput: + items: List[ManagementInstanceFirewallBindingsListOutputItems] + pagination: ManagementInstanceFirewallBindingsListOutputPagination + + +class mapManagementInstanceFirewallBindingsListOutputItemsFirewall: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsListOutputItemsFirewall: + return ManagementInstanceFirewallBindingsListOutputItemsFirewall( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsListOutputItemsFirewall, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallBindingsListOutputItemsTarget: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsListOutputItemsTarget: + return ManagementInstanceFirewallBindingsListOutputItemsTarget( + object=data.get('object'), + type=data.get('type'), + id=data.get('id'), + name=data.get('name') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsListOutputItemsTarget, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallBindingsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsListOutputItems: + return ManagementInstanceFirewallBindingsListOutputItems( + object=data.get('object'), + id=data.get('id'), + target_type=data.get('target_type'), + firewall=mapManagementInstanceFirewallBindingsListOutputItemsFirewall.from_dict(data.get('firewall')) if data.get('firewall') else None, + target=mapManagementInstanceFirewallBindingsListOutputItemsTarget.from_dict(data.get('target')) if data.get('target') else None, + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallBindingsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsListOutputPagination: + return ManagementInstanceFirewallBindingsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallBindingsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsListOutput: + return ManagementInstanceFirewallBindingsListOutput( + items=[mapManagementInstanceFirewallBindingsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapManagementInstanceFirewallBindingsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceFirewallBindingsListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class ManagementInstanceFirewallBindingsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + firewall_id: Optional[Union[str, List[str]]] = None + enclave_id: Optional[Union[str, List[str]]] = None + provider_id: Optional[Union[str, List[str]]] = None + network_id: Optional[Union[str, List[str]]] = None + target_type: Optional[Union[str, List[str]]] = None + created_at: Optional[ManagementInstanceFirewallBindingsListQueryCreatedAt] = None + + +class mapManagementInstanceFirewallBindingsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallBindingsListQuery: + return ManagementInstanceFirewallBindingsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + firewall_id=data.get('firewall_id'), + enclave_id=data.get('enclave_id'), + provider_id=data.get('provider_id'), + network_id=data.get('network_id'), + target_type=data.get('target_type'), + created_at=mapManagementInstanceFirewallBindingsListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallBindingsListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/__init__.py new file mode 100644 index 00000000..9d38d38a --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/__init__.py @@ -0,0 +1,6 @@ +from .create import * +from .delete import * +from .get import * +from .list import * +from .network_policies import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/create.py new file mode 100644 index 00000000..534208f6 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/create.py @@ -0,0 +1,183 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceFirewallsCreateOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class ManagementInstanceFirewallsCreateOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[ManagementInstanceFirewallsCreateOutputNetworkPoliciesRules] +@dataclass +class ManagementInstanceFirewallsCreateOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[ManagementInstanceFirewallsCreateOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapManagementInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts: + return ManagementInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsCreateOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsCreateOutputNetworkPoliciesRules: + return ManagementInstanceFirewallsCreateOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceFirewallsCreateOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsCreateOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsCreateOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsCreateOutputNetworkPolicies: + return ManagementInstanceFirewallsCreateOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapManagementInstanceFirewallsCreateOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsCreateOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsCreateOutput: + return ManagementInstanceFirewallsCreateOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapManagementInstanceFirewallsCreateOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsCreateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceFirewallsCreateBodyBindings: + target_type: str + enclave_id: Optional[str] = None + provider_id: Optional[str] = None + network_id: Optional[str] = None +@dataclass +class ManagementInstanceFirewallsCreateBody: + name: str + network_id: str + description: Optional[str] = None + slug: Optional[str] = None + bindings: Optional[List[ManagementInstanceFirewallsCreateBodyBindings]] = None + network_policy_ids: Optional[List[str]] = None + + +class mapManagementInstanceFirewallsCreateBodyBindings: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsCreateBodyBindings: + return ManagementInstanceFirewallsCreateBodyBindings( + target_type=data.get('target_type'), + enclave_id=data.get('enclave_id'), + provider_id=data.get('provider_id'), + network_id=data.get('network_id') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsCreateBodyBindings, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsCreateBody: + return ManagementInstanceFirewallsCreateBody( + name=data.get('name'), + description=data.get('description'), + slug=data.get('slug'), + network_id=data.get('network_id'), + bindings=[mapManagementInstanceFirewallsCreateBodyBindings.from_dict(item) for item in data.get('bindings', []) if item], + network_policy_ids=data.get('network_policy_ids', []) + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsCreateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/delete.py new file mode 100644 index 00000000..2798298d --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/delete.py @@ -0,0 +1,128 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceFirewallsDeleteOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class ManagementInstanceFirewallsDeleteOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[ManagementInstanceFirewallsDeleteOutputNetworkPoliciesRules] +@dataclass +class ManagementInstanceFirewallsDeleteOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[ManagementInstanceFirewallsDeleteOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapManagementInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts: + return ManagementInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsDeleteOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsDeleteOutputNetworkPoliciesRules: + return ManagementInstanceFirewallsDeleteOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceFirewallsDeleteOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsDeleteOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsDeleteOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsDeleteOutputNetworkPolicies: + return ManagementInstanceFirewallsDeleteOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapManagementInstanceFirewallsDeleteOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsDeleteOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsDeleteOutput: + return ManagementInstanceFirewallsDeleteOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapManagementInstanceFirewallsDeleteOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsDeleteOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/get.py new file mode 100644 index 00000000..5a0df79b --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/get.py @@ -0,0 +1,128 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceFirewallsGetOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceFirewallsGetOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceFirewallsGetOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class ManagementInstanceFirewallsGetOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[ManagementInstanceFirewallsGetOutputNetworkPoliciesRules] +@dataclass +class ManagementInstanceFirewallsGetOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[ManagementInstanceFirewallsGetOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapManagementInstanceFirewallsGetOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsGetOutputNetworkPoliciesRulesPorts: + return ManagementInstanceFirewallsGetOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsGetOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsGetOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsGetOutputNetworkPoliciesRules: + return ManagementInstanceFirewallsGetOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceFirewallsGetOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsGetOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsGetOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsGetOutputNetworkPolicies: + return ManagementInstanceFirewallsGetOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapManagementInstanceFirewallsGetOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsGetOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsGetOutput: + return ManagementInstanceFirewallsGetOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapManagementInstanceFirewallsGetOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/list.py new file mode 100644 index 00000000..3458cc77 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/list.py @@ -0,0 +1,223 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceFirewallsListOutputItemsNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts]] = None +@dataclass +class ManagementInstanceFirewallsListOutputItemsNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[ManagementInstanceFirewallsListOutputItemsNetworkPoliciesRules] +@dataclass +class ManagementInstanceFirewallsListOutputItems: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[ManagementInstanceFirewallsListOutputItemsNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None +@dataclass +class ManagementInstanceFirewallsListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class ManagementInstanceFirewallsListOutput: + items: List[ManagementInstanceFirewallsListOutputItems] + pagination: ManagementInstanceFirewallsListOutputPagination + + +class mapManagementInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts: + return ManagementInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsListOutputItemsNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsListOutputItemsNetworkPoliciesRules: + return ManagementInstanceFirewallsListOutputItemsNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceFirewallsListOutputItemsNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsListOutputItemsNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsListOutputItemsNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsListOutputItemsNetworkPolicies: + return ManagementInstanceFirewallsListOutputItemsNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapManagementInstanceFirewallsListOutputItemsNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsListOutputItemsNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsListOutputItems: + return ManagementInstanceFirewallsListOutputItems( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapManagementInstanceFirewallsListOutputItemsNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsListOutputPagination: + return ManagementInstanceFirewallsListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsListOutput: + return ManagementInstanceFirewallsListOutput( + items=[mapManagementInstanceFirewallsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapManagementInstanceFirewallsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceFirewallsListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class ManagementInstanceFirewallsListQueryUpdatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class ManagementInstanceFirewallsListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + slug: Optional[Union[str, List[str]]] = None + status: Optional[Union[str, List[str]]] = None + network_id: Optional[Union[str, List[str]]] = None + enclave_id: Optional[Union[str, List[str]]] = None + provider_id: Optional[Union[str, List[str]]] = None + network_policy_id: Optional[Union[str, List[str]]] = None + created_at: Optional[ManagementInstanceFirewallsListQueryCreatedAt] = None + updated_at: Optional[ManagementInstanceFirewallsListQueryUpdatedAt] = None + + +class mapManagementInstanceFirewallsListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsListQuery: + return ManagementInstanceFirewallsListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + slug=data.get('slug'), + status=data.get('status'), + network_id=data.get('network_id'), + enclave_id=data.get('enclave_id'), + provider_id=data.get('provider_id'), + network_policy_id=data.get('network_policy_id'), + created_at=mapManagementInstanceFirewallsListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None, + updated_at=mapManagementInstanceFirewallsListQueryUpdatedAt.from_dict(data.get('updated_at')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/network_policies/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/network_policies/__init__.py new file mode 100644 index 00000000..479f51bf --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/network_policies/__init__.py @@ -0,0 +1,2 @@ +from .attach import * +from .detach import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/network_policies/attach.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/network_policies/attach.py new file mode 100644 index 00000000..a08bed4b --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/network_policies/attach.py @@ -0,0 +1,151 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules] +@dataclass +class ManagementInstanceFirewallsNetworkPoliciesAttachOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts: + return ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules: + return ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies: + return ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsNetworkPoliciesAttachOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsNetworkPoliciesAttachOutput: + return ManagementInstanceFirewallsNetworkPoliciesAttachOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapManagementInstanceFirewallsNetworkPoliciesAttachOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsNetworkPoliciesAttachOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceFirewallsNetworkPoliciesAttachBody: + network_policy_id: str + position: Optional[float] = None + + +class mapManagementInstanceFirewallsNetworkPoliciesAttachBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsNetworkPoliciesAttachBody: + return ManagementInstanceFirewallsNetworkPoliciesAttachBody( + network_policy_id=data.get('network_policy_id'), + position=data.get('position') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsNetworkPoliciesAttachBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/network_policies/detach.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/network_policies/detach.py new file mode 100644 index 00000000..4e6105b5 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/network_policies/detach.py @@ -0,0 +1,128 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules] +@dataclass +class ManagementInstanceFirewallsNetworkPoliciesDetachOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts: + return ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules: + return ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies: + return ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsNetworkPoliciesDetachOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsNetworkPoliciesDetachOutput: + return ManagementInstanceFirewallsNetworkPoliciesDetachOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapManagementInstanceFirewallsNetworkPoliciesDetachOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsNetworkPoliciesDetachOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/update.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/update.py new file mode 100644 index 00000000..9cc42a72 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/firewalls/update.py @@ -0,0 +1,155 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceFirewallsUpdateOutputNetworkPoliciesRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts]] = None +@dataclass +class ManagementInstanceFirewallsUpdateOutputNetworkPolicies: + object: str + id: str + name: str + version: float + rules: List[ManagementInstanceFirewallsUpdateOutputNetworkPoliciesRules] +@dataclass +class ManagementInstanceFirewallsUpdateOutput: + object: str + id: str + slug: str + name: str + status: str + network_id: str + network_policies: List[ManagementInstanceFirewallsUpdateOutputNetworkPolicies] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + archived_at: Optional[datetime] = None + + +class mapManagementInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts: + return ManagementInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsUpdateOutputNetworkPoliciesRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsUpdateOutputNetworkPoliciesRules: + return ManagementInstanceFirewallsUpdateOutputNetworkPoliciesRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceFirewallsUpdateOutputNetworkPoliciesRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsUpdateOutputNetworkPoliciesRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsUpdateOutputNetworkPolicies: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsUpdateOutputNetworkPolicies: + return ManagementInstanceFirewallsUpdateOutputNetworkPolicies( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + version=data.get('version'), + rules=[mapManagementInstanceFirewallsUpdateOutputNetworkPoliciesRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsUpdateOutputNetworkPolicies, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceFirewallsUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsUpdateOutput: + return ManagementInstanceFirewallsUpdateOutput( + object=data.get('object'), + id=data.get('id'), + slug=data.get('slug'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + network_id=data.get('network_id'), + network_policies=[mapManagementInstanceFirewallsUpdateOutputNetworkPolicies.from_dict(item) for item in data.get('network_policies', []) if item], + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsUpdateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceFirewallsUpdateBody: + name: Optional[str] = None + description: Optional[str] = None + slug: Optional[str] = None + network_policy_ids: Optional[List[str]] = None + + +class mapManagementInstanceFirewallsUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceFirewallsUpdateBody: + return ManagementInstanceFirewallsUpdateBody( + name=data.get('name'), + description=data.get('description'), + slug=data.get('slug'), + network_policy_ids=data.get('network_policy_ids', []) + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceFirewallsUpdateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/__init__.py new file mode 100644 index 00000000..e33eef95 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/__init__.py @@ -0,0 +1,6 @@ +from .create import * +from .delete import * +from .get import * +from .list import * +from .rules import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/create.py new file mode 100644 index 00000000..02a75301 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/create.py @@ -0,0 +1,177 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceNetworkPoliciesCreateOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceNetworkPoliciesCreateOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceNetworkPoliciesCreateOutputRulesPorts]] = None +@dataclass +class ManagementInstanceNetworkPoliciesCreateOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[ManagementInstanceNetworkPoliciesCreateOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapManagementInstanceNetworkPoliciesCreateOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesCreateOutputRulesPorts: + return ManagementInstanceNetworkPoliciesCreateOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesCreateOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesCreateOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesCreateOutputRules: + return ManagementInstanceNetworkPoliciesCreateOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceNetworkPoliciesCreateOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesCreateOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesCreateOutput: + return ManagementInstanceNetworkPoliciesCreateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapManagementInstanceNetworkPoliciesCreateOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesCreateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceNetworkPoliciesCreateBodyRulesPorts: + from_: float + to: float +@dataclass +class ManagementInstanceNetworkPoliciesCreateBodyRules: + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceNetworkPoliciesCreateBodyRulesPorts]] = None +@dataclass +class ManagementInstanceNetworkPoliciesCreateBody: + name: str + description: Optional[str] = None + rules: Optional[List[ManagementInstanceNetworkPoliciesCreateBodyRules]] = None + + +class mapManagementInstanceNetworkPoliciesCreateBodyRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesCreateBodyRulesPorts: + return ManagementInstanceNetworkPoliciesCreateBodyRulesPorts( + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesCreateBodyRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesCreateBodyRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesCreateBodyRules: + return ManagementInstanceNetworkPoliciesCreateBodyRules( + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceNetworkPoliciesCreateBodyRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesCreateBodyRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesCreateBody: + return ManagementInstanceNetworkPoliciesCreateBody( + name=data.get('name'), + description=data.get('description'), + rules=[mapManagementInstanceNetworkPoliciesCreateBodyRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesCreateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/delete.py new file mode 100644 index 00000000..4280252c --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/delete.py @@ -0,0 +1,102 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceNetworkPoliciesDeleteOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceNetworkPoliciesDeleteOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceNetworkPoliciesDeleteOutputRulesPorts]] = None +@dataclass +class ManagementInstanceNetworkPoliciesDeleteOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[ManagementInstanceNetworkPoliciesDeleteOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapManagementInstanceNetworkPoliciesDeleteOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesDeleteOutputRulesPorts: + return ManagementInstanceNetworkPoliciesDeleteOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesDeleteOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesDeleteOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesDeleteOutputRules: + return ManagementInstanceNetworkPoliciesDeleteOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceNetworkPoliciesDeleteOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesDeleteOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesDeleteOutput: + return ManagementInstanceNetworkPoliciesDeleteOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapManagementInstanceNetworkPoliciesDeleteOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesDeleteOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/get.py new file mode 100644 index 00000000..9ab27237 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/get.py @@ -0,0 +1,102 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceNetworkPoliciesGetOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceNetworkPoliciesGetOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceNetworkPoliciesGetOutputRulesPorts]] = None +@dataclass +class ManagementInstanceNetworkPoliciesGetOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[ManagementInstanceNetworkPoliciesGetOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapManagementInstanceNetworkPoliciesGetOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesGetOutputRulesPorts: + return ManagementInstanceNetworkPoliciesGetOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesGetOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesGetOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesGetOutputRules: + return ManagementInstanceNetworkPoliciesGetOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceNetworkPoliciesGetOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesGetOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesGetOutput: + return ManagementInstanceNetworkPoliciesGetOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapManagementInstanceNetworkPoliciesGetOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/list.py new file mode 100644 index 00000000..dcdd56ba --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/list.py @@ -0,0 +1,191 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceNetworkPoliciesListOutputItemsRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceNetworkPoliciesListOutputItemsRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceNetworkPoliciesListOutputItemsRulesPorts]] = None +@dataclass +class ManagementInstanceNetworkPoliciesListOutputItems: + object: str + id: str + name: str + status: str + version: float + rules: List[ManagementInstanceNetworkPoliciesListOutputItemsRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None +@dataclass +class ManagementInstanceNetworkPoliciesListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class ManagementInstanceNetworkPoliciesListOutput: + items: List[ManagementInstanceNetworkPoliciesListOutputItems] + pagination: ManagementInstanceNetworkPoliciesListOutputPagination + + +class mapManagementInstanceNetworkPoliciesListOutputItemsRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesListOutputItemsRulesPorts: + return ManagementInstanceNetworkPoliciesListOutputItemsRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesListOutputItemsRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesListOutputItemsRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesListOutputItemsRules: + return ManagementInstanceNetworkPoliciesListOutputItemsRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceNetworkPoliciesListOutputItemsRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesListOutputItemsRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesListOutputItems: + return ManagementInstanceNetworkPoliciesListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapManagementInstanceNetworkPoliciesListOutputItemsRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesListOutputPagination: + return ManagementInstanceNetworkPoliciesListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesListOutput: + return ManagementInstanceNetworkPoliciesListOutput( + items=[mapManagementInstanceNetworkPoliciesListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapManagementInstanceNetworkPoliciesListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceNetworkPoliciesListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class ManagementInstanceNetworkPoliciesListQueryUpdatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class ManagementInstanceNetworkPoliciesListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + status: Optional[Union[str, List[str]]] = None + firewall_id: Optional[Union[str, List[str]]] = None + search: Optional[str] = None + created_at: Optional[ManagementInstanceNetworkPoliciesListQueryCreatedAt] = None + updated_at: Optional[ManagementInstanceNetworkPoliciesListQueryUpdatedAt] = None + + +class mapManagementInstanceNetworkPoliciesListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesListQuery: + return ManagementInstanceNetworkPoliciesListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + status=data.get('status'), + firewall_id=data.get('firewall_id'), + search=data.get('search'), + created_at=mapManagementInstanceNetworkPoliciesListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None, + updated_at=mapManagementInstanceNetworkPoliciesListQueryUpdatedAt.from_dict(data.get('updated_at')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/__init__.py new file mode 100644 index 00000000..3f16c919 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/__init__.py @@ -0,0 +1,3 @@ +from .create import * +from .delete import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/create.py new file mode 100644 index 00000000..d2180a0b --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/create.py @@ -0,0 +1,117 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceNetworkPoliciesRulesCreateOutputPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceNetworkPoliciesRulesCreateOutput: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceNetworkPoliciesRulesCreateOutputPorts]] = None + + +class mapManagementInstanceNetworkPoliciesRulesCreateOutputPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesRulesCreateOutputPorts: + return ManagementInstanceNetworkPoliciesRulesCreateOutputPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesRulesCreateOutputPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesRulesCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesRulesCreateOutput: + return ManagementInstanceNetworkPoliciesRulesCreateOutput( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceNetworkPoliciesRulesCreateOutputPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesRulesCreateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceNetworkPoliciesRulesCreateBodyPorts: + from_: float + to: float +@dataclass +class ManagementInstanceNetworkPoliciesRulesCreateBody: + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceNetworkPoliciesRulesCreateBodyPorts]] = None + + +class mapManagementInstanceNetworkPoliciesRulesCreateBodyPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesRulesCreateBodyPorts: + return ManagementInstanceNetworkPoliciesRulesCreateBodyPorts( + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesRulesCreateBodyPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesRulesCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesRulesCreateBody: + return ManagementInstanceNetworkPoliciesRulesCreateBody( + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceNetworkPoliciesRulesCreateBodyPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesRulesCreateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/delete.py new file mode 100644 index 00000000..28dcedbf --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/delete.py @@ -0,0 +1,102 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceNetworkPoliciesRulesDeleteOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceNetworkPoliciesRulesDeleteOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceNetworkPoliciesRulesDeleteOutputRulesPorts]] = None +@dataclass +class ManagementInstanceNetworkPoliciesRulesDeleteOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[ManagementInstanceNetworkPoliciesRulesDeleteOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapManagementInstanceNetworkPoliciesRulesDeleteOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesRulesDeleteOutputRulesPorts: + return ManagementInstanceNetworkPoliciesRulesDeleteOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesRulesDeleteOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesRulesDeleteOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesRulesDeleteOutputRules: + return ManagementInstanceNetworkPoliciesRulesDeleteOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceNetworkPoliciesRulesDeleteOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesRulesDeleteOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesRulesDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesRulesDeleteOutput: + return ManagementInstanceNetworkPoliciesRulesDeleteOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapManagementInstanceNetworkPoliciesRulesDeleteOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesRulesDeleteOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/update.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/update.py new file mode 100644 index 00000000..094ab6c4 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/rules/update.py @@ -0,0 +1,117 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceNetworkPoliciesRulesUpdateOutputPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceNetworkPoliciesRulesUpdateOutput: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceNetworkPoliciesRulesUpdateOutputPorts]] = None + + +class mapManagementInstanceNetworkPoliciesRulesUpdateOutputPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesRulesUpdateOutputPorts: + return ManagementInstanceNetworkPoliciesRulesUpdateOutputPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesRulesUpdateOutputPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesRulesUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesRulesUpdateOutput: + return ManagementInstanceNetworkPoliciesRulesUpdateOutput( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceNetworkPoliciesRulesUpdateOutputPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesRulesUpdateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceNetworkPoliciesRulesUpdateBodyPorts: + from_: float + to: float +@dataclass +class ManagementInstanceNetworkPoliciesRulesUpdateBody: + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceNetworkPoliciesRulesUpdateBodyPorts]] = None + + +class mapManagementInstanceNetworkPoliciesRulesUpdateBodyPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesRulesUpdateBodyPorts: + return ManagementInstanceNetworkPoliciesRulesUpdateBodyPorts( + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesRulesUpdateBodyPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesRulesUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesRulesUpdateBody: + return ManagementInstanceNetworkPoliciesRulesUpdateBody( + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceNetworkPoliciesRulesUpdateBodyPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesRulesUpdateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/update.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/update.py new file mode 100644 index 00000000..68f5ac77 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/network_policies/update.py @@ -0,0 +1,177 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceNetworkPoliciesUpdateOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class ManagementInstanceNetworkPoliciesUpdateOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceNetworkPoliciesUpdateOutputRulesPorts]] = None +@dataclass +class ManagementInstanceNetworkPoliciesUpdateOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[ManagementInstanceNetworkPoliciesUpdateOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapManagementInstanceNetworkPoliciesUpdateOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesUpdateOutputRulesPorts: + return ManagementInstanceNetworkPoliciesUpdateOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesUpdateOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesUpdateOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesUpdateOutputRules: + return ManagementInstanceNetworkPoliciesUpdateOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceNetworkPoliciesUpdateOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesUpdateOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesUpdateOutput: + return ManagementInstanceNetworkPoliciesUpdateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapManagementInstanceNetworkPoliciesUpdateOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesUpdateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceNetworkPoliciesUpdateBodyRulesPorts: + from_: float + to: float +@dataclass +class ManagementInstanceNetworkPoliciesUpdateBodyRules: + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[ManagementInstanceNetworkPoliciesUpdateBodyRulesPorts]] = None +@dataclass +class ManagementInstanceNetworkPoliciesUpdateBody: + name: Optional[str] = None + description: Optional[str] = None + rules: Optional[List[ManagementInstanceNetworkPoliciesUpdateBodyRules]] = None + + +class mapManagementInstanceNetworkPoliciesUpdateBodyRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesUpdateBodyRulesPorts: + return ManagementInstanceNetworkPoliciesUpdateBodyRulesPorts( + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesUpdateBodyRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesUpdateBodyRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesUpdateBodyRules: + return ManagementInstanceNetworkPoliciesUpdateBodyRules( + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapManagementInstanceNetworkPoliciesUpdateBodyRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesUpdateBodyRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworkPoliciesUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworkPoliciesUpdateBody: + return ManagementInstanceNetworkPoliciesUpdateBody( + name=data.get('name'), + description=data.get('description'), + rules=[mapManagementInstanceNetworkPoliciesUpdateBodyRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworkPoliciesUpdateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/__init__.py new file mode 100644 index 00000000..a3f095ae --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/__init__.py @@ -0,0 +1,3 @@ +from .get import * +from .list import * +from .list_network_logs import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/get.py new file mode 100644 index 00000000..c2c24ed3 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/get.py @@ -0,0 +1,66 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceNetworksGetOutputPublicIps: + object: str + id: str + ip: str + region: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementInstanceNetworksGetOutput: + object: str + id: str + name: str + created_at: datetime + updated_at: datetime + public_ips: List[ManagementInstanceNetworksGetOutputPublicIps] + description: Optional[str] = None + + +class mapManagementInstanceNetworksGetOutputPublicIps: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworksGetOutputPublicIps: + return ManagementInstanceNetworksGetOutputPublicIps( + object=data.get('object'), + id=data.get('id'), + ip=data.get('ip'), + region=data.get('region'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworksGetOutputPublicIps, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworksGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworksGetOutput: + return ManagementInstanceNetworksGetOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + public_ips=[mapManagementInstanceNetworksGetOutputPublicIps.from_dict(item) for item in data.get('public_ips', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworksGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/list.py new file mode 100644 index 00000000..916b82ef --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/list.py @@ -0,0 +1,153 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceNetworksListOutputItemsPublicIps: + object: str + id: str + ip: str + region: str + created_at: datetime + updated_at: datetime +@dataclass +class ManagementInstanceNetworksListOutputItems: + object: str + id: str + name: str + created_at: datetime + updated_at: datetime + public_ips: List[ManagementInstanceNetworksListOutputItemsPublicIps] + description: Optional[str] = None +@dataclass +class ManagementInstanceNetworksListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class ManagementInstanceNetworksListOutput: + items: List[ManagementInstanceNetworksListOutputItems] + pagination: ManagementInstanceNetworksListOutputPagination + + +class mapManagementInstanceNetworksListOutputItemsPublicIps: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworksListOutputItemsPublicIps: + return ManagementInstanceNetworksListOutputItemsPublicIps( + object=data.get('object'), + id=data.get('id'), + ip=data.get('ip'), + region=data.get('region'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworksListOutputItemsPublicIps, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworksListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworksListOutputItems: + return ManagementInstanceNetworksListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + public_ips=[mapManagementInstanceNetworksListOutputItemsPublicIps.from_dict(item) for item in data.get('public_ips', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworksListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworksListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworksListOutputPagination: + return ManagementInstanceNetworksListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworksListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworksListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworksListOutput: + return ManagementInstanceNetworksListOutput( + items=[mapManagementInstanceNetworksListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapManagementInstanceNetworksListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworksListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceNetworksListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class ManagementInstanceNetworksListQueryUpdatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class ManagementInstanceNetworksListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + firewall_id: Optional[Union[str, List[str]]] = None + enclave_id: Optional[Union[str, List[str]]] = None + created_at: Optional[ManagementInstanceNetworksListQueryCreatedAt] = None + updated_at: Optional[ManagementInstanceNetworksListQueryUpdatedAt] = None + + +class mapManagementInstanceNetworksListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworksListQuery: + return ManagementInstanceNetworksListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + firewall_id=data.get('firewall_id'), + enclave_id=data.get('enclave_id'), + created_at=mapManagementInstanceNetworksListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None, + updated_at=mapManagementInstanceNetworksListQueryUpdatedAt.from_dict(data.get('updated_at')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworksListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/list_network_logs.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/list_network_logs.py new file mode 100644 index 00000000..987ddfb8 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/networks/list_network_logs.py @@ -0,0 +1,103 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class ManagementInstanceNetworksListNetworkLogsOutputRecords: + object: str + direction: str + enclave_id: str + bucket_start: str + hostname: str + ip: str + port: float + count: float + first_seen_at: str + last_seen_at: str + result: Optional[str] = None +@dataclass +class ManagementInstanceNetworksListNetworkLogsOutput: + object: str + direction: str + enclave_ids: List[str] + records: List[ManagementInstanceNetworksListNetworkLogsOutputRecords] + + +class mapManagementInstanceNetworksListNetworkLogsOutputRecords: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworksListNetworkLogsOutputRecords: + return ManagementInstanceNetworksListNetworkLogsOutputRecords( + object=data.get('object'), + direction=data.get('direction'), + enclave_id=data.get('enclave_id'), + bucket_start=data.get('bucket_start'), + hostname=data.get('hostname'), + ip=data.get('ip'), + port=data.get('port'), + count=data.get('count'), + result=data.get('result'), + first_seen_at=data.get('first_seen_at'), + last_seen_at=data.get('last_seen_at') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworksListNetworkLogsOutputRecords, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapManagementInstanceNetworksListNetworkLogsOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworksListNetworkLogsOutput: + return ManagementInstanceNetworksListNetworkLogsOutput( + object=data.get('object'), + direction=data.get('direction'), + enclave_ids=data.get('enclave_ids', []), + records=[mapManagementInstanceNetworksListNetworkLogsOutputRecords.from_dict(item) for item in data.get('records', []) if item] + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworksListNetworkLogsOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class ManagementInstanceNetworksListNetworkLogsQuery: + direction: str + enclave_id: Optional[Union[str, List[str]]] = None + hostname: Optional[Union[str, List[str]]] = None + ip: Optional[Union[str, List[str]]] = None + from_: Optional[str] = None + to: Optional[str] = None + interval_minutes: Optional[float] = None + + +class mapManagementInstanceNetworksListNetworkLogsQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> ManagementInstanceNetworksListNetworkLogsQuery: + return ManagementInstanceNetworksListNetworkLogsQuery( + direction=data.get('direction'), + enclave_id=data.get('enclave_id'), + hostname=data.get('hostname'), + ip=data.get('ip'), + from_=data.get('from'), + to=data.get('to'), + interval_minutes=data.get('interval_minutes') + ) + + @staticmethod + def to_dict(value: Union[ManagementInstanceNetworksListNetworkLogsQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/__init__.py new file mode 100644 index 00000000..6ac1ccc3 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/__init__.py @@ -0,0 +1 @@ +from .tools import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/tools/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/tools/__init__.py new file mode 100644 index 00000000..65eb373b --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/tools/__init__.py @@ -0,0 +1,2 @@ +from .get import * +from .list import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/providers/tools/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/tools/get.py similarity index 63% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/providers/tools/get.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/tools/get.py index dbaeab27..e4d4f224 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/providers/tools/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/tools/get.py @@ -4,19 +4,19 @@ import dataclasses @dataclass -class DashboardInstanceProvidersToolsGetOutputInputSchema: +class ManagementInstanceProviderToolsGetOutputInputSchema: type: str schema: Dict[str, Any] @dataclass -class DashboardInstanceProvidersToolsGetOutputOutputSchema: +class ManagementInstanceProviderToolsGetOutputOutputSchema: type: str schema: Dict[str, Any] @dataclass -class DashboardInstanceProvidersToolsGetOutputTags: +class ManagementInstanceProviderToolsGetOutputTags: destructive: Optional[bool] = None read_only: Optional[bool] = None @dataclass -class DashboardInstanceProvidersToolsGetOutput: +class ManagementInstanceProviderToolsGetOutput: object: str id: str key: str @@ -29,63 +29,63 @@ class DashboardInstanceProvidersToolsGetOutput: created_at: datetime updated_at: datetime description: Optional[str] = None - input_schema: Optional[DashboardInstanceProvidersToolsGetOutputInputSchema] = None - output_schema: Optional[DashboardInstanceProvidersToolsGetOutputOutputSchema] = None - tags: Optional[DashboardInstanceProvidersToolsGetOutputTags] = None + input_schema: Optional[ManagementInstanceProviderToolsGetOutputInputSchema] = None + output_schema: Optional[ManagementInstanceProviderToolsGetOutputOutputSchema] = None + tags: Optional[ManagementInstanceProviderToolsGetOutputTags] = None -class mapDashboardInstanceProvidersToolsGetOutputInputSchema: +class mapManagementInstanceProviderToolsGetOutputInputSchema: @staticmethod - def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsGetOutputInputSchema: - return DashboardInstanceProvidersToolsGetOutputInputSchema( + def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderToolsGetOutputInputSchema: + return ManagementInstanceProviderToolsGetOutputInputSchema( type=data.get('type'), schema=data.get('schema') ) @staticmethod - def to_dict(value: Union[DashboardInstanceProvidersToolsGetOutputInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementInstanceProviderToolsGetOutputInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapDashboardInstanceProvidersToolsGetOutputOutputSchema: +class mapManagementInstanceProviderToolsGetOutputOutputSchema: @staticmethod - def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsGetOutputOutputSchema: - return DashboardInstanceProvidersToolsGetOutputOutputSchema( + def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderToolsGetOutputOutputSchema: + return ManagementInstanceProviderToolsGetOutputOutputSchema( type=data.get('type'), schema=data.get('schema') ) @staticmethod - def to_dict(value: Union[DashboardInstanceProvidersToolsGetOutputOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementInstanceProviderToolsGetOutputOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapDashboardInstanceProvidersToolsGetOutputTags: +class mapManagementInstanceProviderToolsGetOutputTags: @staticmethod - def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsGetOutputTags: - return DashboardInstanceProvidersToolsGetOutputTags( + def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderToolsGetOutputTags: + return ManagementInstanceProviderToolsGetOutputTags( destructive=data.get('destructive'), read_only=data.get('read_only') ) @staticmethod - def to_dict(value: Union[DashboardInstanceProvidersToolsGetOutputTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementInstanceProviderToolsGetOutputTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapDashboardInstanceProvidersToolsGetOutput: +class mapManagementInstanceProviderToolsGetOutput: @staticmethod - def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsGetOutput: - return DashboardInstanceProvidersToolsGetOutput( + def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderToolsGetOutput: + return ManagementInstanceProviderToolsGetOutput( object=data.get('object'), id=data.get('id'), key=data.get('key'), @@ -94,9 +94,9 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsGetOutput: capabilities=data.get('capabilities'), constraints=data.get('constraints', []), instructions=data.get('instructions', []), - input_schema=mapDashboardInstanceProvidersToolsGetOutputInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, - output_schema=mapDashboardInstanceProvidersToolsGetOutputOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, - tags=mapDashboardInstanceProvidersToolsGetOutputTags.from_dict(data.get('tags')) if data.get('tags') else None, + input_schema=mapManagementInstanceProviderToolsGetOutputInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, + output_schema=mapManagementInstanceProviderToolsGetOutputOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, + tags=mapManagementInstanceProviderToolsGetOutputTags.from_dict(data.get('tags')) if data.get('tags') else None, specification_id=data.get('specification_id'), provider_id=data.get('provider_id'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, @@ -104,7 +104,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsGetOutput: ) @staticmethod - def to_dict(value: Union[DashboardInstanceProvidersToolsGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementInstanceProviderToolsGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/providers/tools/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/tools/list.py similarity index 60% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/providers/tools/list.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/tools/list.py index 3102c1ba..6c870700 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/dashboard/instance/providers/tools/list.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider/tools/list.py @@ -4,19 +4,19 @@ import dataclasses @dataclass -class DashboardInstanceProvidersToolsListOutputItemsInputSchema: +class ManagementInstanceProviderToolsListOutputItemsInputSchema: type: str schema: Dict[str, Any] @dataclass -class DashboardInstanceProvidersToolsListOutputItemsOutputSchema: +class ManagementInstanceProviderToolsListOutputItemsOutputSchema: type: str schema: Dict[str, Any] @dataclass -class DashboardInstanceProvidersToolsListOutputItemsTags: +class ManagementInstanceProviderToolsListOutputItemsTags: destructive: Optional[bool] = None read_only: Optional[bool] = None @dataclass -class DashboardInstanceProvidersToolsListOutputItems: +class ManagementInstanceProviderToolsListOutputItems: object: str id: str key: str @@ -29,71 +29,71 @@ class DashboardInstanceProvidersToolsListOutputItems: created_at: datetime updated_at: datetime description: Optional[str] = None - input_schema: Optional[DashboardInstanceProvidersToolsListOutputItemsInputSchema] = None - output_schema: Optional[DashboardInstanceProvidersToolsListOutputItemsOutputSchema] = None - tags: Optional[DashboardInstanceProvidersToolsListOutputItemsTags] = None + input_schema: Optional[ManagementInstanceProviderToolsListOutputItemsInputSchema] = None + output_schema: Optional[ManagementInstanceProviderToolsListOutputItemsOutputSchema] = None + tags: Optional[ManagementInstanceProviderToolsListOutputItemsTags] = None @dataclass -class DashboardInstanceProvidersToolsListOutputPagination: +class ManagementInstanceProviderToolsListOutputPagination: has_more_before: bool has_more_after: bool @dataclass -class DashboardInstanceProvidersToolsListOutput: - items: List[DashboardInstanceProvidersToolsListOutputItems] - pagination: DashboardInstanceProvidersToolsListOutputPagination +class ManagementInstanceProviderToolsListOutput: + items: List[ManagementInstanceProviderToolsListOutputItems] + pagination: ManagementInstanceProviderToolsListOutputPagination -class mapDashboardInstanceProvidersToolsListOutputItemsInputSchema: +class mapManagementInstanceProviderToolsListOutputItemsInputSchema: @staticmethod - def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsListOutputItemsInputSchema: - return DashboardInstanceProvidersToolsListOutputItemsInputSchema( + def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderToolsListOutputItemsInputSchema: + return ManagementInstanceProviderToolsListOutputItemsInputSchema( type=data.get('type'), schema=data.get('schema') ) @staticmethod - def to_dict(value: Union[DashboardInstanceProvidersToolsListOutputItemsInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementInstanceProviderToolsListOutputItemsInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapDashboardInstanceProvidersToolsListOutputItemsOutputSchema: +class mapManagementInstanceProviderToolsListOutputItemsOutputSchema: @staticmethod - def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsListOutputItemsOutputSchema: - return DashboardInstanceProvidersToolsListOutputItemsOutputSchema( + def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderToolsListOutputItemsOutputSchema: + return ManagementInstanceProviderToolsListOutputItemsOutputSchema( type=data.get('type'), schema=data.get('schema') ) @staticmethod - def to_dict(value: Union[DashboardInstanceProvidersToolsListOutputItemsOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementInstanceProviderToolsListOutputItemsOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapDashboardInstanceProvidersToolsListOutputItemsTags: +class mapManagementInstanceProviderToolsListOutputItemsTags: @staticmethod - def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsListOutputItemsTags: - return DashboardInstanceProvidersToolsListOutputItemsTags( + def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderToolsListOutputItemsTags: + return ManagementInstanceProviderToolsListOutputItemsTags( destructive=data.get('destructive'), read_only=data.get('read_only') ) @staticmethod - def to_dict(value: Union[DashboardInstanceProvidersToolsListOutputItemsTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementInstanceProviderToolsListOutputItemsTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapDashboardInstanceProvidersToolsListOutputItems: +class mapManagementInstanceProviderToolsListOutputItems: @staticmethod - def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsListOutputItems: - return DashboardInstanceProvidersToolsListOutputItems( + def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderToolsListOutputItems: + return ManagementInstanceProviderToolsListOutputItems( object=data.get('object'), id=data.get('id'), key=data.get('key'), @@ -102,9 +102,9 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsListOutput capabilities=data.get('capabilities'), constraints=data.get('constraints', []), instructions=data.get('instructions', []), - input_schema=mapDashboardInstanceProvidersToolsListOutputItemsInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, - output_schema=mapDashboardInstanceProvidersToolsListOutputItemsOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, - tags=mapDashboardInstanceProvidersToolsListOutputItemsTags.from_dict(data.get('tags')) if data.get('tags') else None, + input_schema=mapManagementInstanceProviderToolsListOutputItemsInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, + output_schema=mapManagementInstanceProviderToolsListOutputItemsOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, + tags=mapManagementInstanceProviderToolsListOutputItemsTags.from_dict(data.get('tags')) if data.get('tags') else None, specification_id=data.get('specification_id'), provider_id=data.get('provider_id'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, @@ -112,39 +112,39 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsListOutput ) @staticmethod - def to_dict(value: Union[DashboardInstanceProvidersToolsListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementInstanceProviderToolsListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapDashboardInstanceProvidersToolsListOutputPagination: +class mapManagementInstanceProviderToolsListOutputPagination: @staticmethod - def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsListOutputPagination: - return DashboardInstanceProvidersToolsListOutputPagination( + def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderToolsListOutputPagination: + return ManagementInstanceProviderToolsListOutputPagination( has_more_before=data.get('has_more_before'), has_more_after=data.get('has_more_after') ) @staticmethod - def to_dict(value: Union[DashboardInstanceProvidersToolsListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementInstanceProviderToolsListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapDashboardInstanceProvidersToolsListOutput: +class mapManagementInstanceProviderToolsListOutput: @staticmethod - def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsListOutput: - return DashboardInstanceProvidersToolsListOutput( - items=[mapDashboardInstanceProvidersToolsListOutputItems.from_dict(item) for item in data.get('items', []) if item], - pagination=mapDashboardInstanceProvidersToolsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderToolsListOutput: + return ManagementInstanceProviderToolsListOutput( + items=[mapManagementInstanceProviderToolsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapManagementInstanceProviderToolsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None ) @staticmethod - def to_dict(value: Union[DashboardInstanceProvidersToolsListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementInstanceProviderToolsListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): @@ -153,7 +153,7 @@ def to_dict(value: Union[DashboardInstanceProvidersToolsListOutput, Dict[str, An return dataclasses.asdict(value) @dataclass -class DashboardInstanceProvidersToolsListQuery: +class ManagementInstanceProviderToolsListQuery: provider_version_id: str limit: Optional[float] = None after: Optional[str] = None @@ -162,10 +162,10 @@ class DashboardInstanceProvidersToolsListQuery: order: Optional[str] = None -class mapDashboardInstanceProvidersToolsListQuery: +class mapManagementInstanceProviderToolsListQuery: @staticmethod - def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsListQuery: - return DashboardInstanceProvidersToolsListQuery( + def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderToolsListQuery: + return ManagementInstanceProviderToolsListQuery( limit=data.get('limit'), after=data.get('after'), before=data.get('before'), @@ -175,7 +175,7 @@ def from_dict(data: Dict[str, Any]) -> DashboardInstanceProvidersToolsListQuery: ) @staticmethod - def to_dict(value: Union[DashboardInstanceProvidersToolsListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ManagementInstanceProviderToolsListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/create.py index f0036964..2d2d315e 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/create.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/provider_templates/create.py @@ -54,9 +54,10 @@ class ManagementInstanceProviderTemplatesCreateBodyProviders: @dataclass class ManagementInstanceProviderTemplatesCreateBody: name: str - providers: List[ManagementInstanceProviderTemplatesCreateBodyProviders] description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + providers: Optional[List[ManagementInstanceProviderTemplatesCreateBodyProviders]] = None + integration_id: Optional[str] = None class mapManagementInstanceProviderTemplatesCreateBodyProviders: @@ -89,7 +90,8 @@ def from_dict(data: Dict[str, Any]) -> ManagementInstanceProviderTemplatesCreate name=data.get('name'), description=data.get('description'), metadata=data.get('metadata'), - providers=[mapManagementInstanceProviderTemplatesCreateBodyProviders.from_dict(item) for item in data.get('providers', []) if item] + providers=[mapManagementInstanceProviderTemplatesCreateBodyProviders.from_dict(item) for item in data.get('providers', []) if item], + integration_id=data.get('integration_id') ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/__init__.py index 6ccd84b4..6ed28a91 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/__init__.py @@ -2,6 +2,5 @@ from .get import * from .list import * from .specifications import * -from .tools import * from .triggers import * from .versions import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/tools/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/tools/list.py deleted file mode 100644 index c520d7f0..00000000 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/management/instance/providers/tools/list.py +++ /dev/null @@ -1,185 +0,0 @@ -from dataclasses import dataclass -from typing import Any, Dict, List, Optional, Union -from datetime import datetime -import dataclasses - -@dataclass -class ManagementInstanceProvidersToolsListOutputItemsInputSchema: - type: str - schema: Dict[str, Any] -@dataclass -class ManagementInstanceProvidersToolsListOutputItemsOutputSchema: - type: str - schema: Dict[str, Any] -@dataclass -class ManagementInstanceProvidersToolsListOutputItemsTags: - destructive: Optional[bool] = None - read_only: Optional[bool] = None -@dataclass -class ManagementInstanceProvidersToolsListOutputItems: - object: str - id: str - key: str - name: str - capabilities: Dict[str, Any] - constraints: List[str] - instructions: List[str] - specification_id: str - provider_id: str - created_at: datetime - updated_at: datetime - description: Optional[str] = None - input_schema: Optional[ManagementInstanceProvidersToolsListOutputItemsInputSchema] = None - output_schema: Optional[ManagementInstanceProvidersToolsListOutputItemsOutputSchema] = None - tags: Optional[ManagementInstanceProvidersToolsListOutputItemsTags] = None -@dataclass -class ManagementInstanceProvidersToolsListOutputPagination: - has_more_before: bool - has_more_after: bool -@dataclass -class ManagementInstanceProvidersToolsListOutput: - items: List[ManagementInstanceProvidersToolsListOutputItems] - pagination: ManagementInstanceProvidersToolsListOutputPagination - - -class mapManagementInstanceProvidersToolsListOutputItemsInputSchema: - @staticmethod - def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsListOutputItemsInputSchema: - return ManagementInstanceProvidersToolsListOutputItemsInputSchema( - type=data.get('type'), - schema=data.get('schema') - ) - - @staticmethod - def to_dict(value: Union[ManagementInstanceProvidersToolsListOutputItemsInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: - if value is None: - return None - if isinstance(value, dict): - return value - return dataclasses.asdict(value) - -class mapManagementInstanceProvidersToolsListOutputItemsOutputSchema: - @staticmethod - def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsListOutputItemsOutputSchema: - return ManagementInstanceProvidersToolsListOutputItemsOutputSchema( - type=data.get('type'), - schema=data.get('schema') - ) - - @staticmethod - def to_dict(value: Union[ManagementInstanceProvidersToolsListOutputItemsOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: - if value is None: - return None - if isinstance(value, dict): - return value - return dataclasses.asdict(value) - -class mapManagementInstanceProvidersToolsListOutputItemsTags: - @staticmethod - def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsListOutputItemsTags: - return ManagementInstanceProvidersToolsListOutputItemsTags( - destructive=data.get('destructive'), - read_only=data.get('read_only') - ) - - @staticmethod - def to_dict(value: Union[ManagementInstanceProvidersToolsListOutputItemsTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: - if value is None: - return None - if isinstance(value, dict): - return value - return dataclasses.asdict(value) - -class mapManagementInstanceProvidersToolsListOutputItems: - @staticmethod - def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsListOutputItems: - return ManagementInstanceProvidersToolsListOutputItems( - object=data.get('object'), - id=data.get('id'), - key=data.get('key'), - name=data.get('name'), - description=data.get('description'), - capabilities=data.get('capabilities'), - constraints=data.get('constraints', []), - instructions=data.get('instructions', []), - input_schema=mapManagementInstanceProvidersToolsListOutputItemsInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, - output_schema=mapManagementInstanceProvidersToolsListOutputItemsOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, - tags=mapManagementInstanceProvidersToolsListOutputItemsTags.from_dict(data.get('tags')) if data.get('tags') else None, - specification_id=data.get('specification_id'), - provider_id=data.get('provider_id'), - created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, - updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None - ) - - @staticmethod - def to_dict(value: Union[ManagementInstanceProvidersToolsListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: - if value is None: - return None - if isinstance(value, dict): - return value - return dataclasses.asdict(value) - -class mapManagementInstanceProvidersToolsListOutputPagination: - @staticmethod - def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsListOutputPagination: - return ManagementInstanceProvidersToolsListOutputPagination( - has_more_before=data.get('has_more_before'), - has_more_after=data.get('has_more_after') - ) - - @staticmethod - def to_dict(value: Union[ManagementInstanceProvidersToolsListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: - if value is None: - return None - if isinstance(value, dict): - return value - return dataclasses.asdict(value) - -class mapManagementInstanceProvidersToolsListOutput: - @staticmethod - def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsListOutput: - return ManagementInstanceProvidersToolsListOutput( - items=[mapManagementInstanceProvidersToolsListOutputItems.from_dict(item) for item in data.get('items', []) if item], - pagination=mapManagementInstanceProvidersToolsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None - ) - - @staticmethod - def to_dict(value: Union[ManagementInstanceProvidersToolsListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: - if value is None: - return None - if isinstance(value, dict): - return value - # assume dataclass for generated models - return dataclasses.asdict(value) - -@dataclass -class ManagementInstanceProvidersToolsListQuery: - provider_version_id: str - limit: Optional[float] = None - after: Optional[str] = None - before: Optional[str] = None - cursor: Optional[str] = None - order: Optional[str] = None - - -class mapManagementInstanceProvidersToolsListQuery: - @staticmethod - def from_dict(data: Dict[str, Any]) -> ManagementInstanceProvidersToolsListQuery: - return ManagementInstanceProvidersToolsListQuery( - limit=data.get('limit'), - after=data.get('after'), - before=data.get('before'), - cursor=data.get('cursor'), - order=data.get('order'), - provider_version_id=data.get('provider_version_id') - ) - - @staticmethod - def to_dict(value: Union[ManagementInstanceProvidersToolsListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: - if value is None: - return None - if isinstance(value, dict): - return value - # assume dataclass for generated models - return dataclasses.asdict(value) - diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/__init__.py new file mode 100644 index 00000000..e33eef95 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/__init__.py @@ -0,0 +1,6 @@ +from .create import * +from .delete import * +from .get import * +from .list import * +from .rules import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/create.py new file mode 100644 index 00000000..eceb29b9 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/create.py @@ -0,0 +1,177 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class NetworkPoliciesCreateOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class NetworkPoliciesCreateOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[NetworkPoliciesCreateOutputRulesPorts]] = None +@dataclass +class NetworkPoliciesCreateOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[NetworkPoliciesCreateOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapNetworkPoliciesCreateOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesCreateOutputRulesPorts: + return NetworkPoliciesCreateOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesCreateOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesCreateOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesCreateOutputRules: + return NetworkPoliciesCreateOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapNetworkPoliciesCreateOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesCreateOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesCreateOutput: + return NetworkPoliciesCreateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapNetworkPoliciesCreateOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesCreateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class NetworkPoliciesCreateBodyRulesPorts: + from_: float + to: float +@dataclass +class NetworkPoliciesCreateBodyRules: + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[NetworkPoliciesCreateBodyRulesPorts]] = None +@dataclass +class NetworkPoliciesCreateBody: + name: str + description: Optional[str] = None + rules: Optional[List[NetworkPoliciesCreateBodyRules]] = None + + +class mapNetworkPoliciesCreateBodyRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesCreateBodyRulesPorts: + return NetworkPoliciesCreateBodyRulesPorts( + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesCreateBodyRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesCreateBodyRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesCreateBodyRules: + return NetworkPoliciesCreateBodyRules( + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapNetworkPoliciesCreateBodyRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesCreateBodyRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesCreateBody: + return NetworkPoliciesCreateBody( + name=data.get('name'), + description=data.get('description'), + rules=[mapNetworkPoliciesCreateBodyRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesCreateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/delete.py new file mode 100644 index 00000000..c16db9da --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/delete.py @@ -0,0 +1,102 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class NetworkPoliciesDeleteOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class NetworkPoliciesDeleteOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[NetworkPoliciesDeleteOutputRulesPorts]] = None +@dataclass +class NetworkPoliciesDeleteOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[NetworkPoliciesDeleteOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapNetworkPoliciesDeleteOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesDeleteOutputRulesPorts: + return NetworkPoliciesDeleteOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesDeleteOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesDeleteOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesDeleteOutputRules: + return NetworkPoliciesDeleteOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapNetworkPoliciesDeleteOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesDeleteOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesDeleteOutput: + return NetworkPoliciesDeleteOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapNetworkPoliciesDeleteOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesDeleteOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/get.py new file mode 100644 index 00000000..9fe5b776 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/get.py @@ -0,0 +1,102 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class NetworkPoliciesGetOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class NetworkPoliciesGetOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[NetworkPoliciesGetOutputRulesPorts]] = None +@dataclass +class NetworkPoliciesGetOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[NetworkPoliciesGetOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapNetworkPoliciesGetOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesGetOutputRulesPorts: + return NetworkPoliciesGetOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesGetOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesGetOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesGetOutputRules: + return NetworkPoliciesGetOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapNetworkPoliciesGetOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesGetOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesGetOutput: + return NetworkPoliciesGetOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapNetworkPoliciesGetOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/list.py new file mode 100644 index 00000000..d4c1e820 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/list.py @@ -0,0 +1,191 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class NetworkPoliciesListOutputItemsRulesPorts: + object: str + from_: float + to: float +@dataclass +class NetworkPoliciesListOutputItemsRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[NetworkPoliciesListOutputItemsRulesPorts]] = None +@dataclass +class NetworkPoliciesListOutputItems: + object: str + id: str + name: str + status: str + version: float + rules: List[NetworkPoliciesListOutputItemsRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None +@dataclass +class NetworkPoliciesListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class NetworkPoliciesListOutput: + items: List[NetworkPoliciesListOutputItems] + pagination: NetworkPoliciesListOutputPagination + + +class mapNetworkPoliciesListOutputItemsRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesListOutputItemsRulesPorts: + return NetworkPoliciesListOutputItemsRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesListOutputItemsRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesListOutputItemsRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesListOutputItemsRules: + return NetworkPoliciesListOutputItemsRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapNetworkPoliciesListOutputItemsRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesListOutputItemsRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesListOutputItems: + return NetworkPoliciesListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapNetworkPoliciesListOutputItemsRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesListOutputPagination: + return NetworkPoliciesListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesListOutput: + return NetworkPoliciesListOutput( + items=[mapNetworkPoliciesListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapNetworkPoliciesListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class NetworkPoliciesListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class NetworkPoliciesListQueryUpdatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class NetworkPoliciesListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + status: Optional[Union[str, List[str]]] = None + firewall_id: Optional[Union[str, List[str]]] = None + search: Optional[str] = None + created_at: Optional[NetworkPoliciesListQueryCreatedAt] = None + updated_at: Optional[NetworkPoliciesListQueryUpdatedAt] = None + + +class mapNetworkPoliciesListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesListQuery: + return NetworkPoliciesListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + status=data.get('status'), + firewall_id=data.get('firewall_id'), + search=data.get('search'), + created_at=mapNetworkPoliciesListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None, + updated_at=mapNetworkPoliciesListQueryUpdatedAt.from_dict(data.get('updated_at')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/__init__.py new file mode 100644 index 00000000..3f16c919 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/__init__.py @@ -0,0 +1,3 @@ +from .create import * +from .delete import * +from .update import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/create.py new file mode 100644 index 00000000..6b181b78 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/create.py @@ -0,0 +1,117 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class NetworkPoliciesRulesCreateOutputPorts: + object: str + from_: float + to: float +@dataclass +class NetworkPoliciesRulesCreateOutput: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[NetworkPoliciesRulesCreateOutputPorts]] = None + + +class mapNetworkPoliciesRulesCreateOutputPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesRulesCreateOutputPorts: + return NetworkPoliciesRulesCreateOutputPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesRulesCreateOutputPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesRulesCreateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesRulesCreateOutput: + return NetworkPoliciesRulesCreateOutput( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapNetworkPoliciesRulesCreateOutputPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesRulesCreateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class NetworkPoliciesRulesCreateBodyPorts: + from_: float + to: float +@dataclass +class NetworkPoliciesRulesCreateBody: + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[NetworkPoliciesRulesCreateBodyPorts]] = None + + +class mapNetworkPoliciesRulesCreateBodyPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesRulesCreateBodyPorts: + return NetworkPoliciesRulesCreateBodyPorts( + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesRulesCreateBodyPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesRulesCreateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesRulesCreateBody: + return NetworkPoliciesRulesCreateBody( + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapNetworkPoliciesRulesCreateBodyPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesRulesCreateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/delete.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/delete.py new file mode 100644 index 00000000..b4e5736c --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/delete.py @@ -0,0 +1,102 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class NetworkPoliciesRulesDeleteOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class NetworkPoliciesRulesDeleteOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[NetworkPoliciesRulesDeleteOutputRulesPorts]] = None +@dataclass +class NetworkPoliciesRulesDeleteOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[NetworkPoliciesRulesDeleteOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapNetworkPoliciesRulesDeleteOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesRulesDeleteOutputRulesPorts: + return NetworkPoliciesRulesDeleteOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesRulesDeleteOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesRulesDeleteOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesRulesDeleteOutputRules: + return NetworkPoliciesRulesDeleteOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapNetworkPoliciesRulesDeleteOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesRulesDeleteOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesRulesDeleteOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesRulesDeleteOutput: + return NetworkPoliciesRulesDeleteOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapNetworkPoliciesRulesDeleteOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesRulesDeleteOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/update.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/update.py new file mode 100644 index 00000000..288d22a8 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/rules/update.py @@ -0,0 +1,117 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class NetworkPoliciesRulesUpdateOutputPorts: + object: str + from_: float + to: float +@dataclass +class NetworkPoliciesRulesUpdateOutput: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[NetworkPoliciesRulesUpdateOutputPorts]] = None + + +class mapNetworkPoliciesRulesUpdateOutputPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesRulesUpdateOutputPorts: + return NetworkPoliciesRulesUpdateOutputPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesRulesUpdateOutputPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesRulesUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesRulesUpdateOutput: + return NetworkPoliciesRulesUpdateOutput( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapNetworkPoliciesRulesUpdateOutputPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesRulesUpdateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class NetworkPoliciesRulesUpdateBodyPorts: + from_: float + to: float +@dataclass +class NetworkPoliciesRulesUpdateBody: + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[NetworkPoliciesRulesUpdateBodyPorts]] = None + + +class mapNetworkPoliciesRulesUpdateBodyPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesRulesUpdateBodyPorts: + return NetworkPoliciesRulesUpdateBodyPorts( + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesRulesUpdateBodyPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesRulesUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesRulesUpdateBody: + return NetworkPoliciesRulesUpdateBody( + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapNetworkPoliciesRulesUpdateBodyPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesRulesUpdateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/update.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/update.py new file mode 100644 index 00000000..cdc7b602 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/network_policies/update.py @@ -0,0 +1,177 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class NetworkPoliciesUpdateOutputRulesPorts: + object: str + from_: float + to: float +@dataclass +class NetworkPoliciesUpdateOutputRules: + object: str + id: str + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[NetworkPoliciesUpdateOutputRulesPorts]] = None +@dataclass +class NetworkPoliciesUpdateOutput: + object: str + id: str + name: str + status: str + version: float + rules: List[NetworkPoliciesUpdateOutputRules] + created_at: datetime + updated_at: datetime + description: Optional[str] = None + firewall_ids: Optional[List[str]] = None + archived_at: Optional[datetime] = None + + +class mapNetworkPoliciesUpdateOutputRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesUpdateOutputRulesPorts: + return NetworkPoliciesUpdateOutputRulesPorts( + object=data.get('object'), + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesUpdateOutputRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesUpdateOutputRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesUpdateOutputRules: + return NetworkPoliciesUpdateOutputRules( + object=data.get('object'), + id=data.get('id'), + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapNetworkPoliciesUpdateOutputRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesUpdateOutputRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesUpdateOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesUpdateOutput: + return NetworkPoliciesUpdateOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + status=data.get('status'), + version=data.get('version'), + rules=[mapNetworkPoliciesUpdateOutputRules.from_dict(item) for item in data.get('rules', []) if item], + firewall_ids=data.get('firewall_ids', []), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + archived_at=datetime.fromisoformat(data.get('archived_at').replace('Z', '+00:00')) if data.get('archived_at') else None + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesUpdateOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class NetworkPoliciesUpdateBodyRulesPorts: + from_: float + to: float +@dataclass +class NetworkPoliciesUpdateBodyRules: + effect: str + direction: str + cidrs: List[str] + enabled: bool + priority: float + description: Optional[str] = None + ports: Optional[List[NetworkPoliciesUpdateBodyRulesPorts]] = None +@dataclass +class NetworkPoliciesUpdateBody: + name: Optional[str] = None + description: Optional[str] = None + rules: Optional[List[NetworkPoliciesUpdateBodyRules]] = None + + +class mapNetworkPoliciesUpdateBodyRulesPorts: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesUpdateBodyRulesPorts: + return NetworkPoliciesUpdateBodyRulesPorts( + from_=data.get('from'), + to=data.get('to') + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesUpdateBodyRulesPorts, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesUpdateBodyRules: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesUpdateBodyRules: + return NetworkPoliciesUpdateBodyRules( + effect=data.get('effect'), + direction=data.get('direction'), + cidrs=data.get('cidrs', []), + description=data.get('description'), + enabled=data.get('enabled'), + priority=data.get('priority'), + ports=[mapNetworkPoliciesUpdateBodyRulesPorts.from_dict(item) for item in data.get('ports', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesUpdateBodyRules, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworkPoliciesUpdateBody: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworkPoliciesUpdateBody: + return NetworkPoliciesUpdateBody( + name=data.get('name'), + description=data.get('description'), + rules=[mapNetworkPoliciesUpdateBodyRules.from_dict(item) for item in data.get('rules', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworkPoliciesUpdateBody, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/__init__.py new file mode 100644 index 00000000..a3f095ae --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/__init__.py @@ -0,0 +1,3 @@ +from .get import * +from .list import * +from .list_network_logs import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/get.py new file mode 100644 index 00000000..f7186061 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/get.py @@ -0,0 +1,66 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class NetworksGetOutputPublicIps: + object: str + id: str + ip: str + region: str + created_at: datetime + updated_at: datetime +@dataclass +class NetworksGetOutput: + object: str + id: str + name: str + created_at: datetime + updated_at: datetime + public_ips: List[NetworksGetOutputPublicIps] + description: Optional[str] = None + + +class mapNetworksGetOutputPublicIps: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworksGetOutputPublicIps: + return NetworksGetOutputPublicIps( + object=data.get('object'), + id=data.get('id'), + ip=data.get('ip'), + region=data.get('region'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[NetworksGetOutputPublicIps, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworksGetOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworksGetOutput: + return NetworksGetOutput( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + public_ips=[mapNetworksGetOutputPublicIps.from_dict(item) for item in data.get('public_ips', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworksGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/list.py new file mode 100644 index 00000000..1a6cf996 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/list.py @@ -0,0 +1,153 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class NetworksListOutputItemsPublicIps: + object: str + id: str + ip: str + region: str + created_at: datetime + updated_at: datetime +@dataclass +class NetworksListOutputItems: + object: str + id: str + name: str + created_at: datetime + updated_at: datetime + public_ips: List[NetworksListOutputItemsPublicIps] + description: Optional[str] = None +@dataclass +class NetworksListOutputPagination: + has_more_before: bool + has_more_after: bool +@dataclass +class NetworksListOutput: + items: List[NetworksListOutputItems] + pagination: NetworksListOutputPagination + + +class mapNetworksListOutputItemsPublicIps: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworksListOutputItemsPublicIps: + return NetworksListOutputItemsPublicIps( + object=data.get('object'), + id=data.get('id'), + ip=data.get('ip'), + region=data.get('region'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[NetworksListOutputItemsPublicIps, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworksListOutputItems: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworksListOutputItems: + return NetworksListOutputItems( + object=data.get('object'), + id=data.get('id'), + name=data.get('name'), + description=data.get('description'), + created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, + updated_at=datetime.fromisoformat(data.get('updated_at').replace('Z', '+00:00')) if data.get('updated_at') else None, + public_ips=[mapNetworksListOutputItemsPublicIps.from_dict(item) for item in data.get('public_ips', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworksListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworksListOutputPagination: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworksListOutputPagination: + return NetworksListOutputPagination( + has_more_before=data.get('has_more_before'), + has_more_after=data.get('has_more_after') + ) + + @staticmethod + def to_dict(value: Union[NetworksListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworksListOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworksListOutput: + return NetworksListOutput( + items=[mapNetworksListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapNetworksListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + ) + + @staticmethod + def to_dict(value: Union[NetworksListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class NetworksListQueryCreatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class NetworksListQueryUpdatedAt: + gt: Optional[datetime] = None + lt: Optional[datetime] = None +@dataclass +class NetworksListQuery: + limit: Optional[float] = None + after: Optional[str] = None + before: Optional[str] = None + cursor: Optional[str] = None + order: Optional[str] = None + id: Optional[Union[str, List[str]]] = None + firewall_id: Optional[Union[str, List[str]]] = None + enclave_id: Optional[Union[str, List[str]]] = None + created_at: Optional[NetworksListQueryCreatedAt] = None + updated_at: Optional[NetworksListQueryUpdatedAt] = None + + +class mapNetworksListQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworksListQuery: + return NetworksListQuery( + limit=data.get('limit'), + after=data.get('after'), + before=data.get('before'), + cursor=data.get('cursor'), + order=data.get('order'), + id=data.get('id'), + firewall_id=data.get('firewall_id'), + enclave_id=data.get('enclave_id'), + created_at=mapNetworksListQueryCreatedAt.from_dict(data.get('created_at')) if data.get('created_at') else None, + updated_at=mapNetworksListQueryUpdatedAt.from_dict(data.get('updated_at')) if data.get('updated_at') else None + ) + + @staticmethod + def to_dict(value: Union[NetworksListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/list_network_logs.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/list_network_logs.py new file mode 100644 index 00000000..3eec1545 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/networks/list_network_logs.py @@ -0,0 +1,103 @@ +from dataclasses import dataclass +from typing import Any, Dict, List, Optional, Union +from datetime import datetime +import dataclasses + +@dataclass +class NetworksListNetworkLogsOutputRecords: + object: str + direction: str + enclave_id: str + bucket_start: str + hostname: str + ip: str + port: float + count: float + first_seen_at: str + last_seen_at: str + result: Optional[str] = None +@dataclass +class NetworksListNetworkLogsOutput: + object: str + direction: str + enclave_ids: List[str] + records: List[NetworksListNetworkLogsOutputRecords] + + +class mapNetworksListNetworkLogsOutputRecords: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworksListNetworkLogsOutputRecords: + return NetworksListNetworkLogsOutputRecords( + object=data.get('object'), + direction=data.get('direction'), + enclave_id=data.get('enclave_id'), + bucket_start=data.get('bucket_start'), + hostname=data.get('hostname'), + ip=data.get('ip'), + port=data.get('port'), + count=data.get('count'), + result=data.get('result'), + first_seen_at=data.get('first_seen_at'), + last_seen_at=data.get('last_seen_at') + ) + + @staticmethod + def to_dict(value: Union[NetworksListNetworkLogsOutputRecords, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + return dataclasses.asdict(value) + +class mapNetworksListNetworkLogsOutput: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworksListNetworkLogsOutput: + return NetworksListNetworkLogsOutput( + object=data.get('object'), + direction=data.get('direction'), + enclave_ids=data.get('enclave_ids', []), + records=[mapNetworksListNetworkLogsOutputRecords.from_dict(item) for item in data.get('records', []) if item] + ) + + @staticmethod + def to_dict(value: Union[NetworksListNetworkLogsOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + +@dataclass +class NetworksListNetworkLogsQuery: + direction: str + enclave_id: Optional[Union[str, List[str]]] = None + hostname: Optional[Union[str, List[str]]] = None + ip: Optional[Union[str, List[str]]] = None + from_: Optional[str] = None + to: Optional[str] = None + interval_minutes: Optional[float] = None + + +class mapNetworksListNetworkLogsQuery: + @staticmethod + def from_dict(data: Dict[str, Any]) -> NetworksListNetworkLogsQuery: + return NetworksListNetworkLogsQuery( + direction=data.get('direction'), + enclave_id=data.get('enclave_id'), + hostname=data.get('hostname'), + ip=data.get('ip'), + from_=data.get('from'), + to=data.get('to'), + interval_minutes=data.get('interval_minutes') + ) + + @staticmethod + def to_dict(value: Union[NetworksListNetworkLogsQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + if value is None: + return None + if isinstance(value, dict): + return value + # assume dataclass for generated models + return dataclasses.asdict(value) + diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/__init__.py new file mode 100644 index 00000000..6ac1ccc3 --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/__init__.py @@ -0,0 +1 @@ +from .tools import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/tools/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/tools/__init__.py new file mode 100644 index 00000000..65eb373b --- /dev/null +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/tools/__init__.py @@ -0,0 +1,2 @@ +from .get import * +from .list import * \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/providers/tools/get.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/tools/get.py similarity index 57% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/providers/tools/get.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/tools/get.py index 028caa66..409baaa0 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/providers/tools/get.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/tools/get.py @@ -4,19 +4,19 @@ import dataclasses @dataclass -class ProvidersToolsGetOutputInputSchema: +class ProviderToolsGetOutputInputSchema: type: str schema: Dict[str, Any] @dataclass -class ProvidersToolsGetOutputOutputSchema: +class ProviderToolsGetOutputOutputSchema: type: str schema: Dict[str, Any] @dataclass -class ProvidersToolsGetOutputTags: +class ProviderToolsGetOutputTags: destructive: Optional[bool] = None read_only: Optional[bool] = None @dataclass -class ProvidersToolsGetOutput: +class ProviderToolsGetOutput: object: str id: str key: str @@ -29,63 +29,63 @@ class ProvidersToolsGetOutput: created_at: datetime updated_at: datetime description: Optional[str] = None - input_schema: Optional[ProvidersToolsGetOutputInputSchema] = None - output_schema: Optional[ProvidersToolsGetOutputOutputSchema] = None - tags: Optional[ProvidersToolsGetOutputTags] = None + input_schema: Optional[ProviderToolsGetOutputInputSchema] = None + output_schema: Optional[ProviderToolsGetOutputOutputSchema] = None + tags: Optional[ProviderToolsGetOutputTags] = None -class mapProvidersToolsGetOutputInputSchema: +class mapProviderToolsGetOutputInputSchema: @staticmethod - def from_dict(data: Dict[str, Any]) -> ProvidersToolsGetOutputInputSchema: - return ProvidersToolsGetOutputInputSchema( + def from_dict(data: Dict[str, Any]) -> ProviderToolsGetOutputInputSchema: + return ProviderToolsGetOutputInputSchema( type=data.get('type'), schema=data.get('schema') ) @staticmethod - def to_dict(value: Union[ProvidersToolsGetOutputInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ProviderToolsGetOutputInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapProvidersToolsGetOutputOutputSchema: +class mapProviderToolsGetOutputOutputSchema: @staticmethod - def from_dict(data: Dict[str, Any]) -> ProvidersToolsGetOutputOutputSchema: - return ProvidersToolsGetOutputOutputSchema( + def from_dict(data: Dict[str, Any]) -> ProviderToolsGetOutputOutputSchema: + return ProviderToolsGetOutputOutputSchema( type=data.get('type'), schema=data.get('schema') ) @staticmethod - def to_dict(value: Union[ProvidersToolsGetOutputOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ProviderToolsGetOutputOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapProvidersToolsGetOutputTags: +class mapProviderToolsGetOutputTags: @staticmethod - def from_dict(data: Dict[str, Any]) -> ProvidersToolsGetOutputTags: - return ProvidersToolsGetOutputTags( + def from_dict(data: Dict[str, Any]) -> ProviderToolsGetOutputTags: + return ProviderToolsGetOutputTags( destructive=data.get('destructive'), read_only=data.get('read_only') ) @staticmethod - def to_dict(value: Union[ProvidersToolsGetOutputTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ProviderToolsGetOutputTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapProvidersToolsGetOutput: +class mapProviderToolsGetOutput: @staticmethod - def from_dict(data: Dict[str, Any]) -> ProvidersToolsGetOutput: - return ProvidersToolsGetOutput( + def from_dict(data: Dict[str, Any]) -> ProviderToolsGetOutput: + return ProviderToolsGetOutput( object=data.get('object'), id=data.get('id'), key=data.get('key'), @@ -94,9 +94,9 @@ def from_dict(data: Dict[str, Any]) -> ProvidersToolsGetOutput: capabilities=data.get('capabilities'), constraints=data.get('constraints', []), instructions=data.get('instructions', []), - input_schema=mapProvidersToolsGetOutputInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, - output_schema=mapProvidersToolsGetOutputOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, - tags=mapProvidersToolsGetOutputTags.from_dict(data.get('tags')) if data.get('tags') else None, + input_schema=mapProviderToolsGetOutputInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, + output_schema=mapProviderToolsGetOutputOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, + tags=mapProviderToolsGetOutputTags.from_dict(data.get('tags')) if data.get('tags') else None, specification_id=data.get('specification_id'), provider_id=data.get('provider_id'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, @@ -104,7 +104,7 @@ def from_dict(data: Dict[str, Any]) -> ProvidersToolsGetOutput: ) @staticmethod - def to_dict(value: Union[ProvidersToolsGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ProviderToolsGetOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/providers/tools/list.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/tools/list.py similarity index 55% rename from src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/providers/tools/list.py rename to src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/tools/list.py index a9e4c9b8..cd13db5e 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/providers/tools/list.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider/tools/list.py @@ -4,19 +4,19 @@ import dataclasses @dataclass -class ProvidersToolsListOutputItemsInputSchema: +class ProviderToolsListOutputItemsInputSchema: type: str schema: Dict[str, Any] @dataclass -class ProvidersToolsListOutputItemsOutputSchema: +class ProviderToolsListOutputItemsOutputSchema: type: str schema: Dict[str, Any] @dataclass -class ProvidersToolsListOutputItemsTags: +class ProviderToolsListOutputItemsTags: destructive: Optional[bool] = None read_only: Optional[bool] = None @dataclass -class ProvidersToolsListOutputItems: +class ProviderToolsListOutputItems: object: str id: str key: str @@ -29,71 +29,71 @@ class ProvidersToolsListOutputItems: created_at: datetime updated_at: datetime description: Optional[str] = None - input_schema: Optional[ProvidersToolsListOutputItemsInputSchema] = None - output_schema: Optional[ProvidersToolsListOutputItemsOutputSchema] = None - tags: Optional[ProvidersToolsListOutputItemsTags] = None + input_schema: Optional[ProviderToolsListOutputItemsInputSchema] = None + output_schema: Optional[ProviderToolsListOutputItemsOutputSchema] = None + tags: Optional[ProviderToolsListOutputItemsTags] = None @dataclass -class ProvidersToolsListOutputPagination: +class ProviderToolsListOutputPagination: has_more_before: bool has_more_after: bool @dataclass -class ProvidersToolsListOutput: - items: List[ProvidersToolsListOutputItems] - pagination: ProvidersToolsListOutputPagination +class ProviderToolsListOutput: + items: List[ProviderToolsListOutputItems] + pagination: ProviderToolsListOutputPagination -class mapProvidersToolsListOutputItemsInputSchema: +class mapProviderToolsListOutputItemsInputSchema: @staticmethod - def from_dict(data: Dict[str, Any]) -> ProvidersToolsListOutputItemsInputSchema: - return ProvidersToolsListOutputItemsInputSchema( + def from_dict(data: Dict[str, Any]) -> ProviderToolsListOutputItemsInputSchema: + return ProviderToolsListOutputItemsInputSchema( type=data.get('type'), schema=data.get('schema') ) @staticmethod - def to_dict(value: Union[ProvidersToolsListOutputItemsInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ProviderToolsListOutputItemsInputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapProvidersToolsListOutputItemsOutputSchema: +class mapProviderToolsListOutputItemsOutputSchema: @staticmethod - def from_dict(data: Dict[str, Any]) -> ProvidersToolsListOutputItemsOutputSchema: - return ProvidersToolsListOutputItemsOutputSchema( + def from_dict(data: Dict[str, Any]) -> ProviderToolsListOutputItemsOutputSchema: + return ProviderToolsListOutputItemsOutputSchema( type=data.get('type'), schema=data.get('schema') ) @staticmethod - def to_dict(value: Union[ProvidersToolsListOutputItemsOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ProviderToolsListOutputItemsOutputSchema, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapProvidersToolsListOutputItemsTags: +class mapProviderToolsListOutputItemsTags: @staticmethod - def from_dict(data: Dict[str, Any]) -> ProvidersToolsListOutputItemsTags: - return ProvidersToolsListOutputItemsTags( + def from_dict(data: Dict[str, Any]) -> ProviderToolsListOutputItemsTags: + return ProviderToolsListOutputItemsTags( destructive=data.get('destructive'), read_only=data.get('read_only') ) @staticmethod - def to_dict(value: Union[ProvidersToolsListOutputItemsTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ProviderToolsListOutputItemsTags, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapProvidersToolsListOutputItems: +class mapProviderToolsListOutputItems: @staticmethod - def from_dict(data: Dict[str, Any]) -> ProvidersToolsListOutputItems: - return ProvidersToolsListOutputItems( + def from_dict(data: Dict[str, Any]) -> ProviderToolsListOutputItems: + return ProviderToolsListOutputItems( object=data.get('object'), id=data.get('id'), key=data.get('key'), @@ -102,9 +102,9 @@ def from_dict(data: Dict[str, Any]) -> ProvidersToolsListOutputItems: capabilities=data.get('capabilities'), constraints=data.get('constraints', []), instructions=data.get('instructions', []), - input_schema=mapProvidersToolsListOutputItemsInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, - output_schema=mapProvidersToolsListOutputItemsOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, - tags=mapProvidersToolsListOutputItemsTags.from_dict(data.get('tags')) if data.get('tags') else None, + input_schema=mapProviderToolsListOutputItemsInputSchema.from_dict(data.get('input_schema')) if data.get('input_schema') else None, + output_schema=mapProviderToolsListOutputItemsOutputSchema.from_dict(data.get('output_schema')) if data.get('output_schema') else None, + tags=mapProviderToolsListOutputItemsTags.from_dict(data.get('tags')) if data.get('tags') else None, specification_id=data.get('specification_id'), provider_id=data.get('provider_id'), created_at=datetime.fromisoformat(data.get('created_at').replace('Z', '+00:00')) if data.get('created_at') else None, @@ -112,39 +112,39 @@ def from_dict(data: Dict[str, Any]) -> ProvidersToolsListOutputItems: ) @staticmethod - def to_dict(value: Union[ProvidersToolsListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ProviderToolsListOutputItems, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapProvidersToolsListOutputPagination: +class mapProviderToolsListOutputPagination: @staticmethod - def from_dict(data: Dict[str, Any]) -> ProvidersToolsListOutputPagination: - return ProvidersToolsListOutputPagination( + def from_dict(data: Dict[str, Any]) -> ProviderToolsListOutputPagination: + return ProviderToolsListOutputPagination( has_more_before=data.get('has_more_before'), has_more_after=data.get('has_more_after') ) @staticmethod - def to_dict(value: Union[ProvidersToolsListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ProviderToolsListOutputPagination, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): return value return dataclasses.asdict(value) -class mapProvidersToolsListOutput: +class mapProviderToolsListOutput: @staticmethod - def from_dict(data: Dict[str, Any]) -> ProvidersToolsListOutput: - return ProvidersToolsListOutput( - items=[mapProvidersToolsListOutputItems.from_dict(item) for item in data.get('items', []) if item], - pagination=mapProvidersToolsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None + def from_dict(data: Dict[str, Any]) -> ProviderToolsListOutput: + return ProviderToolsListOutput( + items=[mapProviderToolsListOutputItems.from_dict(item) for item in data.get('items', []) if item], + pagination=mapProviderToolsListOutputPagination.from_dict(data.get('pagination')) if data.get('pagination') else None ) @staticmethod - def to_dict(value: Union[ProvidersToolsListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ProviderToolsListOutput, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): @@ -153,7 +153,7 @@ def to_dict(value: Union[ProvidersToolsListOutput, Dict[str, Any], None]) -> Opt return dataclasses.asdict(value) @dataclass -class ProvidersToolsListQuery: +class ProviderToolsListQuery: provider_version_id: str limit: Optional[float] = None after: Optional[str] = None @@ -162,10 +162,10 @@ class ProvidersToolsListQuery: order: Optional[str] = None -class mapProvidersToolsListQuery: +class mapProviderToolsListQuery: @staticmethod - def from_dict(data: Dict[str, Any]) -> ProvidersToolsListQuery: - return ProvidersToolsListQuery( + def from_dict(data: Dict[str, Any]) -> ProviderToolsListQuery: + return ProviderToolsListQuery( limit=data.get('limit'), after=data.get('after'), before=data.get('before'), @@ -175,7 +175,7 @@ def from_dict(data: Dict[str, Any]) -> ProvidersToolsListQuery: ) @staticmethod - def to_dict(value: Union[ProvidersToolsListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: + def to_dict(value: Union[ProviderToolsListQuery, Dict[str, Any], None]) -> Optional[Dict[str, Any]]: if value is None: return None if isinstance(value, dict): diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/create.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/create.py index cf830ca7..7dfdff0b 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/create.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/provider_templates/create.py @@ -54,9 +54,10 @@ class ProviderTemplatesCreateBodyProviders: @dataclass class ProviderTemplatesCreateBody: name: str - providers: List[ProviderTemplatesCreateBodyProviders] description: Optional[str] = None metadata: Optional[Dict[str, Any]] = None + providers: Optional[List[ProviderTemplatesCreateBodyProviders]] = None + integration_id: Optional[str] = None class mapProviderTemplatesCreateBodyProviders: @@ -89,7 +90,8 @@ def from_dict(data: Dict[str, Any]) -> ProviderTemplatesCreateBody: name=data.get('name'), description=data.get('description'), metadata=data.get('metadata'), - providers=[mapProviderTemplatesCreateBodyProviders.from_dict(item) for item in data.get('providers', []) if item] + providers=[mapProviderTemplatesCreateBodyProviders.from_dict(item) for item in data.get('providers', []) if item], + integration_id=data.get('integration_id') ) @staticmethod diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/providers/__init__.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/providers/__init__.py index 6ccd84b4..6ed28a91 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/providers/__init__.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/resources/providers/__init__.py @@ -2,6 +2,5 @@ from .get import * from .list import * from .specifications import * -from .tools import * from .triggers import * from .versions import * \ No newline at end of file From 34fa0eef26aa82cc76555dabf1a2ebce97ffd4f5 Mon Sep 17 00:00:00 2001 From: Tobias Herber <22559657+herber@users.noreply.github.com> Date: Thu, 4 Jun 2026 15:35:29 +0200 Subject: [PATCH 2/2] Fix skill template names --- .../endpoints/dashboard_instance_skills_templates.py | 10 +++++----- .../dashboard_instance_skills_templates_items.py | 8 ++++---- .../endpoints/management_instance_skills_templates.py | 10 +++++----- .../management_instance_skills_templates_items.py | 8 ++++---- .../endpoints/skills_templates.py | 10 +++++----- .../endpoints/skills_templates_items.py | 8 ++++---- 6 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_skills_templates.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_skills_templates.py index 032948f8..a4ef61ee 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_skills_templates.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_skills_templates.py @@ -59,7 +59,7 @@ def list(self, instance_id: str, *, limit: Optional[float] = None, after: Option query_dict["updated_at"] = updated_at request = MetorialRequest( - path=['dashboard', 'instances', instance_id, 'skill-template'], + path=['dashboard', 'instances', instance_id, 'skill-templates'], query=query_dict ) return self._get(request).transform(mapDashboardInstanceSkillsTemplatesListOutput.from_dict) @@ -74,7 +74,7 @@ def get(self, instance_id: str, skill_template_id: str) -> DashboardInstanceSkil :return: DashboardInstanceSkillsTemplatesGetOutput """ request = MetorialRequest( - path=['dashboard', 'instances', instance_id, 'skill-template', skill_template_id] + path=['dashboard', 'instances', instance_id, 'skill-templates', skill_template_id] ) return self._get(request).transform(mapDashboardInstanceSkillsTemplatesGetOutput.from_dict) @@ -101,7 +101,7 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No body_dict["from_skill_Id"] = from_skill_id request = MetorialRequest( - path=['dashboard', 'instances', instance_id, 'skill-template'], + path=['dashboard', 'instances', instance_id, 'skill-templates'], body=body_dict ) return self._post(request).transform(mapDashboardInstanceSkillsTemplatesCreateOutput.from_dict) @@ -128,7 +128,7 @@ def update(self, instance_id: str, skill_template_id: str, *, name: Optional[str body_dict["metadata"] = metadata request = MetorialRequest( - path=['dashboard', 'instances', instance_id, 'skill-template', skill_template_id], + path=['dashboard', 'instances', instance_id, 'skill-templates', skill_template_id], body=body_dict ) return self._patch(request).transform(mapDashboardInstanceSkillsTemplatesUpdateOutput.from_dict) @@ -143,6 +143,6 @@ def delete(self, instance_id: str, skill_template_id: str) -> DashboardInstanceS :return: DashboardInstanceSkillsTemplatesDeleteOutput """ request = MetorialRequest( - path=['dashboard', 'instances', instance_id, 'skill-template', skill_template_id] + path=['dashboard', 'instances', instance_id, 'skill-templates', skill_template_id] ) return self._delete(request).transform(mapDashboardInstanceSkillsTemplatesDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_skills_templates_items.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_skills_templates_items.py index ffb25499..b09c6067 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_skills_templates_items.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/dashboard_instance_skills_templates_items.py @@ -36,7 +36,7 @@ def list(self, instance_id: str, skill_template_id: str, *, limit: Optional[floa query_dict["order"] = order request = MetorialRequest( - path=['dashboard', 'instances', instance_id, 'skill-template', skill_template_id, 'items'], + path=['dashboard', 'instances', instance_id, 'skill-templates', skill_template_id, 'items'], query=query_dict ) return self._get(request).transform(mapDashboardInstanceSkillsTemplatesItemsListOutput.from_dict) @@ -52,7 +52,7 @@ def get(self, instance_id: str, skill_template_id: str, skill_template_item_id: :return: DashboardInstanceSkillsTemplatesItemsGetOutput """ request = MetorialRequest( - path=['dashboard', 'instances', instance_id, 'skill-template', skill_template_id, 'items', skill_template_item_id] + path=['dashboard', 'instances', instance_id, 'skill-templates', skill_template_id, 'items', skill_template_item_id] ) return self._get(request).transform(mapDashboardInstanceSkillsTemplatesItemsGetOutput.from_dict) @@ -66,7 +66,7 @@ def create(self, instance_id: str, skill_template_id: str) -> DashboardInstanceS :return: DashboardInstanceSkillsTemplatesItemsCreateOutput """ request = MetorialRequest( - path=['dashboard', 'instances', instance_id, 'skill-template', skill_template_id, 'items'] + path=['dashboard', 'instances', instance_id, 'skill-templates', skill_template_id, 'items'] ) return self._post(request).transform(mapDashboardInstanceSkillsTemplatesItemsCreateOutput.from_dict) @@ -81,6 +81,6 @@ def delete(self, instance_id: str, skill_template_id: str, skill_template_item_i :return: DashboardInstanceSkillsTemplatesItemsDeleteOutput """ request = MetorialRequest( - path=['dashboard', 'instances', instance_id, 'skill-template', skill_template_id, 'items', skill_template_item_id] + path=['dashboard', 'instances', instance_id, 'skill-templates', skill_template_id, 'items', skill_template_item_id] ) return self._delete(request).transform(mapDashboardInstanceSkillsTemplatesItemsDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_skills_templates.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_skills_templates.py index 7dabca51..1555dae7 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_skills_templates.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_skills_templates.py @@ -59,7 +59,7 @@ def list(self, instance_id: str, *, limit: Optional[float] = None, after: Option query_dict["updated_at"] = updated_at request = MetorialRequest( - path=['instances', instance_id, 'skill-template'], + path=['instances', instance_id, 'skill-templates'], query=query_dict ) return self._get(request).transform(mapDashboardInstanceSkillsTemplatesListOutput.from_dict) @@ -74,7 +74,7 @@ def get(self, instance_id: str, skill_template_id: str) -> DashboardInstanceSkil :return: DashboardInstanceSkillsTemplatesGetOutput """ request = MetorialRequest( - path=['instances', instance_id, 'skill-template', skill_template_id] + path=['instances', instance_id, 'skill-templates', skill_template_id] ) return self._get(request).transform(mapDashboardInstanceSkillsTemplatesGetOutput.from_dict) @@ -101,7 +101,7 @@ def create(self, instance_id: str, *, name: str, description: Optional[str] = No body_dict["from_skill_Id"] = from_skill_id request = MetorialRequest( - path=['instances', instance_id, 'skill-template'], + path=['instances', instance_id, 'skill-templates'], body=body_dict ) return self._post(request).transform(mapDashboardInstanceSkillsTemplatesCreateOutput.from_dict) @@ -128,7 +128,7 @@ def update(self, instance_id: str, skill_template_id: str, *, name: Optional[str body_dict["metadata"] = metadata request = MetorialRequest( - path=['instances', instance_id, 'skill-template', skill_template_id], + path=['instances', instance_id, 'skill-templates', skill_template_id], body=body_dict ) return self._patch(request).transform(mapDashboardInstanceSkillsTemplatesUpdateOutput.from_dict) @@ -143,6 +143,6 @@ def delete(self, instance_id: str, skill_template_id: str) -> DashboardInstanceS :return: DashboardInstanceSkillsTemplatesDeleteOutput """ request = MetorialRequest( - path=['instances', instance_id, 'skill-template', skill_template_id] + path=['instances', instance_id, 'skill-templates', skill_template_id] ) return self._delete(request).transform(mapDashboardInstanceSkillsTemplatesDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_skills_templates_items.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_skills_templates_items.py index 287a5ae6..5cc7ee92 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_skills_templates_items.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/management_instance_skills_templates_items.py @@ -36,7 +36,7 @@ def list(self, instance_id: str, skill_template_id: str, *, limit: Optional[floa query_dict["order"] = order request = MetorialRequest( - path=['instances', instance_id, 'skill-template', skill_template_id, 'items'], + path=['instances', instance_id, 'skill-templates', skill_template_id, 'items'], query=query_dict ) return self._get(request).transform(mapDashboardInstanceSkillsTemplatesItemsListOutput.from_dict) @@ -52,7 +52,7 @@ def get(self, instance_id: str, skill_template_id: str, skill_template_item_id: :return: DashboardInstanceSkillsTemplatesItemsGetOutput """ request = MetorialRequest( - path=['instances', instance_id, 'skill-template', skill_template_id, 'items', skill_template_item_id] + path=['instances', instance_id, 'skill-templates', skill_template_id, 'items', skill_template_item_id] ) return self._get(request).transform(mapDashboardInstanceSkillsTemplatesItemsGetOutput.from_dict) @@ -66,7 +66,7 @@ def create(self, instance_id: str, skill_template_id: str) -> DashboardInstanceS :return: DashboardInstanceSkillsTemplatesItemsCreateOutput """ request = MetorialRequest( - path=['instances', instance_id, 'skill-template', skill_template_id, 'items'] + path=['instances', instance_id, 'skill-templates', skill_template_id, 'items'] ) return self._post(request).transform(mapDashboardInstanceSkillsTemplatesItemsCreateOutput.from_dict) @@ -81,6 +81,6 @@ def delete(self, instance_id: str, skill_template_id: str, skill_template_item_i :return: DashboardInstanceSkillsTemplatesItemsDeleteOutput """ request = MetorialRequest( - path=['instances', instance_id, 'skill-template', skill_template_id, 'items', skill_template_item_id] + path=['instances', instance_id, 'skill-templates', skill_template_id, 'items', skill_template_item_id] ) return self._delete(request).transform(mapDashboardInstanceSkillsTemplatesItemsDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/skills_templates.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/skills_templates.py index f552f974..bfbaa578 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/skills_templates.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/skills_templates.py @@ -58,7 +58,7 @@ def list(self, *, limit: Optional[float] = None, after: Optional[str] = None, be query_dict["updated_at"] = updated_at request = MetorialRequest( - path=['skill-template'], + path=['skill-templates'], query=query_dict ) return self._get(request).transform(mapDashboardInstanceSkillsTemplatesListOutput.from_dict) @@ -72,7 +72,7 @@ def get(self, skill_template_id: str) -> DashboardInstanceSkillsTemplatesGetOutp :return: DashboardInstanceSkillsTemplatesGetOutput """ request = MetorialRequest( - path=['skill-template', skill_template_id] + path=['skill-templates', skill_template_id] ) return self._get(request).transform(mapDashboardInstanceSkillsTemplatesGetOutput.from_dict) @@ -98,7 +98,7 @@ def create(self, *, name: str, description: Optional[str] = None, metadata: Opti body_dict["from_skill_Id"] = from_skill_id request = MetorialRequest( - path=['skill-template'], + path=['skill-templates'], body=body_dict ) return self._post(request).transform(mapDashboardInstanceSkillsTemplatesCreateOutput.from_dict) @@ -124,7 +124,7 @@ def update(self, skill_template_id: str, *, name: Optional[str] = None, descript body_dict["metadata"] = metadata request = MetorialRequest( - path=['skill-template', skill_template_id], + path=['skill-templates', skill_template_id], body=body_dict ) return self._patch(request).transform(mapDashboardInstanceSkillsTemplatesUpdateOutput.from_dict) @@ -138,6 +138,6 @@ def delete(self, skill_template_id: str) -> DashboardInstanceSkillsTemplatesDele :return: DashboardInstanceSkillsTemplatesDeleteOutput """ request = MetorialRequest( - path=['skill-template', skill_template_id] + path=['skill-templates', skill_template_id] ) return self._delete(request).transform(mapDashboardInstanceSkillsTemplatesDeleteOutput.from_dict) \ No newline at end of file diff --git a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/skills_templates_items.py b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/skills_templates_items.py index 9ff0cc4e..e290ca08 100644 --- a/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/skills_templates_items.py +++ b/src/metorial/_generated/src/mt_2026_01_01_magnetar/endpoints/skills_templates_items.py @@ -35,7 +35,7 @@ def list(self, skill_template_id: str, *, limit: Optional[float] = None, after: query_dict["order"] = order request = MetorialRequest( - path=['skill-template', skill_template_id, 'items'], + path=['skill-templates', skill_template_id, 'items'], query=query_dict ) return self._get(request).transform(mapDashboardInstanceSkillsTemplatesItemsListOutput.from_dict) @@ -50,7 +50,7 @@ def get(self, skill_template_id: str, skill_template_item_id: str) -> DashboardI :return: DashboardInstanceSkillsTemplatesItemsGetOutput """ request = MetorialRequest( - path=['skill-template', skill_template_id, 'items', skill_template_item_id] + path=['skill-templates', skill_template_id, 'items', skill_template_item_id] ) return self._get(request).transform(mapDashboardInstanceSkillsTemplatesItemsGetOutput.from_dict) @@ -63,7 +63,7 @@ def create(self, skill_template_id: str) -> DashboardInstanceSkillsTemplatesItem :return: DashboardInstanceSkillsTemplatesItemsCreateOutput """ request = MetorialRequest( - path=['skill-template', skill_template_id, 'items'] + path=['skill-templates', skill_template_id, 'items'] ) return self._post(request).transform(mapDashboardInstanceSkillsTemplatesItemsCreateOutput.from_dict) @@ -77,6 +77,6 @@ def delete(self, skill_template_id: str, skill_template_item_id: str) -> Dashboa :return: DashboardInstanceSkillsTemplatesItemsDeleteOutput """ request = MetorialRequest( - path=['skill-template', skill_template_id, 'items', skill_template_item_id] + path=['skill-templates', skill_template_id, 'items', skill_template_item_id] ) return self._delete(request).transform(mapDashboardInstanceSkillsTemplatesItemsDeleteOutput.from_dict) \ No newline at end of file