diff --git a/gso/types/__init__.py b/gso/annotations/__init__.py
similarity index 100%
rename from gso/types/__init__.py
rename to gso/annotations/__init__.py
diff --git a/gso/types/base_site.py b/gso/annotations/base_site.py
similarity index 69%
rename from gso/types/base_site.py
rename to gso/annotations/base_site.py
index 3184e174304bfc3e3b3e0f0cb2008ddb0e81d205..3e809525055f75369cd7c3a1dea99707e220c25b 100644
--- a/gso/types/base_site.py
+++ b/gso/annotations/base_site.py
@@ -2,12 +2,12 @@
 
 from pydantic import BaseModel
 
+from gso.annotations.coordinates import LatitudeCoordinate, LongitudeCoordinate
+from gso.annotations.country_code import CountryCode
+from gso.annotations.ip_address import IPAddress
+from gso.annotations.site_name import SiteName
+from gso.annotations.unique_field import UniqueField
 from gso.products.product_blocks.site import SiteTier
-from gso.types.coordinates import LatitudeCoordinate, LongitudeCoordinate
-from gso.types.country_code import CountryCode
-from gso.types.ip_address import IPAddress
-from gso.types.site_name import SiteName
-from gso.types.unique_field import UniqueField
 
 
 class BaseSiteValidatorModel(BaseModel):
diff --git a/gso/types/coordinates.py b/gso/annotations/coordinates.py
similarity index 100%
rename from gso/types/coordinates.py
rename to gso/annotations/coordinates.py
diff --git a/gso/types/country_code.py b/gso/annotations/country_code.py
similarity index 100%
rename from gso/types/country_code.py
rename to gso/annotations/country_code.py
diff --git a/gso/types/interfaces.py b/gso/annotations/interfaces.py
similarity index 100%
rename from gso/types/interfaces.py
rename to gso/annotations/interfaces.py
diff --git a/gso/types/ip_address.py b/gso/annotations/ip_address.py
similarity index 100%
rename from gso/types/ip_address.py
rename to gso/annotations/ip_address.py
diff --git a/gso/types/netbox_router.py b/gso/annotations/netbox_router.py
similarity index 100%
rename from gso/types/netbox_router.py
rename to gso/annotations/netbox_router.py
diff --git a/gso/types/site_name.py b/gso/annotations/site_name.py
similarity index 100%
rename from gso/types/site_name.py
rename to gso/annotations/site_name.py
diff --git a/gso/types/snmp.py b/gso/annotations/snmp.py
similarity index 100%
rename from gso/types/snmp.py
rename to gso/annotations/snmp.py
diff --git a/gso/types/tt_number.py b/gso/annotations/tt_number.py
similarity index 100%
rename from gso/types/tt_number.py
rename to gso/annotations/tt_number.py
diff --git a/gso/types/unique_field.py b/gso/annotations/unique_field.py
similarity index 100%
rename from gso/types/unique_field.py
rename to gso/annotations/unique_field.py
diff --git a/gso/api/v1/network.py b/gso/api/v1/network.py
index 62983f77f0b2287cb366ba2cb062babc2e972d05..435bb4146c8fb8d0a097829a305647d8e11c51df 100644
--- a/gso/api/v1/network.py
+++ b/gso/api/v1/network.py
@@ -10,11 +10,11 @@ from orchestrator.security import authorize
 from orchestrator.services.subscriptions import build_extended_domain_model
 from starlette import status
 
+from gso.annotations.coordinates import LatitudeCoordinate, LongitudeCoordinate
+from gso.annotations.interfaces import PhysicalPortCapacity
 from gso.products.product_blocks.iptrunk import IptrunkType
 from gso.products.product_blocks.router import RouterRole
 from gso.services.subscriptions import get_active_iptrunk_subscriptions
-from gso.types.coordinates import LatitudeCoordinate, LongitudeCoordinate
-from gso.types.interfaces import PhysicalPortCapacity
 from gso.utils.shared_enums import Vendor
 
 router = APIRouter(prefix="/networks", tags=["Network"], dependencies=[Depends(authorize)])
diff --git a/gso/cli/imports.py b/gso/cli/imports.py
index e71794653f446b25251c11d82cb6c5f0ac68c97e..cd290a9b6bc718ba429c11d9d5a22931bc1e77b6 100644
--- a/gso/cli/imports.py
+++ b/gso/cli/imports.py
@@ -16,6 +16,8 @@ from orchestrator.types import SubscriptionLifecycle
 from pydantic import BaseModel, ValidationError, field_validator, model_validator
 from sqlalchemy.exc import SQLAlchemyError
 
+from gso.annotations.base_site import BaseSiteValidatorModel
+from gso.annotations.interfaces import LAGMember, LAGMemberList, PhysicalPortCapacity
 from gso.db.models import PartnerTable
 from gso.products import ProductType
 from gso.products.product_blocks.iptrunk import IptrunkType
@@ -31,8 +33,6 @@ from gso.services.subscriptions import (
     get_active_subscriptions_by_field_and_value,
     get_subscriptions,
 )
-from gso.types.base_site import BaseSiteValidatorModel
-from gso.types.interfaces import LAGMember, LAGMemberList, PhysicalPortCapacity
 from gso.utils.shared_enums import IPv4AddressType, IPv6AddressType, PortNumber, Vendor
 
 app: typer.Typer = typer.Typer()
diff --git a/gso/products/product_blocks/iptrunk.py b/gso/products/product_blocks/iptrunk.py
index 1ff4fe4652d6fea6f1a80491976ff3063978f82e..8fbc82e0d19ce35198f72996dc1429dc69a7eae9 100644
--- a/gso/products/product_blocks/iptrunk.py
+++ b/gso/products/product_blocks/iptrunk.py
@@ -10,12 +10,12 @@ from pydantic import AfterValidator
 from pydantic_forms.validators import validate_unique_list
 from typing_extensions import Doc
 
+from gso.annotations.interfaces import LAGMemberList, PhysicalPortCapacity
 from gso.products.product_blocks.router import (
     RouterBlock,
     RouterBlockInactive,
     RouterBlockProvisioning,
 )
-from gso.types.interfaces import LAGMemberList, PhysicalPortCapacity
 
 
 class IptrunkType(strEnum):
diff --git a/gso/products/product_blocks/lan_switch_interconnect.py b/gso/products/product_blocks/lan_switch_interconnect.py
index 544da1e757c279ca3c16f2e52489dba2624e68aa..b2f88a085cba619299a5486b0f010eaf6b476a5e 100644
--- a/gso/products/product_blocks/lan_switch_interconnect.py
+++ b/gso/products/product_blocks/lan_switch_interconnect.py
@@ -3,9 +3,9 @@
 from orchestrator.domain.base import ProductBlockModel
 from orchestrator.types import SubscriptionLifecycle, strEnum
 
+from gso.annotations.interfaces import LAGMemberList
 from gso.products.product_blocks.router import RouterBlock, RouterBlockInactive, RouterBlockProvisioning
 from gso.products.product_blocks.switch import SwitchBlock, SwitchBlockInactive, SwitchBlockProvisioning
-from gso.types.interfaces import LAGMemberList
 
 
 class LanSwitchInterconnectAddressSpace(strEnum):
diff --git a/gso/products/product_blocks/site.py b/gso/products/product_blocks/site.py
index 436288c5fad58c79684b73f9892c150875929050..5640cc1f5e0fe80a4bc6ca2bbb9215e906b37952 100644
--- a/gso/products/product_blocks/site.py
+++ b/gso/products/product_blocks/site.py
@@ -3,9 +3,9 @@
 from orchestrator.domain.base import ProductBlockModel
 from orchestrator.types import SubscriptionLifecycle, strEnum
 
-from gso.types.coordinates import LatitudeCoordinate, LongitudeCoordinate
-from gso.types.ip_address import IPAddress
-from gso.types.site_name import SiteName
+from gso.annotations.coordinates import LatitudeCoordinate, LongitudeCoordinate
+from gso.annotations.ip_address import IPAddress
+from gso.annotations.site_name import SiteName
 
 
 class SiteTier(strEnum):
diff --git a/gso/services/librenms_client.py b/gso/services/librenms_client.py
index 4d8e4b197f647aadf829648a01e056cf8b199068..c49451d397047cf7cc9c5347a24716b36c02fb3f 100644
--- a/gso/services/librenms_client.py
+++ b/gso/services/librenms_client.py
@@ -9,8 +9,8 @@ import requests
 from requests import HTTPError, Response
 from requests.adapters import HTTPAdapter
 
+from gso.annotations.snmp import SNMPVersion
 from gso.settings import load_oss_params
-from gso.types.snmp import SNMPVersion
 
 logger = logging.getLogger(__name__)
 
diff --git a/gso/utils/helpers.py b/gso/utils/helpers.py
index f1063cecd97209247ecd950a49de95bf46f5c0e0..df375dada33f613e44065c5c621cb435a16016d9 100644
--- a/gso/utils/helpers.py
+++ b/gso/utils/helpers.py
@@ -7,11 +7,11 @@ from uuid import UUID
 from pydantic_forms.validators import Choice
 
 from gso import settings
+from gso.annotations.interfaces import PhysicalPortCapacity
 from gso.products.product_blocks.router import RouterRole
 from gso.products.product_types.router import Router
 from gso.services import subscriptions
 from gso.services.netbox_client import NetboxClient
-from gso.types.interfaces import PhysicalPortCapacity
 from gso.utils.shared_enums import IPv4AddressType, Vendor
 
 if TYPE_CHECKING:
diff --git a/gso/workflows/iptrunk/create_imported_iptrunk.py b/gso/workflows/iptrunk/create_imported_iptrunk.py
index 18f76a7f93d30e7bc082bb2696ac9daf8448ce86..b7838c915939b191879821a8f38dcc996e969c76 100644
--- a/gso/workflows/iptrunk/create_imported_iptrunk.py
+++ b/gso/workflows/iptrunk/create_imported_iptrunk.py
@@ -13,13 +13,13 @@ from orchestrator.workflows.steps import resync, set_status, store_process_subsc
 from pydantic import AfterValidator, ConfigDict
 from pydantic_forms.validators import validate_unique_list
 
+from gso.annotations.interfaces import LAGMember, LAGMemberList, PhysicalPortCapacity
 from gso.products import ProductName
 from gso.products.product_blocks.iptrunk import IptrunkInterfaceBlockInactive, IptrunkType
 from gso.products.product_types.iptrunk import ImportedIptrunkInactive
 from gso.products.product_types.router import Router
 from gso.services import subscriptions
 from gso.services.partners import get_partner_by_name
-from gso.types.interfaces import LAGMember, LAGMemberList, PhysicalPortCapacity
 from gso.utils.helpers import active_router_selector
 
 
diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py
index c62ca920e595cf945c3a9a456e442e6300da4a5f..528d9815f83c163c4a087205d3c6f8e1eb72c8d5 100644
--- a/gso/workflows/iptrunk/create_iptrunk.py
+++ b/gso/workflows/iptrunk/create_iptrunk.py
@@ -20,6 +20,9 @@ from pydantic import ConfigDict
 from pydantic_forms.validators import ReadOnlyField
 from pynetbox.models.dcim import Interfaces
 
+from gso.annotations.interfaces import JuniperLAGMember, LAGMember, LAGMemberList, PhysicalPortCapacity
+from gso.annotations.netbox_router import NetboxEnabledRouter
+from gso.annotations.tt_number import TTNumber
 from gso.products.product_blocks.iptrunk import (
     IptrunkInterfaceBlockInactive,
     IptrunkSideBlockInactive,
@@ -34,9 +37,6 @@ from gso.services.partners import get_partner_by_name
 from gso.services.sharepoint import SharePointClient
 from gso.services.subscriptions import get_non_terminated_iptrunk_subscriptions
 from gso.settings import load_oss_params
-from gso.types.interfaces import JuniperLAGMember, LAGMember, LAGMemberList, PhysicalPortCapacity
-from gso.types.netbox_router import NetboxEnabledRouter
-from gso.types.tt_number import TTNumber
 from gso.utils.helpers import (
     available_interfaces_choices,
     available_lags_choices,
diff --git a/gso/workflows/iptrunk/deploy_twamp.py b/gso/workflows/iptrunk/deploy_twamp.py
index feb7100a46360f5c9fb14ef28f98b6bb4cb165ac..a91f8433214a0ae5dd6b0742ccf38245e2cb3c0e 100644
--- a/gso/workflows/iptrunk/deploy_twamp.py
+++ b/gso/workflows/iptrunk/deploy_twamp.py
@@ -11,9 +11,9 @@ from orchestrator.workflow import StepList, begin, done, step, workflow
 from orchestrator.workflows.steps import resync, store_process_subscription, unsync
 from orchestrator.workflows.utils import wrap_modify_initial_input_form
 
+from gso.annotations.tt_number import TTNumber
 from gso.products.product_types.iptrunk import Iptrunk
 from gso.services.lso_client import execute_playbook, lso_interaction
-from gso.types.tt_number import TTNumber
 
 
 def _initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
diff --git a/gso/workflows/iptrunk/migrate_iptrunk.py b/gso/workflows/iptrunk/migrate_iptrunk.py
index 0ed107a6fb9aab243887a6af3fdf88a355e7b887..44e336cd2899e022f618d1ee5ded457629f39428 100644
--- a/gso/workflows/iptrunk/migrate_iptrunk.py
+++ b/gso/workflows/iptrunk/migrate_iptrunk.py
@@ -24,6 +24,8 @@ from pydantic import ConfigDict
 from pydantic_forms.validators import ReadOnlyField
 from pynetbox.models.dcim import Interfaces
 
+from gso.annotations.interfaces import JuniperAEInterface, JuniperLAGMember, LAGMember, LAGMemberList
+from gso.annotations.tt_number import TTNumber
 from gso.products.product_blocks.iptrunk import IptrunkInterfaceBlock, IptrunkType
 from gso.products.product_types.iptrunk import Iptrunk
 from gso.products.product_types.router import Router
@@ -33,8 +35,6 @@ from gso.services.netbox_client import NetboxClient
 from gso.services.sharepoint import SharePointClient
 from gso.services.subscriptions import get_active_router_subscriptions
 from gso.settings import load_oss_params
-from gso.types.interfaces import JuniperAEInterface, JuniperLAGMember, LAGMember, LAGMemberList
-from gso.types.tt_number import TTNumber
 from gso.utils.helpers import (
     available_interfaces_choices,
     available_lags_choices,
diff --git a/gso/workflows/iptrunk/modify_isis_metric.py b/gso/workflows/iptrunk/modify_isis_metric.py
index 493f0eb98c5db0b5edc1d3b20269ef50019d4432..1fcdd7e171c355d02c2ca41abe69e99eaf76ab76 100644
--- a/gso/workflows/iptrunk/modify_isis_metric.py
+++ b/gso/workflows/iptrunk/modify_isis_metric.py
@@ -10,9 +10,9 @@ from orchestrator.workflow import StepList, begin, done, step, workflow
 from orchestrator.workflows.steps import resync, store_process_subscription, unsync
 from orchestrator.workflows.utils import wrap_modify_initial_input_form
 
+from gso.annotations.tt_number import TTNumber
 from gso.products.product_types.iptrunk import Iptrunk
 from gso.services.lso_client import execute_playbook, lso_interaction
-from gso.types.tt_number import TTNumber
 
 
 def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
diff --git a/gso/workflows/iptrunk/modify_trunk_interface.py b/gso/workflows/iptrunk/modify_trunk_interface.py
index 6ec7d59a83ef272dc63837d8d01b59c81fac07b2..4171345c2c24a5aece0a2875e4369305567b8856 100644
--- a/gso/workflows/iptrunk/modify_trunk_interface.py
+++ b/gso/workflows/iptrunk/modify_trunk_interface.py
@@ -15,6 +15,8 @@ from orchestrator.workflows.utils import wrap_modify_initial_input_form
 from pydantic import ConfigDict
 from pydantic_forms.validators import Label, ReadOnlyField
 
+from gso.annotations.interfaces import JuniperLAGMember, LAGMember, LAGMemberList, PhysicalPortCapacity
+from gso.annotations.tt_number import TTNumber
 from gso.products.product_blocks.iptrunk import (
     IptrunkInterfaceBlock,
     IptrunkSideBlock,
@@ -23,8 +25,6 @@ from gso.products.product_blocks.iptrunk import (
 from gso.products.product_types.iptrunk import Iptrunk
 from gso.services.lso_client import execute_playbook, lso_interaction
 from gso.services.netbox_client import NetboxClient
-from gso.types.interfaces import JuniperLAGMember, LAGMember, LAGMemberList, PhysicalPortCapacity
-from gso.types.tt_number import TTNumber
 from gso.utils.helpers import (
     available_interfaces_choices,
     available_interfaces_choices_including_current_members,
diff --git a/gso/workflows/iptrunk/terminate_iptrunk.py b/gso/workflows/iptrunk/terminate_iptrunk.py
index fec1c48bb59142d51b6a65f5a1bcfada4d69ee28..7b7bd96f44ad9263cef9d543913e9ae156089042 100644
--- a/gso/workflows/iptrunk/terminate_iptrunk.py
+++ b/gso/workflows/iptrunk/terminate_iptrunk.py
@@ -17,12 +17,12 @@ from orchestrator.workflows.steps import (
 )
 from orchestrator.workflows.utils import wrap_modify_initial_input_form
 
+from gso.annotations.tt_number import TTNumber
 from gso.products.product_blocks.iptrunk import IptrunkSideBlock
 from gso.products.product_types.iptrunk import Iptrunk
 from gso.services import infoblox
 from gso.services.lso_client import execute_playbook, lso_interaction
 from gso.services.netbox_client import NetboxClient
-from gso.types.tt_number import TTNumber
 from gso.utils.helpers import get_router_vendor
 from gso.utils.shared_enums import Vendor
 from gso.utils.workflow_steps import set_isis_to_max
diff --git a/gso/workflows/lan_switch_interconnect/create_lan_switch_interconnect.py b/gso/workflows/lan_switch_interconnect/create_lan_switch_interconnect.py
index 29dd38e479aa7e3efe752081569de0f1cf7304d9..467a25125e5595f830e08c6fe49299d4c0520824 100644
--- a/gso/workflows/lan_switch_interconnect/create_lan_switch_interconnect.py
+++ b/gso/workflows/lan_switch_interconnect/create_lan_switch_interconnect.py
@@ -13,6 +13,15 @@ from orchestrator.workflows.utils import wrap_create_initial_input_form
 from pydantic import AfterValidator, ConfigDict
 from pydantic_forms.validators import Divider, ReadOnlyField
 
+from gso.annotations.interfaces import (
+    JuniperAEInterface,
+    JuniperLAGMember,
+    JuniperPhyInterface,
+    LAGMember,
+    PhysicalPortCapacity,
+    validate_interface_names_are_unique,
+)
+from gso.annotations.tt_number import TTNumber
 from gso.products.product_blocks.lan_switch_interconnect import (
     LanSwitchInterconnectAddressSpace,
     LanSwitchInterconnectInterfaceBlockInactive,
@@ -21,15 +30,6 @@ from gso.products.product_types.lan_switch_interconnect import LanSwitchIntercon
 from gso.products.product_types.router import Router
 from gso.products.product_types.switch import Switch
 from gso.services.partners import get_partner_by_name
-from gso.types.interfaces import (
-    JuniperAEInterface,
-    JuniperLAGMember,
-    JuniperPhyInterface,
-    LAGMember,
-    PhysicalPortCapacity,
-    validate_interface_names_are_unique,
-)
-from gso.types.tt_number import TTNumber
 from gso.utils.helpers import (
     active_router_selector,
     active_switch_selector,
diff --git a/gso/workflows/router/create_router.py b/gso/workflows/router/create_router.py
index 68c55cf0909e9781864b14348cc5e47ccd6a3bf0..6c1211af69849f9ad590b949cfc6a926496302f7 100644
--- a/gso/workflows/router/create_router.py
+++ b/gso/workflows/router/create_router.py
@@ -14,6 +14,7 @@ from orchestrator.workflows.utils import wrap_create_initial_input_form
 from pydantic import ConfigDict, model_validator
 from pydantic_forms.validators import ReadOnlyField
 
+from gso.annotations.tt_number import TTNumber
 from gso.products.product_blocks.router import RouterRole
 from gso.products.product_types.router import RouterInactive, RouterProvisioning
 from gso.products.product_types.site import Site
@@ -23,7 +24,6 @@ from gso.services.netbox_client import NetboxClient
 from gso.services.partners import get_partner_by_name
 from gso.services.sharepoint import SharePointClient
 from gso.settings import load_oss_params
-from gso.types.tt_number import TTNumber
 from gso.utils.helpers import generate_fqdn, iso_from_ipv4
 from gso.utils.shared_enums import PortNumber, Vendor
 from gso.utils.workflow_steps import (
diff --git a/gso/workflows/router/promote_p_to_pe.py b/gso/workflows/router/promote_p_to_pe.py
index f294bd99468942094016687e93937c093788b074..756867c58a8ad4f527bcbfc98da645aed372967a 100644
--- a/gso/workflows/router/promote_p_to_pe.py
+++ b/gso/workflows/router/promote_p_to_pe.py
@@ -15,13 +15,13 @@ from orchestrator.workflows.steps import resync, store_process_subscription, uns
 from orchestrator.workflows.utils import wrap_modify_initial_input_form
 from pydantic import ConfigDict, model_validator
 
+from gso.annotations.tt_number import TTNumber
 from gso.products.product_blocks.router import RouterRole
 from gso.products.product_types.router import Router
 from gso.services import lso_client
 from gso.services.kentik_client import KentikClient, NewKentikDevice
 from gso.services.lso_client import lso_interaction
 from gso.services.subscriptions import get_all_active_sites
-from gso.types.tt_number import TTNumber
 from gso.utils.helpers import generate_inventory_for_active_routers
 from gso.utils.shared_enums import Vendor
 
diff --git a/gso/workflows/router/redeploy_base_config.py b/gso/workflows/router/redeploy_base_config.py
index eef8b6e74fe3db1c5d5d292fc498a1872955c622..022f2696621907da183ca6360bbcccf361d14af8 100644
--- a/gso/workflows/router/redeploy_base_config.py
+++ b/gso/workflows/router/redeploy_base_config.py
@@ -8,9 +8,9 @@ from orchestrator.workflow import StepList, begin, done, workflow
 from orchestrator.workflows.steps import resync, store_process_subscription, unsync
 from orchestrator.workflows.utils import wrap_modify_initial_input_form
 
+from gso.annotations.tt_number import TTNumber
 from gso.products.product_types.router import Router
 from gso.services.lso_client import lso_interaction
-from gso.types.tt_number import TTNumber
 from gso.utils.workflow_steps import deploy_base_config_dry, deploy_base_config_real
 
 
diff --git a/gso/workflows/router/terminate_router.py b/gso/workflows/router/terminate_router.py
index 60895ab33d7fc0c40a5d8df58db7d6a543c3361d..15cb8e722adba0f4ab04bad9d6b860b4b2c4aa4a 100644
--- a/gso/workflows/router/terminate_router.py
+++ b/gso/workflows/router/terminate_router.py
@@ -20,6 +20,7 @@ from orchestrator.workflows.steps import (
 )
 from orchestrator.workflows.utils import wrap_modify_initial_input_form
 
+from gso.annotations.tt_number import TTNumber
 from gso.products.product_blocks.router import RouterRole
 from gso.products.product_types.router import Router
 from gso.services import infoblox, lso_client
@@ -28,7 +29,6 @@ from gso.services.librenms_client import LibreNMSClient
 from gso.services.lso_client import execute_playbook, lso_interaction
 from gso.services.netbox_client import NetboxClient
 from gso.settings import load_oss_params
-from gso.types.tt_number import TTNumber
 from gso.utils.helpers import generate_inventory_for_active_routers
 from gso.utils.shared_enums import Vendor
 
diff --git a/gso/workflows/router/update_ibgp_mesh.py b/gso/workflows/router/update_ibgp_mesh.py
index f8f17a4829060c6654782a342e0380415e01336c..6950994d30ad7339370343c01bb6bf1e4f38ae1b 100644
--- a/gso/workflows/router/update_ibgp_mesh.py
+++ b/gso/workflows/router/update_ibgp_mesh.py
@@ -12,13 +12,13 @@ from orchestrator.workflows.steps import resync, store_process_subscription, uns
 from orchestrator.workflows.utils import wrap_modify_initial_input_form
 from pydantic import ConfigDict, model_validator
 
+from gso.annotations.snmp import SNMPVersion
+from gso.annotations.tt_number import TTNumber
 from gso.products.product_blocks.router import RouterRole
 from gso.products.product_types.router import Router
 from gso.services import librenms_client, lso_client
 from gso.services.lso_client import lso_interaction
 from gso.services.subscriptions import get_trunks_that_terminate_on_router
-from gso.types.snmp import SNMPVersion
-from gso.types.tt_number import TTNumber
 from gso.utils.helpers import generate_inventory_for_active_routers
 
 
diff --git a/gso/workflows/site/create_imported_site.py b/gso/workflows/site/create_imported_site.py
index 297761dbffff46f52851a96dcee65323b016fd30..7d285b87732cf6038890a9dc682a0a2a85209509 100644
--- a/gso/workflows/site/create_imported_site.py
+++ b/gso/workflows/site/create_imported_site.py
@@ -9,14 +9,14 @@ from orchestrator.workflow import StepList, begin, done, step, workflow
 from orchestrator.workflows.steps import resync, set_status, store_process_subscription
 from pydantic import ConfigDict
 
+from gso.annotations.base_site import BaseSiteValidatorModel
+from gso.annotations.coordinates import LatitudeCoordinate, LongitudeCoordinate
+from gso.annotations.ip_address import IPAddress
 from gso.products import ProductName
 from gso.products.product_blocks.site import SiteTier
 from gso.products.product_types.site import ImportedSiteInactive
 from gso.services import subscriptions
 from gso.services.partners import get_partner_by_name
-from gso.types.base_site import BaseSiteValidatorModel
-from gso.types.coordinates import LatitudeCoordinate, LongitudeCoordinate
-from gso.types.ip_address import IPAddress
 
 
 @step("Create subscription")
diff --git a/gso/workflows/site/create_site.py b/gso/workflows/site/create_site.py
index ec80732cebfce3edfc79a9a689a8faa6a6e718c4..9178fae61248ea638357d39eabd6db83771f75bb 100644
--- a/gso/workflows/site/create_site.py
+++ b/gso/workflows/site/create_site.py
@@ -9,12 +9,12 @@ from orchestrator.workflows.utils import wrap_create_initial_input_form
 from pydantic import ConfigDict
 from pydantic_forms.validators import ReadOnlyField
 
+from gso.annotations.base_site import BaseSiteValidatorModel
+from gso.annotations.coordinates import LatitudeCoordinate, LongitudeCoordinate
+from gso.annotations.ip_address import IPAddress
 from gso.products.product_blocks import site as site_pb
 from gso.products.product_types import site
 from gso.services.partners import get_partner_by_name
-from gso.types.base_site import BaseSiteValidatorModel
-from gso.types.coordinates import LatitudeCoordinate, LongitudeCoordinate
-from gso.types.ip_address import IPAddress
 
 
 def initial_input_form_generator(product_name: str) -> FormGenerator:
diff --git a/gso/workflows/site/modify_site.py b/gso/workflows/site/modify_site.py
index b68626b1db05f4a7548581818aefbe0ea087d66d..09a61ea48b955e6609b1e9c0d278c3f9783bc064 100644
--- a/gso/workflows/site/modify_site.py
+++ b/gso/workflows/site/modify_site.py
@@ -16,11 +16,11 @@ from orchestrator.workflows.utils import wrap_modify_initial_input_form
 from pydantic import ConfigDict
 from pydantic_forms.validators import ReadOnlyField
 
+from gso.annotations.coordinates import LatitudeCoordinate, LongitudeCoordinate
+from gso.annotations.ip_address import IPAddress
+from gso.annotations.unique_field import UniqueField
 from gso.products.product_blocks.site import SiteTier
 from gso.products.product_types.site import Site
-from gso.types.coordinates import LatitudeCoordinate, LongitudeCoordinate
-from gso.types.ip_address import IPAddress
-from gso.types.unique_field import UniqueField
 
 
 def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
diff --git a/test/cli/test_imports.py b/test/cli/test_imports.py
index 89933fc8de3f9b4860f60d387867dedc2ed99371..61af178898c0f2eba15bf89ca5854d13ca9bbd16 100644
--- a/test/cli/test_imports.py
+++ b/test/cli/test_imports.py
@@ -4,6 +4,7 @@ from unittest.mock import patch
 
 import pytest
 
+from gso.annotations.interfaces import PhysicalPortCapacity
 from gso.cli.imports import (
     import_iptrunks,
     import_office_routers,
@@ -16,7 +17,6 @@ from gso.products import Router, Site
 from gso.products.product_blocks.iptrunk import IptrunkType
 from gso.products.product_blocks.router import RouterRole
 from gso.products.product_blocks.site import SiteTier
-from gso.types.interfaces import PhysicalPortCapacity
 from gso.utils.helpers import iso_from_ipv4
 from gso.utils.shared_enums import Vendor
 
diff --git a/test/conftest.py b/test/conftest.py
index 8cfea9d28eacfd24c6397c514245024cb15b5f6d..4e7f562ac09b38e2962a102efeb954e74274983c 100644
--- a/test/conftest.py
+++ b/test/conftest.py
@@ -32,9 +32,9 @@ from sqlalchemy.orm import scoped_session, sessionmaker
 from starlette.testclient import TestClient
 from urllib3_mock import Responses
 
+from gso.annotations.interfaces import LAGMember, LAGMemberList
 from gso.main import init_gso_app
 from gso.services.partners import PartnerSchema, create_partner
-from gso.types.interfaces import LAGMember, LAGMemberList
 from test.fixtures import (  # noqa: F401
     iptrunk_side_subscription_factory,
     iptrunk_subscription_factory,
diff --git a/test/fixtures.py b/test/fixtures.py
index 4fa5a2a0ec30f416ae4ecbae274e6fa5fa39a843..8ed8ae0f9c46853bedc0bba84a1782bebaffa6b5 100644
--- a/test/fixtures.py
+++ b/test/fixtures.py
@@ -21,6 +21,7 @@ from pydantic_forms.core import FormPage
 from pydantic_forms.types import FormGenerator, SubscriptionMapping
 from pydantic_forms.validators import Choice
 
+from gso.annotations.interfaces import PhysicalPortCapacity
 from gso.products import ProductName
 from gso.products.product_blocks.iptrunk import (
     IptrunkInterfaceBlock,
@@ -36,7 +37,6 @@ from gso.products.product_types.router import ImportedRouterInactive, Router, Ro
 from gso.products.product_types.site import ImportedSiteInactive, Site, SiteInactive
 from gso.products.product_types.super_pop_switch import ImportedSuperPopSwitchInactive, SuperPopSwitchInactive
 from gso.services import subscriptions
-from gso.types.interfaces import PhysicalPortCapacity
 from gso.utils.shared_enums import Vendor
 from test.workflows import WorkflowInstanceForTests
 
diff --git a/test/schemas/test_types.py b/test/schemas/test_types.py
index 33c3f20937232b75b92c9db5813462b5f0a5c57c..069e43103e30b1266b8783916e031b1dfbe50f3e 100644
--- a/test/schemas/test_types.py
+++ b/test/schemas/test_types.py
@@ -1,7 +1,7 @@
 import pytest
 from pydantic import BaseModel, ValidationError
 
-from gso.types.coordinates import LatitudeCoordinate, LongitudeCoordinate
+from gso.annotations.coordinates import LatitudeCoordinate, LongitudeCoordinate
 
 
 class LatitudeModel(BaseModel):
diff --git a/test/services/test_librenms_client.py b/test/services/test_librenms_client.py
index 1bd14b9b65c06dcc8d1ad3785b575b11de3bfc54..c6cf2ce9e9c9ea6bed6ca8ef82e9ffe450ee0144 100644
--- a/test/services/test_librenms_client.py
+++ b/test/services/test_librenms_client.py
@@ -4,8 +4,8 @@ from unittest.mock import patch
 import pytest
 from requests import HTTPError
 
+from gso.annotations.snmp import SNMPVersion
 from gso.services.librenms_client import LibreNMSClient
-from gso.types.snmp import SNMPVersion
 
 
 @pytest.fixture()
diff --git a/test/utils/test_helpers.py b/test/utils/test_helpers.py
index 5f9476096ea070d3c8856e623e3dc1301f001941..f7e278284223a551af95b951fd1415692a15fe45 100644
--- a/test/utils/test_helpers.py
+++ b/test/utils/test_helpers.py
@@ -3,10 +3,10 @@ from unittest.mock import patch
 import pytest
 from orchestrator.types import SubscriptionLifecycle
 
+from gso.annotations.tt_number import validate_tt_number
 from gso.products import Router
 from gso.products.product_blocks.iptrunk import IptrunkInterfaceBlock
 from gso.products.product_blocks.router import RouterRole
-from gso.types.tt_number import validate_tt_number
 from gso.utils.helpers import (
     available_interfaces_choices_including_current_members,
     generate_inventory_for_active_routers,
diff --git a/test/workflows/iptrunk/test_create_imported_iptrunk.py b/test/workflows/iptrunk/test_create_imported_iptrunk.py
index 263c4f161d99985b48da258d1660925e58c24157..4f4455960ca5242daca7a06e176c947a4c957ea2 100644
--- a/test/workflows/iptrunk/test_create_imported_iptrunk.py
+++ b/test/workflows/iptrunk/test_create_imported_iptrunk.py
@@ -1,10 +1,10 @@
 import pytest
 from orchestrator.types import SubscriptionLifecycle
 
+from gso.annotations.interfaces import PhysicalPortCapacity
 from gso.products import ProductName
 from gso.products.product_blocks.iptrunk import IptrunkType
 from gso.products.product_types.iptrunk import ImportedIptrunk
-from gso.types.interfaces import PhysicalPortCapacity
 from test.workflows import (
     assert_complete,
     extract_state,
diff --git a/test/workflows/iptrunk/test_create_iptrunk.py b/test/workflows/iptrunk/test_create_iptrunk.py
index cd33943ce75887824d73ac2a810cef2a75edfa04..f11a60aaff29274706a25c2fd5d3086cdf4084f5 100644
--- a/test/workflows/iptrunk/test_create_iptrunk.py
+++ b/test/workflows/iptrunk/test_create_iptrunk.py
@@ -4,10 +4,10 @@ from unittest.mock import patch
 import pytest
 from infoblox_client.objects import HostRecord
 
+from gso.annotations.interfaces import PhysicalPortCapacity
 from gso.products import Iptrunk, ProductName
 from gso.products.product_blocks.iptrunk import IptrunkType
 from gso.services.subscriptions import get_product_id_by_name
-from gso.types.interfaces import PhysicalPortCapacity
 from gso.utils.shared_enums import Vendor
 from test import USER_CONFIRM_EMPTY_FORM
 from test.services.conftest import MockedNetboxClient, MockedSharePointClient
diff --git a/test/workflows/iptrunk/test_modify_trunk_interface.py b/test/workflows/iptrunk/test_modify_trunk_interface.py
index b784d262a75533e5e46945763c76c06e391cd269..1993971fb5b792cbabcf9f0a31e5ec0af002affe 100644
--- a/test/workflows/iptrunk/test_modify_trunk_interface.py
+++ b/test/workflows/iptrunk/test_modify_trunk_interface.py
@@ -2,9 +2,9 @@ from unittest.mock import patch
 
 import pytest
 
+from gso.annotations.interfaces import LAGMemberList, PhysicalPortCapacity
 from gso.products import Iptrunk
 from gso.products.product_blocks.iptrunk import IptrunkType
-from gso.types.interfaces import LAGMemberList, PhysicalPortCapacity
 from gso.utils.shared_enums import Vendor
 from test.conftest import UseJuniperSide
 from test.workflows import (