diff --git a/gso/migrations/versions/2023-04-05_857225661207_add_device_workflows.py b/gso/migrations/versions/2023-04-05_857225661207_add_device_workflows.py
deleted file mode 100644
index fc938a278b5fc3d4a2a7800b002118ca3d47372a..0000000000000000000000000000000000000000
--- a/gso/migrations/versions/2023-04-05_857225661207_add_device_workflows.py
+++ /dev/null
@@ -1,39 +0,0 @@
-"""add Device workflows.
-
-Revision ID: 857225661207
-Revises: f4959f32c866
-Create Date: 2023-04-05 09:16:03.725750
-
-"""
-import sqlalchemy as sa
-from alembic import op
-
-# revision identifiers, used by Alembic.
-revision = '857225661207'
-down_revision = 'd52256e7d715'
-branch_labels = None
-depends_on = None
-
-
-from orchestrator.migrations.helpers import create_workflow, delete_workflow
-
-new_workflows = [
-    {
-        "name": "create_device",
-        "target": "CREATE",
-        "description": "Create Device",
-        "product_type": "Device"
-    }
-]
-
-
-def upgrade() -> None:
-    conn = op.get_bind()
-    for workflow in new_workflows:
-        create_workflow(conn, workflow)
-
-
-def downgrade() -> None:
-    conn = op.get_bind()
-    for workflow in new_workflows:
-        delete_workflow(conn, workflow["name"])
diff --git a/gso/migrations/versions/2023-04-29_60d340427471_add_iptrunk_create_workflow.py b/gso/migrations/versions/2023-04-29_60d340427471_add_iptrunk_create_workflow.py
deleted file mode 100644
index 72b4886c489233c2563c1a3ae2be4d73ee376f8a..0000000000000000000000000000000000000000
--- a/gso/migrations/versions/2023-04-29_60d340427471_add_iptrunk_create_workflow.py
+++ /dev/null
@@ -1,39 +0,0 @@
-"""add Iptrunk create  workflow.
-
-Revision ID: 60d340427471
-Revises: 80b0a70d4faf
-Create Date: 2023-04-29 06:25:49.525661
-
-"""
-import sqlalchemy as sa
-from alembic import op
-
-# revision identifiers, used by Alembic.
-revision = '60d340427471'
-down_revision = '80b0a70d4faf'
-branch_labels = None
-depends_on = None
-
-
-from orchestrator.migrations.helpers import create_workflow, delete_workflow
-
-new_workflows = [
-    {
-        "name": "create_iptrunk",
-        "target": "CREATE",
-        "description": "Create Iptrunk",
-        "product_type": "Iptrunk"
-    }
-]
-
-
-def upgrade() -> None:
-    conn = op.get_bind()
-    for workflow in new_workflows:
-        create_workflow(conn, workflow)
-
-
-def downgrade() -> None:
-    conn = op.get_bind()
-    for workflow in new_workflows:
-        delete_workflow(conn, workflow["name"])
diff --git a/gso/migrations/versions/2023-04-29_80b0a70d4faf_add_iptrunk_product.py b/gso/migrations/versions/2023-04-29_80b0a70d4faf_add_iptrunk_product.py
deleted file mode 100644
index c191b3248bf4599ea67d602549a39c80d190d84d..0000000000000000000000000000000000000000
--- a/gso/migrations/versions/2023-04-29_80b0a70d4faf_add_iptrunk_product.py
+++ /dev/null
@@ -1,248 +0,0 @@
-"""Add Iptrunk product.
-
-Revision ID: 80b0a70d4faf
-Revises: 95cd21cb2b05
-Create Date: 2023-04-29 06:16:26.665297
-
-"""
-import sqlalchemy as sa
-from alembic import op
-
-# revision identifiers, used by Alembic.
-revision = '80b0a70d4faf'
-down_revision = '857225661207'
-branch_labels = None
-depends_on = None
-
-
-def upgrade() -> None:
-    conn = op.get_bind()
-    conn.execute("""
-INSERT INTO products (name, description, product_type, tag, status) VALUES ('Iptrunk', 'IPtrunk', 'Iptrunk', 'IPTRUNK', 'active') RETURNING products.product_id
-    """)
-    conn.execute("""
-INSERT INTO product_blocks (name, description, tag, status) VALUES ('IptrunkBlock', 'Iptrunk', 'IPTRUNK', 'active') RETURNING product_blocks.product_block_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_ipv4_network', 'Global - IPv4 Network') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideB_ae_iface', 'SideB - LAG interface') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_minimum_links', 'Global - Minimum links') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideA_ae_iface', 'SideA - LAG interface') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_type', 'Global - dark fiber vs leased capacity') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideA_ae_members', 'Side A - LAG members') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideB_ae_members_description', 'Side B - LAG members description') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_speed', 'Global - Members speed') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('geant_s_sid', 'Global - SID of the service') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_description', 'Global - Interface description') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_ipv6_network', 'Global - IPv6 Network') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideA_ae_geant_a_sid', 'Side A - GA SID') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideB_ae_members', 'Side B - LAG members') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideA_ae_members_description', 'Side B - LAG members description') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideB_ae_geant_a_sid', 'Side B - GA SID') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO product_product_blocks (product_id, product_block_id) VALUES ((SELECT products.product_id FROM products WHERE products.name IN ('Iptrunk')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_relations (in_use_by_id, depends_on_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('geant_s_sid')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_description')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_type')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_speed')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_minimum_links')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv4_network')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv6_network')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_iface')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_geant_a_sid')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_members')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_members_description')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_iface')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_geant_a_sid')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_members')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_members_description')))
-    """)
-
-
-def downgrade() -> None:
-    conn = op.get_bind()
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('geant_s_sid'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('geant_s_sid'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_description'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_description'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_type'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_type'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_speed'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_speed'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_minimum_links'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_minimum_links'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv4_network'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv4_network'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv6_network'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv6_network'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_iface'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_iface'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_geant_a_sid'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_geant_a_sid'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_members'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_members'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_members_description'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_members_description'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_iface'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_iface'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_geant_a_sid'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_geant_a_sid'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_members'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_members'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_members_description'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_members_description'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values WHERE subscription_instance_values.resource_type_id IN (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv4_network', 'iptrunk_sideB_ae_iface', 'iptrunk_minimum_links', 'iptrunk_sideA_ae_iface', 'iptrunk_type', 'iptrunk_sideA_ae_members', 'iptrunk_sideB_ae_members_description', 'iptrunk_speed', 'geant_s_sid', 'iptrunk_description', 'iptrunk_ipv6_network', 'iptrunk_sideA_ae_geant_a_sid', 'iptrunk_sideB_ae_members', 'iptrunk_sideA_ae_members_description', 'iptrunk_sideB_ae_geant_a_sid'))
-    """)
-    conn.execute("""
-DELETE FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv4_network', 'iptrunk_sideB_ae_iface', 'iptrunk_minimum_links', 'iptrunk_sideA_ae_iface', 'iptrunk_type', 'iptrunk_sideA_ae_members', 'iptrunk_sideB_ae_members_description', 'iptrunk_speed', 'geant_s_sid', 'iptrunk_description', 'iptrunk_ipv6_network', 'iptrunk_sideA_ae_geant_a_sid', 'iptrunk_sideB_ae_members', 'iptrunk_sideA_ae_members_description', 'iptrunk_sideB_ae_geant_a_sid')
-    """)
-    conn.execute("""
-DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Iptrunk')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_relations WHERE product_block_relations.in_use_by_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_relations.depends_on_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instances WHERE subscription_instances.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))
-    """)
-    conn.execute("""
-DELETE FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')
-    """)
-    conn.execute("""
-DELETE FROM processes WHERE processes.pid IN (SELECT processes_subscriptions.pid FROM processes_subscriptions WHERE processes_subscriptions.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Iptrunk'))))
-    """)
-    conn.execute("""
-DELETE FROM processes_subscriptions WHERE processes_subscriptions.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Iptrunk')))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instances WHERE subscription_instances.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Iptrunk')))
-    """)
-    conn.execute("""
-DELETE FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Iptrunk'))
-    """)
-    conn.execute("""
-DELETE FROM products WHERE products.name IN ('Iptrunk')
-    """)
diff --git a/gso/migrations/versions/2023-05-04_4d850df522f2_add_site_model.py b/gso/migrations/versions/2023-05-04_4d850df522f2_add_site_model.py
deleted file mode 100644
index 49ac3327e449859f96a99005bfd47a9fde1512f9..0000000000000000000000000000000000000000
--- a/gso/migrations/versions/2023-05-04_4d850df522f2_add_site_model.py
+++ /dev/null
@@ -1,170 +0,0 @@
-"""Add site model.
-
-Revision ID: 4d850df522f2
-Revises:
-Create Date: 2023-05-04 08:27:31.942548
-
-"""
-import sqlalchemy as sa
-from alembic import op
-
-# revision identifiers, used by Alembic.
-revision = '4d850df522f2'
-down_revision = None
-branch_labels = ('data',)
-depends_on = 'e05bb1967eff'
-
-
-def upgrade() -> None:
-    conn = op.get_bind()
-    conn.execute("""
-INSERT INTO products (name, description, product_type, tag, status) VALUES ('Site', 'A Geant POP', 'Site', 'SITE', 'active') RETURNING products.product_id
-    """)
-    conn.execute("""
-INSERT INTO product_blocks (name, description, tag, status) VALUES ('SiteBlock', 'A Geant POP', 'SITE', 'active') RETURNING product_blocks.product_block_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('site_internal_id', 'Site internal ID') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('site_country', 'Site country') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('site_longitude', 'Site Longitude') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('site_country_code', 'Site country code') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('site_tier', 'Site Tier') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('site_city', 'Site city') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('site_latitude', 'Site latitude') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('site_name', 'Site name') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('site_bgp_community_id', 'Site BGP community ID') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO product_product_blocks (product_id, product_block_id) VALUES ((SELECT products.product_id FROM products WHERE products.name IN ('Site')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_name')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_city')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_country')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_country_code')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_latitude')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_longitude')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_internal_id')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_bgp_community_id')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_tier')))
-    """)
-
-
-def downgrade() -> None:
-    conn = op.get_bind()
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_name'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_name'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_city'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_city'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_country'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_country'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_country_code'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_country_code'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_latitude'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_latitude'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_longitude'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_longitude'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_internal_id'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_internal_id'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_bgp_community_id'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_bgp_community_id'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_tier'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_tier'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values WHERE subscription_instance_values.resource_type_id IN (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_internal_id', 'site_country', 'site_longitude', 'site_country_code', 'site_tier', 'site_city', 'site_latitude', 'site_name', 'site_bgp_community_id'))
-    """)
-    conn.execute("""
-DELETE FROM resource_types WHERE resource_types.resource_type IN ('site_internal_id', 'site_country', 'site_longitude', 'site_country_code', 'site_tier', 'site_city', 'site_latitude', 'site_name', 'site_bgp_community_id')
-    """)
-    conn.execute("""
-DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Site')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instances WHERE subscription_instances.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))
-    """)
-    conn.execute("""
-DELETE FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')
-    """)
-    conn.execute("""
-DELETE FROM processes WHERE processes.pid IN (SELECT processes_subscriptions.pid FROM processes_subscriptions WHERE processes_subscriptions.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Site'))))
-    """)
-    conn.execute("""
-DELETE FROM processes_subscriptions WHERE processes_subscriptions.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Site')))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instances WHERE subscription_instances.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Site')))
-    """)
-    conn.execute("""
-DELETE FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Site'))
-    """)
-    conn.execute("""
-DELETE FROM products WHERE products.name IN ('Site')
-    """)
diff --git a/gso/migrations/versions/2023-05-04_d52256e7d715_add_device_model.py b/gso/migrations/versions/2023-05-04_d52256e7d715_add_device_model.py
deleted file mode 100644
index 59a1ec6fcecc9d9397e6343c530940e43bee40a9..0000000000000000000000000000000000000000
--- a/gso/migrations/versions/2023-05-04_d52256e7d715_add_device_model.py
+++ /dev/null
@@ -1,209 +0,0 @@
-"""Add device model.
-
-Revision ID: d52256e7d715
-Revises: 4d850df522f2
-Create Date: 2023-05-04 08:30:12.367903
-
-"""
-import sqlalchemy as sa
-from alembic import op
-
-# revision identifiers, used by Alembic.
-revision = 'd52256e7d715'
-down_revision = '4d850df522f2'
-branch_labels = None
-depends_on = None
-
-
-def upgrade() -> None:
-    conn = op.get_bind()
-    conn.execute("""
-INSERT INTO products (name, description, product_type, tag, status) VALUES ('Router', 'A Geant router', 'Device', 'RTR', 'active') RETURNING products.product_id
-    """)
-    conn.execute("""
-INSERT INTO products (name, description, product_type, tag, status) VALUES ('Switch', 'A Geant switch', 'Device', 'SW', 'active') RETURNING products.product_id
-    """)
-    conn.execute("""
-INSERT INTO fixed_inputs (name, value, product_id) VALUES ('device_type', 'switch', (SELECT products.product_id FROM products WHERE products.name IN ('Switch'))), ('device_type', 'router', (SELECT products.product_id FROM products WHERE products.name IN ('Router')))
-    """)
-    conn.execute("""
-INSERT INTO product_blocks (name, description, tag, status) VALUES ('DeviceBlock', 'A Geant device', 'DEVICE', 'active') RETURNING product_blocks.product_block_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_lo_ipv4_address', 'Loopback IPv4 address') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_fqdn', 'Device FQDN') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_ts_port', 'Terminal Server Port') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_lo_iso_address', 'Loopback ISO address') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_ts_address', 'Terminal Server Address') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_si_ipv4_network', 'SI IPv4 Network') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_ias_lt_ipv6_network', 'IAS lt IPv6 network') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_lo_ipv6_address', 'Loopback IPv6 address') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_vendor', 'Device Vendor') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_role', 'Device role') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_ias_lt_ipv4_network', 'IAS lt IPV4 Network') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO product_product_blocks (product_id, product_block_id) VALUES ((SELECT products.product_id FROM products WHERE products.name IN ('Switch')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))), ((SELECT products.product_id FROM products WHERE products.name IN ('Router')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_relations (in_use_by_id, depends_on_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_fqdn')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ts_address')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ts_port')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_lo_ipv4_address')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_lo_ipv6_address')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_lo_iso_address')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_si_ipv4_network')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ias_lt_ipv4_network')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ias_lt_ipv6_network')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_vendor')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_role')))
-    """)
-
-
-def downgrade() -> None:
-    conn = op.get_bind()
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_fqdn'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_fqdn'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ts_address'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ts_address'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ts_port'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ts_port'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_lo_ipv4_address'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_lo_ipv4_address'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_lo_ipv6_address'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_lo_ipv6_address'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_lo_iso_address'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_lo_iso_address'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_si_ipv4_network'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_si_ipv4_network'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ias_lt_ipv4_network'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ias_lt_ipv4_network'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ias_lt_ipv6_network'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ias_lt_ipv6_network'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_vendor'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_vendor'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_role'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_role'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values WHERE subscription_instance_values.resource_type_id IN (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_lo_ipv4_address', 'device_fqdn', 'device_ts_port', 'device_lo_iso_address', 'device_ts_address', 'device_si_ipv4_network', 'device_ias_lt_ipv6_network', 'device_lo_ipv6_address', 'device_vendor', 'device_role', 'device_ias_lt_ipv4_network'))
-    """)
-    conn.execute("""
-DELETE FROM resource_types WHERE resource_types.resource_type IN ('device_lo_ipv4_address', 'device_fqdn', 'device_ts_port', 'device_lo_iso_address', 'device_ts_address', 'device_si_ipv4_network', 'device_ias_lt_ipv6_network', 'device_lo_ipv6_address', 'device_vendor', 'device_role', 'device_ias_lt_ipv4_network')
-    """)
-    conn.execute("""
-DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Switch', 'Router')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_relations WHERE product_block_relations.in_use_by_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_relations.depends_on_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))
-    """)
-    conn.execute("""
-DELETE FROM fixed_inputs WHERE fixed_inputs.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Switch', 'Router')) AND fixed_inputs.name = 'device_type'
-    """)
-    conn.execute("""
-DELETE FROM subscription_instances WHERE subscription_instances.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))
-    """)
-    conn.execute("""
-DELETE FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')
-    """)
-    conn.execute("""
-DELETE FROM processes WHERE processes.pid IN (SELECT processes_subscriptions.pid FROM processes_subscriptions WHERE processes_subscriptions.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Switch', 'Router'))))
-    """)
-    conn.execute("""
-DELETE FROM processes_subscriptions WHERE processes_subscriptions.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Switch', 'Router')))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instances WHERE subscription_instances.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Switch', 'Router')))
-    """)
-    conn.execute("""
-DELETE FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Switch', 'Router'))
-    """)
-    conn.execute("""
-DELETE FROM products WHERE products.name IN ('Switch', 'Router')
-    """)
diff --git a/gso/migrations/versions/2023-05-08_61f8e90581c5_add_terminate_device_workflow.py b/gso/migrations/versions/2023-05-08_61f8e90581c5_add_terminate_device_workflow.py
deleted file mode 100644
index 8b3f8398c9609c0de0ce56f2cb352aa2a335e1cc..0000000000000000000000000000000000000000
--- a/gso/migrations/versions/2023-05-08_61f8e90581c5_add_terminate_device_workflow.py
+++ /dev/null
@@ -1,39 +0,0 @@
-"""add Terminate device workflow.
-
-Revision ID: 61f8e90581c5
-Revises: 21e7bb0e5cad
-Create Date: 2023-05-08 10:48:21.655880
-
-"""
-import sqlalchemy as sa
-from alembic import op
-
-# revision identifiers, used by Alembic.
-revision = '61f8e90581c5'
-down_revision = '21e7bb0e5cad'
-branch_labels = None
-depends_on = None
-
-
-from orchestrator.migrations.helpers import create_workflow, delete_workflow
-
-new_workflows = [
-    {
-        "name": "terminate_device",
-        "target": "TERMINATE",
-        "description": "Terminate device",
-        "product_type": "Device"
-    }
-]
-
-
-def upgrade() -> None:
-    conn = op.get_bind()
-    for workflow in new_workflows:
-        create_workflow(conn, workflow)
-
-
-def downgrade() -> None:
-    conn = op.get_bind()
-    for workflow in new_workflows:
-        delete_workflow(conn, workflow["name"])
diff --git a/gso/migrations/versions/2023-06-18_84d0ad6e7294_add_device_access_via_ts_attr.py b/gso/migrations/versions/2023-06-18_84d0ad6e7294_add_device_access_via_ts_attr.py
deleted file mode 100644
index f9bd129e056beb05f12e8855762ba4edf4335c8c..0000000000000000000000000000000000000000
--- a/gso/migrations/versions/2023-06-18_84d0ad6e7294_add_device_access_via_ts_attr.py
+++ /dev/null
@@ -1,64 +0,0 @@
-"""Add device access_via_ts attr.
-
-Revision ID: 84d0ad6e7294
-Revises: c7def54cc165
-Create Date: 2023-06-18 12:03:23.365781
-
-"""
-import sqlalchemy as sa
-from alembic import op
-
-# revision identifiers, used by Alembic.
-revision = '84d0ad6e7294'
-down_revision = 'c7def54cc165'
-branch_labels = None
-depends_on = None
-
-
-def upgrade() -> None:
-    conn = op.get_bind()
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_access_via_ts', 'Access to the device via terminal server') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_access_via_ts')))
-    """)
-    conn.execute("""
-
-                WITH subscription_instance_ids AS (
-                    SELECT subscription_instances.subscription_instance_id
-                    FROM   subscription_instances
-                    WHERE  subscription_instances.product_block_id IN (
-                        SELECT product_blocks.product_block_id
-                        FROM   product_blocks
-                        WHERE  product_blocks.name = 'DeviceBlock'
-                    )
-                )
-
-                INSERT INTO
-                    subscription_instance_values (subscription_instance_id, resource_type_id, value)
-                SELECT
-                    subscription_instance_ids.subscription_instance_id,
-                    resource_types.resource_type_id,
-                    'false'
-                FROM resource_types
-                CROSS JOIN subscription_instance_ids
-                WHERE resource_types.resource_type = 'device_access_via_ts'
-        
-    """)
-
-
-def downgrade() -> None:
-    conn = op.get_bind()
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_access_via_ts'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_access_via_ts'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values WHERE subscription_instance_values.resource_type_id IN (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_access_via_ts'))
-    """)
-    conn.execute("""
-DELETE FROM resource_types WHERE resource_types.resource_type IN ('device_access_via_ts')
-    """)
diff --git a/gso/migrations/versions/2023-06-18_c7def54cc165_add_iptrunk_isis_attr.py b/gso/migrations/versions/2023-06-18_c7def54cc165_add_iptrunk_isis_attr.py
deleted file mode 100644
index 1923fc3eeb54371a4e3c339216ac27ef9364a737..0000000000000000000000000000000000000000
--- a/gso/migrations/versions/2023-06-18_c7def54cc165_add_iptrunk_isis_attr.py
+++ /dev/null
@@ -1,41 +0,0 @@
-"""Add Iptrunk ISIS attr.
-
-Revision ID: c7def54cc165
-Revises: 647e066bc99e
-Create Date: 2023-06-18 06:56:21.189733
-
-"""
-import sqlalchemy as sa
-from alembic import op
-
-# revision identifiers, used by Alembic.
-revision = 'c7def54cc165'
-down_revision = '647e066bc99e'
-branch_labels = None
-depends_on = None
-
-
-def upgrade() -> None:
-    conn = op.get_bind()
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_isis_metric', 'ISIS metric for a Trunk') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric')))
-    """)
-
-
-def downgrade() -> None:
-    conn = op.get_bind()
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values WHERE subscription_instance_values.resource_type_id IN (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric'))
-    """)
-    conn.execute("""
-DELETE FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric')
-    """)
diff --git a/gso/migrations/versions/2023-06-21_7694b98571f8_add_iptrunk_isis_modify_workflow.py b/gso/migrations/versions/2023-06-21_7694b98571f8_add_iptrunk_isis_modify_workflow.py
deleted file mode 100644
index cd751156ba9ba0def54b63a7d4623c3d53f8e120..0000000000000000000000000000000000000000
--- a/gso/migrations/versions/2023-06-21_7694b98571f8_add_iptrunk_isis_modify_workflow.py
+++ /dev/null
@@ -1,39 +0,0 @@
-"""add Iptrunk ISIS modify workflow.
-
-Revision ID: 7694b98571f8
-Revises: 84d0ad6e7294
-Create Date: 2023-06-21 08:36:42.824952
-
-"""
-import sqlalchemy as sa
-from alembic import op
-
-# revision identifiers, used by Alembic.
-revision = '7694b98571f8'
-down_revision = '84d0ad6e7294'
-branch_labels = None
-depends_on = None
-
-
-from orchestrator.migrations.helpers import create_workflow, delete_workflow
-
-new_workflows = [
-    {
-        "name": "modify_isis_metric",
-        "target": "MODIFY",
-        "description": "Modify IP trunk",
-        "product_type": "Iptrunk"
-    }
-]
-
-
-def upgrade() -> None:
-    conn = op.get_bind()
-    for workflow in new_workflows:
-        create_workflow(conn, workflow)
-
-
-def downgrade() -> None:
-    conn = op.get_bind()
-    for workflow in new_workflows:
-        delete_workflow(conn, workflow["name"])
diff --git a/gso/migrations/versions/2023-06-26_e57ebfade80b_add_iptrunk_modify_workflow.py b/gso/migrations/versions/2023-06-26_e57ebfade80b_add_iptrunk_modify_workflow.py
deleted file mode 100644
index cad31c4d8c9436c98513757b14b8b3fa6d18f394..0000000000000000000000000000000000000000
--- a/gso/migrations/versions/2023-06-26_e57ebfade80b_add_iptrunk_modify_workflow.py
+++ /dev/null
@@ -1,39 +0,0 @@
-"""add Iptrunk modify workflow.
-
-Revision ID: e57ebfade80b
-Revises: 7694b98571f8
-Create Date: 2023-06-26 12:20:16.828055
-
-"""
-import sqlalchemy as sa
-from alembic import op
-
-# revision identifiers, used by Alembic.
-revision = 'e57ebfade80b'
-down_revision = '7694b98571f8'
-branch_labels = None
-depends_on = None
-
-
-from orchestrator.migrations.helpers import create_workflow, delete_workflow
-
-new_workflows = [
-    {
-        "name": "modify_generic",
-        "target": "MODIFY",
-        "description": "Modify IP trunk",
-        "product_type": "Iptrunk"
-    }
-]
-
-
-def upgrade() -> None:
-    conn = op.get_bind()
-    for workflow in new_workflows:
-        create_workflow(conn, workflow)
-
-
-def downgrade() -> None:
-    conn = op.get_bind()
-    for workflow in new_workflows:
-        delete_workflow(conn, workflow["name"])
diff --git a/gso/migrations/versions/2023-08-07_7728b3ef410c_modify_sites_and_device_pb.py b/gso/migrations/versions/2023-08-07_7728b3ef410c_modify_sites_and_device_pb.py
deleted file mode 100644
index 176403a5fb7e4ceb661e76b511f8a5dbd6cf4641..0000000000000000000000000000000000000000
--- a/gso/migrations/versions/2023-08-07_7728b3ef410c_modify_sites_and_device_pb.py
+++ /dev/null
@@ -1,111 +0,0 @@
-"""Modify sites and device PB.
-
-Revision ID: 7728b3ef410c
-Revises: e57ebfade80b
-Create Date: 2023-08-07 12:53:31.090424
-
-"""
-import sqlalchemy as sa
-from alembic import op
-
-# revision identifiers, used by Alembic.
-revision = '7728b3ef410c'
-down_revision = 'e57ebfade80b'
-branch_labels = None
-depends_on = None
-
-
-def upgrade() -> None:
-    conn = op.get_bind()
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ts_address'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ts_address'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values WHERE subscription_instance_values.resource_type_id IN (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_ts_address'))
-    """)
-    conn.execute("""
-DELETE FROM resource_types WHERE resource_types.resource_type IN ('device_ts_address')
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('device_is_ias_connected', 'device has lt to IAS') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO resource_types (resource_type, description) VALUES ('site_ts_address', 'Address of the terminal server') RETURNING resource_types.resource_type_id
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_ts_address')))
-    """)
-    conn.execute("""
-INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_is_ias_connected')))
-    """)
-    conn.execute("""
-
-                WITH subscription_instance_ids AS (
-                    SELECT subscription_instances.subscription_instance_id
-                    FROM   subscription_instances
-                    WHERE  subscription_instances.product_block_id IN (
-                        SELECT product_blocks.product_block_id
-                        FROM   product_blocks
-                        WHERE  product_blocks.name = 'SiteBlock'
-                    )
-                )
-
-                INSERT INTO
-                    subscription_instance_values (subscription_instance_id, resource_type_id, value)
-                SELECT
-                    subscription_instance_ids.subscription_instance_id,
-                    resource_types.resource_type_id,
-                    'Address of the terminal server'
-                FROM resource_types
-                CROSS JOIN subscription_instance_ids
-                WHERE resource_types.resource_type = 'site_ts_address'
-        
-    """)
-    conn.execute("""
-
-                WITH subscription_instance_ids AS (
-                    SELECT subscription_instances.subscription_instance_id
-                    FROM   subscription_instances
-                    WHERE  subscription_instances.product_block_id IN (
-                        SELECT product_blocks.product_block_id
-                        FROM   product_blocks
-                        WHERE  product_blocks.name = 'DeviceBlock'
-                    )
-                )
-
-                INSERT INTO
-                    subscription_instance_values (subscription_instance_id, resource_type_id, value)
-                SELECT
-                    subscription_instance_ids.subscription_instance_id,
-                    resource_types.resource_type_id,
-                    'true'
-                FROM resource_types
-                CROSS JOIN subscription_instance_ids
-                WHERE resource_types.resource_type = 'device_is_ias_connected'
-        
-    """)
-
-
-def downgrade() -> None:
-    conn = op.get_bind()
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_ts_address'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_ts_address'))
-    """)
-    conn.execute("""
-DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_is_ias_connected'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('DeviceBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_is_ias_connected'))
-    """)
-    conn.execute("""
-DELETE FROM subscription_instance_values WHERE subscription_instance_values.resource_type_id IN (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('device_is_ias_connected', 'site_ts_address'))
-    """)
-    conn.execute("""
-DELETE FROM resource_types WHERE resource_types.resource_type IN ('device_is_ias_connected', 'site_ts_address')
-    """)
diff --git a/gso/migrations/versions/2023-05-08_647e066bc99e_add_terminate_iptrunk_workflow.py b/gso/migrations/versions/2023-08-14_3657611f0dfc_add_router_workflows.py
similarity index 55%
rename from gso/migrations/versions/2023-05-08_647e066bc99e_add_terminate_iptrunk_workflow.py
rename to gso/migrations/versions/2023-08-14_3657611f0dfc_add_router_workflows.py
index 49cb67b43eed421e58df6a54a900bffe58e04a3a..153d5433579308b23e2d06b394b5d9f4a620158e 100644
--- a/gso/migrations/versions/2023-05-08_647e066bc99e_add_terminate_iptrunk_workflow.py
+++ b/gso/migrations/versions/2023-08-14_3657611f0dfc_add_router_workflows.py
@@ -1,16 +1,16 @@
-"""add Terminate Iptrunk workflow.
+"""Add Router workflows.
 
-Revision ID: 647e066bc99e
-Revises: 61f8e90581c5
-Create Date: 2023-05-08 18:59:01.309425
+Revision ID: 3657611f0dfc
+Revises: 91047dd30b40
+Create Date: 2023-08-14 15:44:25.616608
 
 """
 import sqlalchemy as sa
 from alembic import op
 
 # revision identifiers, used by Alembic.
-revision = '647e066bc99e'
-down_revision = '61f8e90581c5'
+revision = '3657611f0dfc'
+down_revision = '91047dd30b40'
 branch_labels = None
 depends_on = None
 
@@ -19,10 +19,16 @@ from orchestrator.migrations.helpers import create_workflow, delete_workflow
 
 new_workflows = [
     {
-        "name": "terminate_iptrunk",
+        "name": "create_router",
+        "target": "CREATE",
+        "description": "Create router",
+        "product_type": "Router"
+    },
+    {
+        "name": "terminate_router",
         "target": "TERMINATE",
-        "description": "Terminate IPtrunk",
-        "product_type": "Iptrunk"
+        "description": "Terminate router",
+        "product_type": "Router"
     }
 ]
 
diff --git a/gso/migrations/versions/2023-05-04_21e7bb0e5cad_add_site_create_workflow.py b/gso/migrations/versions/2023-08-14_91047dd30b40_add_site_workflows.py
similarity index 78%
rename from gso/migrations/versions/2023-05-04_21e7bb0e5cad_add_site_create_workflow.py
rename to gso/migrations/versions/2023-08-14_91047dd30b40_add_site_workflows.py
index 118d7b125f58279504e7ea14ceac9f18cff0f043..f39467eadecc248717f851bea8b221cd5b5d378e 100644
--- a/gso/migrations/versions/2023-05-04_21e7bb0e5cad_add_site_create_workflow.py
+++ b/gso/migrations/versions/2023-08-14_91047dd30b40_add_site_workflows.py
@@ -1,16 +1,16 @@
-"""add Site create  workflow.
+"""Add Site workflows.
 
-Revision ID: 21e7bb0e5cad
-Revises: 60d340427471
-Create Date: 2023-05-04 09:00:36.433715
+Revision ID: 91047dd30b40
+Revises: 97436160a422
+Create Date: 2023-08-14 15:42:35.450032
 
 """
 import sqlalchemy as sa
 from alembic import op
 
 # revision identifiers, used by Alembic.
-revision = '21e7bb0e5cad'
-down_revision = '60d340427471'
+revision = '91047dd30b40'
+down_revision = '97436160a422'
 branch_labels = None
 depends_on = None
 
diff --git a/gso/migrations/versions/2023-08-14_97436160a422_add_initial_products.py b/gso/migrations/versions/2023-08-14_97436160a422_add_initial_products.py
new file mode 100644
index 0000000000000000000000000000000000000000..7c46840813c3de5b75d868864592c63ae1d71817
--- /dev/null
+++ b/gso/migrations/versions/2023-08-14_97436160a422_add_initial_products.py
@@ -0,0 +1,554 @@
+"""Add initial products.
+
+Revision ID: 97436160a422
+Revises:
+Create Date: 2023-08-14 11:54:26.376795
+
+"""
+import sqlalchemy as sa
+from alembic import op
+
+# revision identifiers, used by Alembic.
+revision = '97436160a422'
+down_revision = None
+branch_labels = ('data',)
+depends_on = 'a09ac125ea73'
+
+
+def upgrade() -> None:
+    conn = op.get_bind()
+    conn.execute("""
+INSERT INTO products (name, description, product_type, tag, status) VALUES ('Site', 'A GÉANT Site', 'Site', 'SITE', 'active') RETURNING products.product_id
+    """)
+    conn.execute("""
+INSERT INTO products (name, description, product_type, tag, status) VALUES ('Router', 'A GÉANT Router', 'Router', 'ROUTER', 'active') RETURNING products.product_id
+    """)
+    conn.execute("""
+INSERT INTO products (name, description, product_type, tag, status) VALUES ('IP trunk', 'A GÉANT IP Trunk', 'Iptrunk', 'IPTRUNK', 'active') RETURNING products.product_id
+    """)
+    conn.execute("""
+INSERT INTO product_blocks (name, description, tag, status) VALUES ('SiteBlock', 'Site PB', 'SITEPB', 'active') RETURNING product_blocks.product_block_id
+    """)
+    conn.execute("""
+INSERT INTO product_blocks (name, description, tag, status) VALUES ('RouterBlock', 'Router PB', 'ROUTERPB', 'active') RETURNING product_blocks.product_block_id
+    """)
+    conn.execute("""
+INSERT INTO product_blocks (name, description, tag, status) VALUES ('IptrunkBlock', 'IP Trunk PB', 'IPTRUNKPB', 'active') RETURNING product_blocks.product_block_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('site_name', 'Name of a Site') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_minimum_links', 'Minimum amount of members in a LAG') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_description', 'Description of an IP Trunk') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('router_ias_lt_ipv4_network', 'IPv4 network for a logical tunnel between master routing table and IAS') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('geant_s_sid', 'GÉANT Service ID') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_isis_metric', 'ISIS metric') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideA_ae_geant_a_sid', 'GÉANT Service ID for access port') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideB_ae_geant_a_sid', 'GÉANT Service ID for access port') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('router_lo_ipv6_address', 'IPv6 address of loopback interface') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideB_ae_members', 'LAG members on side B') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('router_lo_ipv4_address', 'IPv4 address of loopback interface') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('site_city', 'City of a Site') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('site_tier', 'Tier of a Site') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('router_role', 'Role of a Router') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_type', 'Type of an IP Trunk') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('site_bgp_community_id', 'BGP Community ID') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideA_ae_iface', 'LAG interface') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_ipv4_network', 'IPv4 network of an IP Trunk') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideB_ae_members_description', 'Descriptions of LAG members') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_speed', 'Speed of LAG members') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('site_country_code', 'Country code of a Site') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('router_access_via_ts', 'Whether a router should get accessed through terminal server') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('site_internal_id', 'Third octet of a Site''s private network') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('router_si_ipv4_network', 'IPv4 network for SI interface') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('router_ias_lt_ipv6_network', 'IPv6 network for a logical tunnel between master routing table and IAS') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('site_latitude', 'Latitude of a Site') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('site_country', 'Country of a Site') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('site_ts_address', 'Terminal Server address') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideB_ae_iface', 'LAG interface') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('router_is_ias_connected', 'Whether a Logical Tunnel between master routing table and IAS is needed') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_ipv6_network', 'IPv6 network of an IP Trunk') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('site_longitude', 'Longitude of a Site') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('router_lo_iso_address', 'ISO address of a loopback interface') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideA_ae_members', 'LAG members on side A') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('router_fqdn', 'FQDN of a Router') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('iptrunk_sideA_ae_members_description', 'Descriptions of LAG members') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('router_ts_port', 'Port number of the Terminal Server') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO resource_types (resource_type, description) VALUES ('router_vendor', 'Vendor of a Router') RETURNING resource_types.resource_type_id
+    """)
+    conn.execute("""
+INSERT INTO product_product_blocks (product_id, product_block_id) VALUES ((SELECT products.product_id FROM products WHERE products.name IN ('Site')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')))
+    """)
+    conn.execute("""
+INSERT INTO product_product_blocks (product_id, product_block_id) VALUES ((SELECT products.product_id FROM products WHERE products.name IN ('Router')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')))
+    """)
+    conn.execute("""
+INSERT INTO product_product_blocks (product_id, product_block_id) VALUES ((SELECT products.product_id FROM products WHERE products.name IN ('IP trunk')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_relations (in_use_by_id, depends_on_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_relations (in_use_by_id, depends_on_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_name')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_city')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_country')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_country_code')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_latitude')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_longitude')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_internal_id')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_bgp_community_id')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_tier')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_ts_address')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_fqdn')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_ts_port')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_access_via_ts')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_lo_ipv4_address')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_lo_ipv6_address')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_lo_iso_address')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_si_ipv4_network')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_ias_lt_ipv4_network')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_ias_lt_ipv6_network')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_vendor')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_role')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_is_ias_connected')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('geant_s_sid')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_description')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_type')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_speed')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_minimum_links')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv4_network')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv6_network')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_iface')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_geant_a_sid')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_members')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_members_description')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_iface')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_geant_a_sid')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_members')))
+    """)
+    conn.execute("""
+INSERT INTO product_block_resource_types (product_block_id, resource_type_id) VALUES ((SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')), (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_members_description')))
+    """)
+
+
+def downgrade() -> None:
+    conn = op.get_bind()
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_name'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_name'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_city'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_city'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_country'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_country'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_country_code'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_country_code'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_latitude'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_latitude'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_longitude'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_longitude'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_internal_id'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_internal_id'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_bgp_community_id'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_bgp_community_id'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_tier'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_tier'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_ts_address'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_ts_address'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_fqdn'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_fqdn'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_ts_port'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_ts_port'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_access_via_ts'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_access_via_ts'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_lo_ipv4_address'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_lo_ipv4_address'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_lo_ipv6_address'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_lo_ipv6_address'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_lo_iso_address'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_lo_iso_address'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_si_ipv4_network'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_si_ipv4_network'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_ias_lt_ipv4_network'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_ias_lt_ipv4_network'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_ias_lt_ipv6_network'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_ias_lt_ipv6_network'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_vendor'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_vendor'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_role'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_role'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_is_ias_connected'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('router_is_ias_connected'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('geant_s_sid'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('geant_s_sid'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_description'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_description'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_type'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_type'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_speed'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_speed'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_minimum_links'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_minimum_links'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_isis_metric'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv4_network'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv4_network'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv6_network'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_ipv6_network'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_iface'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_iface'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_geant_a_sid'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_geant_a_sid'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_members'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_members'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_members_description'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideA_ae_members_description'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_iface'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_iface'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_geant_a_sid'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_geant_a_sid'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_members'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_members'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_resource_types WHERE product_block_resource_types.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_members_description'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values USING product_block_resource_types WHERE subscription_instance_values.subscription_instance_id IN (SELECT subscription_instances.subscription_instance_id FROM subscription_instances WHERE subscription_instances.subscription_instance_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))) AND product_block_resource_types.resource_type_id = (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('iptrunk_sideB_ae_members_description'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instance_values WHERE subscription_instance_values.resource_type_id IN (SELECT resource_types.resource_type_id FROM resource_types WHERE resource_types.resource_type IN ('site_name', 'iptrunk_minimum_links', 'iptrunk_description', 'router_ias_lt_ipv4_network', 'geant_s_sid', 'iptrunk_isis_metric', 'iptrunk_sideA_ae_geant_a_sid', 'iptrunk_sideB_ae_geant_a_sid', 'router_lo_ipv6_address', 'iptrunk_sideB_ae_members', 'router_lo_ipv4_address', 'site_city', 'site_tier', 'router_role', 'iptrunk_type', 'site_bgp_community_id', 'iptrunk_sideA_ae_iface', 'iptrunk_ipv4_network', 'iptrunk_sideB_ae_members_description', 'iptrunk_speed', 'site_country_code', 'router_access_via_ts', 'site_internal_id', 'router_si_ipv4_network', 'router_ias_lt_ipv6_network', 'site_latitude', 'site_country', 'site_ts_address', 'iptrunk_sideB_ae_iface', 'router_is_ias_connected', 'iptrunk_ipv6_network', 'site_longitude', 'router_lo_iso_address', 'iptrunk_sideA_ae_members', 'router_fqdn', 'iptrunk_sideA_ae_members_description', 'router_ts_port', 'router_vendor'))
+    """)
+    conn.execute("""
+DELETE FROM resource_types WHERE resource_types.resource_type IN ('site_name', 'iptrunk_minimum_links', 'iptrunk_description', 'router_ias_lt_ipv4_network', 'geant_s_sid', 'iptrunk_isis_metric', 'iptrunk_sideA_ae_geant_a_sid', 'iptrunk_sideB_ae_geant_a_sid', 'router_lo_ipv6_address', 'iptrunk_sideB_ae_members', 'router_lo_ipv4_address', 'site_city', 'site_tier', 'router_role', 'iptrunk_type', 'site_bgp_community_id', 'iptrunk_sideA_ae_iface', 'iptrunk_ipv4_network', 'iptrunk_sideB_ae_members_description', 'iptrunk_speed', 'site_country_code', 'router_access_via_ts', 'site_internal_id', 'router_si_ipv4_network', 'router_ias_lt_ipv6_network', 'site_latitude', 'site_country', 'site_ts_address', 'iptrunk_sideB_ae_iface', 'router_is_ias_connected', 'iptrunk_ipv6_network', 'site_longitude', 'router_lo_iso_address', 'iptrunk_sideA_ae_members', 'router_fqdn', 'iptrunk_sideA_ae_members_description', 'router_ts_port', 'router_vendor')
+    """)
+    conn.execute("""
+DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Site')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))
+    """)
+    conn.execute("""
+DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Router')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))
+    """)
+    conn.execute("""
+DELETE FROM product_product_blocks WHERE product_product_blocks.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('IP trunk')) AND product_product_blocks.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_relations WHERE product_block_relations.in_use_by_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock')) AND product_block_relations.depends_on_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('SiteBlock'))
+    """)
+    conn.execute("""
+DELETE FROM product_block_relations WHERE product_block_relations.in_use_by_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock')) AND product_block_relations.depends_on_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('RouterBlock'))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instances WHERE subscription_instances.product_block_id IN (SELECT product_blocks.product_block_id FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock', 'RouterBlock', 'SiteBlock'))
+    """)
+    conn.execute("""
+DELETE FROM product_blocks WHERE product_blocks.name IN ('IptrunkBlock', 'RouterBlock', 'SiteBlock')
+    """)
+    conn.execute("""
+DELETE FROM processes WHERE processes.pid IN (SELECT processes_subscriptions.pid FROM processes_subscriptions WHERE processes_subscriptions.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Router', 'IP trunk', 'Site'))))
+    """)
+    conn.execute("""
+DELETE FROM processes_subscriptions WHERE processes_subscriptions.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Router', 'IP trunk', 'Site')))
+    """)
+    conn.execute("""
+DELETE FROM subscription_instances WHERE subscription_instances.subscription_id IN (SELECT subscriptions.subscription_id FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Router', 'IP trunk', 'Site')))
+    """)
+    conn.execute("""
+DELETE FROM subscriptions WHERE subscriptions.product_id IN (SELECT products.product_id FROM products WHERE products.name IN ('Router', 'IP trunk', 'Site'))
+    """)
+    conn.execute("""
+DELETE FROM products WHERE products.name IN ('Router', 'IP trunk', 'Site')
+    """)
diff --git a/gso/migrations/versions/2023-08-14_a6eefd32c4f7_add_ip_trunk_workflows.py b/gso/migrations/versions/2023-08-14_a6eefd32c4f7_add_ip_trunk_workflows.py
new file mode 100644
index 0000000000000000000000000000000000000000..b341eb7c8c9061959febac45181b1a70028e6236
--- /dev/null
+++ b/gso/migrations/versions/2023-08-14_a6eefd32c4f7_add_ip_trunk_workflows.py
@@ -0,0 +1,57 @@
+"""Add IP Trunk workflows.
+
+Revision ID: a6eefd32c4f7
+Revises: 3657611f0dfc
+Create Date: 2023-08-14 15:50:03.376997
+
+"""
+import sqlalchemy as sa
+from alembic import op
+
+# revision identifiers, used by Alembic.
+revision = 'a6eefd32c4f7'
+down_revision = '3657611f0dfc'
+branch_labels = None
+depends_on = None
+
+
+from orchestrator.migrations.helpers import create_workflow, delete_workflow
+
+new_workflows = [
+    {
+        "name": "create_iptrunk",
+        "target": "CREATE",
+        "description": "Create IP trunk",
+        "product_type": "Iptrunk"
+    },
+    {
+        "name": "terminate_iptrunk",
+        "target": "TERMINATE",
+        "description": "Terminate IPtrunk",
+        "product_type": "Iptrunk"
+    },
+    {
+        "name": "modify_trunk_interface",
+        "target": "MODIFY",
+        "description": "Modify IP Trunk interface",
+        "product_type": "Iptrunk"
+    },
+    {
+        "name": "modify_isis_metric",
+        "target": "MODIFY",
+        "description": "Modify IP trunk",
+        "product_type": "Iptrunk"
+    }
+]
+
+
+def upgrade() -> None:
+    conn = op.get_bind()
+    for workflow in new_workflows:
+        create_workflow(conn, workflow)
+
+
+def downgrade() -> None:
+    conn = op.get_bind()
+    for workflow in new_workflows:
+        delete_workflow(conn, workflow["name"])
diff --git a/gso/products/__init__.py b/gso/products/__init__.py
index 1943b09e29867391309756d01713c3500300b9ae..0ca82bfe7805d5a83d3aa9af96bcf54f26478cc9 100644
--- a/gso/products/__init__.py
+++ b/gso/products/__init__.py
@@ -1,15 +1,14 @@
 """Module that updates the domain model of {term}`GSO`. Should contain all types of subscriptions."""
 from orchestrator.domain import SUBSCRIPTION_MODEL_REGISTRY
 
-from gso.products.product_types.device import Device
+from gso.products.product_types.router import Router
 from gso.products.product_types.iptrunk import Iptrunk
 from gso.products.product_types.site import Site
 
 SUBSCRIPTION_MODEL_REGISTRY.update(
     {
         "Site": Site,
-        "Router": Device,
-        "Switch": Device,
-        "Iptrunk": Iptrunk,
+        "Router": Router,
+        "IP trunk": Iptrunk,
     }
 )
diff --git a/gso/products/product_blocks/device.py b/gso/products/product_blocks/device.py
deleted file mode 100644
index e65263f3fb4405a7f94de69d53a3c9803e0234c0..0000000000000000000000000000000000000000
--- a/gso/products/product_blocks/device.py
+++ /dev/null
@@ -1,98 +0,0 @@
-"""Product block for {class}`Device` products."""
-import ipaddress
-from typing import Optional
-
-from orchestrator.domain.base import ProductBlockModel
-from orchestrator.types import SubscriptionLifecycle, strEnum
-
-from gso.products.product_blocks.site import SiteBlock, SiteBlockInactive, SiteBlockProvisioning
-
-
-class DeviceVendor(strEnum):
-    """Enumerator for the different product vendors that are supported."""
-
-    JUNIPER = "juniper"
-    """Juniper devices."""
-    NOKIA = "nokia"
-    """Nokia devices."""
-
-
-class DeviceRole(strEnum):
-    """Enumerator for the different types of routers."""
-
-    P = "p"
-    """P router."""
-    PE = "pe"
-    """PE router."""
-    AMT = "amt"
-    """AMT router."""
-
-
-class DeviceBlockInactive(
-    ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="DeviceBlock"
-):
-    """A device that's being currently inactive. See {class}`DeviceBlock`."""
-
-    device_fqdn: Optional[str] = None
-    device_ts_port: Optional[int] = None
-    device_access_via_ts: Optional[bool] = None
-    device_lo_ipv4_address: Optional[ipaddress.IPv4Address] = None
-    device_lo_ipv6_address: Optional[ipaddress.IPv6Address] = None
-    device_lo_iso_address: Optional[str] = None
-    device_si_ipv4_network: Optional[ipaddress.IPv4Network] = None
-    device_ias_lt_ipv4_network: Optional[ipaddress.IPv4Network] = None
-    device_ias_lt_ipv6_network: Optional[ipaddress.IPv6Network] = None
-    device_vendor: Optional[DeviceVendor] = None
-    device_role: Optional[DeviceRole] = None
-    device_site: Optional[SiteBlockInactive]
-    device_is_ias_connected: Optional[bool] = None
-
-
-class DeviceBlockProvisioning(DeviceBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
-    """A device that's being provisioned. See {class}`DeviceBlock`."""
-
-    device_fqdn: str
-    device_ts_port: int
-    device_access_via_ts: Optional[bool] = None
-    device_lo_ipv4_address: Optional[ipaddress.IPv4Address] = None
-    device_lo_ipv6_address: Optional[ipaddress.IPv6Address] = None
-    device_lo_iso_address: Optional[str] = None
-    device_si_ipv4_network: Optional[ipaddress.IPv4Network] = None
-    device_ias_lt_ipv4_network: Optional[ipaddress.IPv4Network] = None
-    device_ias_lt_ipv6_network: Optional[ipaddress.IPv6Network] = None
-    device_vendor: Optional[DeviceVendor] = None
-    device_role: Optional[DeviceRole] = None
-    device_site: Optional[SiteBlockProvisioning]
-    device_is_ias_connected: Optional[bool] = None
-
-
-class DeviceBlock(DeviceBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
-    """A device that's currently deployed in the network."""
-
-    device_fqdn: str
-    """{term}`FQDN` of a device."""
-    device_ts_port: int
-    """The port of the terminal server that this device is connected to. Used for the same reason as mentioned
-    previously."""
-    device_access_via_ts: bool
-    """Whether this device should be accessed through the terminal server, or through its loopback address."""
-    device_lo_ipv4_address: ipaddress.IPv4Address
-    """The IPv4 loopback address of the device."""
-    device_lo_ipv6_address: ipaddress.IPv6Address
-    """The IPv6 loopback address of the device."""
-    device_lo_iso_address: str
-    """The {term}`ISO` {term}`NET` of the device, used for {term}`IS-IS` support."""
-    device_si_ipv4_network: Optional[ipaddress.IPv4Network]
-    """The SI IPv4 network of the device."""
-    device_ias_lt_ipv4_network: Optional[ipaddress.IPv4Network]
-    """The IAS LT IPv4 network of the device."""
-    device_ias_lt_ipv6_network: Optional[ipaddress.IPv6Network]
-    """The IAS LT IPv6 network of the device."""
-    device_vendor: DeviceVendor
-    """The vendor of the device, can be any of the values defined in {class}`DeviceVendor`."""
-    device_role: DeviceRole
-    """The role of the device, which can be any of the values defined in {class}`DeviceRole`."""
-    device_site: SiteBlock
-    """The {class}`Site` that this device resides in. Both physically and computationally."""
-    device_is_ias_connected: bool
-    """The device is going to have a LT interface between inet0 and IAS"""
diff --git a/gso/products/product_blocks/iptrunk.py b/gso/products/product_blocks/iptrunk.py
index b0fc2d28eb67bbcd3475238af0be0bf07fb319ef..a98ccd4ee1922c9ac0843c618fd51548043f6dec 100644
--- a/gso/products/product_blocks/iptrunk.py
+++ b/gso/products/product_blocks/iptrunk.py
@@ -7,7 +7,7 @@ from orchestrator.domain.base import ProductBlockModel
 from orchestrator.types import SubscriptionLifecycle, strEnum
 from pydantic import Field
 
-from gso.products.product_blocks.device import DeviceBlock, DeviceBlockInactive, DeviceBlockProvisioning
+from gso.products.product_blocks.router import RouterBlock, RouterBlockInactive, RouterBlockProvisioning
 
 
 class IptrunkType(strEnum):
@@ -29,13 +29,13 @@ class IptrunkBlockInactive(
     iptrunk_ipv4_network: Optional[ipaddress.IPv4Network] = None
     iptrunk_ipv6_network: Optional[ipaddress.IPv6Network] = None
     #
-    iptrunk_sideA_node: DeviceBlockInactive
+    iptrunk_sideA_node: RouterBlockInactive
     iptrunk_sideA_ae_iface: Optional[str] = None
     iptrunk_sideA_ae_geant_a_sid: Optional[str] = None
     iptrunk_sideA_ae_members: list[str] = Field(default_factory=list)
     iptrunk_sideA_ae_members_description: list[str] = Field(default_factory=list)
     #
-    iptrunk_sideB_node: DeviceBlockInactive
+    iptrunk_sideB_node: RouterBlockInactive
     iptrunk_sideB_ae_iface: Optional[str] = None
     iptrunk_sideB_ae_geant_a_sid: Optional[str] = None
     iptrunk_sideB_ae_members: list[str] = Field(default_factory=list)
@@ -54,13 +54,13 @@ class IptrunkBlockProvisioning(IptrunkBlockInactive, lifecycle=[SubscriptionLife
     iptrunk_ipv4_network: Optional[ipaddress.IPv4Network] = None
     iptrunk_ipv6_network: Optional[ipaddress.IPv6Network] = None
     #
-    iptrunk_sideA_node: DeviceBlockProvisioning
+    iptrunk_sideA_node: RouterBlockProvisioning
     iptrunk_sideA_ae_iface: Optional[str] = None
     iptrunk_sideA_ae_geant_a_sid: Optional[str] = None
     iptrunk_sideA_ae_members: list[str] = Field(default_factory=list)
     iptrunk_sideA_ae_members_description: list[str] = Field(default_factory=list)
     #
-    iptrunk_sideB_node: DeviceBlockProvisioning
+    iptrunk_sideB_node: RouterBlockProvisioning
     iptrunk_sideB_ae_iface: Optional[str] = None
     iptrunk_sideB_ae_geant_a_sid: Optional[str] = None
     iptrunk_sideB_ae_members: list[str] = Field(default_factory=list)
@@ -87,7 +87,7 @@ class IptrunkBlock(IptrunkBlockProvisioning, lifecycle=[SubscriptionLifecycle.AC
     iptrunk_ipv6_network: ipaddress.IPv6Network
     """The IPv6 network used for this trunk."""
     #
-    iptrunk_sideA_node: DeviceBlock
+    iptrunk_sideA_node: RouterBlock
     """The router that hosts the A side of the trunk."""
     iptrunk_sideA_ae_iface: str
     """The name of the interface on which the trunk connects."""
@@ -98,7 +98,7 @@ class IptrunkBlock(IptrunkBlockProvisioning, lifecycle=[SubscriptionLifecycle.AC
     iptrunk_sideA_ae_members_description: list[str] = Field(default_factory=list)
     """The list of descriptions that describe the list of interface members."""
     #
-    iptrunk_sideB_node: DeviceBlock
+    iptrunk_sideB_node: RouterBlock
     """The router that hosts the B side of the trunk. It possesses the same attributes as the A-side, including the
     interfaces and its descriptions."""
     iptrunk_sideB_ae_iface: str
diff --git a/gso/products/product_blocks/router.py b/gso/products/product_blocks/router.py
new file mode 100644
index 0000000000000000000000000000000000000000..d0d0fdcfad266a68bca2c1b1a5efb3bfa2f1e809
--- /dev/null
+++ b/gso/products/product_blocks/router.py
@@ -0,0 +1,98 @@
+"""Product block for {class}`Router` products."""
+import ipaddress
+from typing import Optional
+
+from orchestrator.domain.base import ProductBlockModel
+from orchestrator.types import SubscriptionLifecycle, strEnum
+
+from gso.products.product_blocks.site import SiteBlock, SiteBlockInactive, SiteBlockProvisioning
+
+
+class RouterVendor(strEnum):
+    """Enumerator for the different product vendors that are supported."""
+
+    JUNIPER = "juniper"
+    """Juniper routers."""
+    NOKIA = "nokia"
+    """Nokia routers."""
+
+
+class RouterRole(strEnum):
+    """Enumerator for the different types of routers."""
+
+    P = "p"
+    """P router."""
+    PE = "pe"
+    """PE router."""
+    AMT = "amt"
+    """AMT router."""
+
+
+class RouterBlockInactive(
+    ProductBlockModel, lifecycle=[SubscriptionLifecycle.INITIAL], product_block_name="RouterBlock"
+):
+    """A router that's being currently inactive. See {class}`RouterBlock`."""
+
+    router_fqdn: Optional[str] = None
+    router_ts_port: Optional[int] = None
+    router_access_via_ts: Optional[bool] = None
+    router_lo_ipv4_address: Optional[ipaddress.IPv4Address] = None
+    router_lo_ipv6_address: Optional[ipaddress.IPv6Address] = None
+    router_lo_iso_address: Optional[str] = None
+    router_si_ipv4_network: Optional[ipaddress.IPv4Network] = None
+    router_ias_lt_ipv4_network: Optional[ipaddress.IPv4Network] = None
+    router_ias_lt_ipv6_network: Optional[ipaddress.IPv6Network] = None
+    router_vendor: Optional[RouterVendor] = None
+    router_role: Optional[RouterRole] = None
+    router_site: Optional[SiteBlockInactive]
+    router_is_ias_connected: Optional[bool] = None
+
+
+class RouterBlockProvisioning(RouterBlockInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
+    """A router that's being provisioned. See {class}`RouterBlock`."""
+
+    router_fqdn: str
+    router_ts_port: int
+    router_access_via_ts: Optional[bool] = None
+    router_lo_ipv4_address: Optional[ipaddress.IPv4Address] = None
+    router_lo_ipv6_address: Optional[ipaddress.IPv6Address] = None
+    router_lo_iso_address: Optional[str] = None
+    router_si_ipv4_network: Optional[ipaddress.IPv4Network] = None
+    router_ias_lt_ipv4_network: Optional[ipaddress.IPv4Network] = None
+    router_ias_lt_ipv6_network: Optional[ipaddress.IPv6Network] = None
+    router_vendor: Optional[RouterVendor] = None
+    router_role: Optional[RouterRole] = None
+    router_site: Optional[SiteBlockProvisioning]
+    router_is_ias_connected: Optional[bool] = None
+
+
+class RouterBlock(RouterBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
+    """A router that's currently deployed in the network."""
+
+    router_fqdn: str
+    """{term}`FQDN` of a router."""
+    router_ts_port: int
+    """The port of the terminal server that this router is connected to. Used for the same reason as mentioned
+    previously."""
+    router_access_via_ts: bool
+    """Whether this router should be accessed through the terminal server, or through its loopback address."""
+    router_lo_ipv4_address: ipaddress.IPv4Address
+    """The IPv4 loopback address of the router."""
+    router_lo_ipv6_address: ipaddress.IPv6Address
+    """The IPv6 loopback address of the router."""
+    router_lo_iso_address: str
+    """The {term}`ISO` {term}`NET` of the router, used for {term}`IS-IS` support."""
+    router_si_ipv4_network: Optional[ipaddress.IPv4Network]
+    """The SI IPv4 network of the router."""
+    router_ias_lt_ipv4_network: Optional[ipaddress.IPv4Network]
+    """The IAS LT IPv4 network of the router."""
+    router_ias_lt_ipv6_network: Optional[ipaddress.IPv6Network]
+    """The IAS LT IPv6 network of the router."""
+    router_vendor: RouterVendor
+    """The vendor of the router, can be any of the values defined in {class}`RouterVendor`."""
+    router_role: RouterRole
+    """The role of the router, which can be any of the values defined in {class}`RouterRole`."""
+    router_site: SiteBlock
+    """The {class}`Site` that this router resides in. Both physically and computationally."""
+    router_is_ias_connected: bool
+    """The router is going to have a LT interface between inet0 and IAS"""
diff --git a/gso/products/product_blocks/site.py b/gso/products/product_blocks/site.py
index 0364b094eae2aad9de9888219611b21159808613..176d8e88af482fd7e557f38f0ef19e7cb6b5fda0 100644
--- a/gso/products/product_blocks/site.py
+++ b/gso/products/product_blocks/site.py
@@ -50,11 +50,11 @@ class SiteBlockProvisioning(SiteBlockInactive, lifecycle=[SubscriptionLifecycle.
 
 
 class SiteBlock(SiteBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
-    """A site that's currently available for devices and services to be hosted at."""
+    """A site that's currently available for routers and services to be hosted at."""
 
     site_name: str
-    """The name of the site, that will dictate part of the {term}`FQDN` of devices that are hosted at this site. For
-    example: `device.X.Y.geant.net`, where X denotes the name of the site."""
+    """The name of the site, that will dictate part of the {term}`FQDN` of routers that are hosted at this site. For
+    example: `router.X.Y.geant.net`, where X denotes the name of the site."""
     site_city: str
     """The city at which the site is located."""
     site_country: str
@@ -73,6 +73,6 @@ class SiteBlock(SiteBlockProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE])
     site_tier: SiteTier
     """The tier of a site, as described in {class}`SiteTier`."""
     site_ts_address: Optional[str] = None
-    """The address of the terminal server that this device is connected to. The terminal server provides out of band
-    access. This is required in case a link goes down, or when a device is initially added to the network and it does
+    """The address of the terminal server that this router is connected to. The terminal server provides out of band
+    access. This is required in case a link goes down, or when a router is initially added to the network and it does
     not have any IP trunks connected to it yet."""
diff --git a/gso/products/product_types/__init__.py b/gso/products/product_types/__init__.py
index 3e5410787324fb2f4eda6d89945de69ad9a75a25..bf2adc65afdc5e2aeda0cfa8cea9da649feab977 100644
--- a/gso/products/product_types/__init__.py
+++ b/gso/products/product_types/__init__.py
@@ -1,6 +1,6 @@
 """Product types define the different products that are available.
 
 Multiple product blocks may insist on a single product type. In that sense, a product type is a mode general description
-of a product. For example, the product type {class}`Device` must either be a router or a switch, both being separate
+of a product. For example, the product type {class}`Router` must either be a router or a switch, both being separate
 product blocks.
 """
diff --git a/gso/products/product_types/device.py b/gso/products/product_types/device.py
deleted file mode 100644
index 09ad08a7080ac1f729c3333e5db3a882157ab529..0000000000000000000000000000000000000000
--- a/gso/products/product_types/device.py
+++ /dev/null
@@ -1,29 +0,0 @@
-from orchestrator.domain.base import SubscriptionModel
-from orchestrator.types import SubscriptionLifecycle, strEnum
-
-from gso.products.product_blocks.device import DeviceBlock, DeviceBlockInactive, DeviceBlockProvisioning
-
-
-class DeviceType(strEnum):
-    """Enumerator for different device types.
-
-    A device can either be a router or a switch.
-    """
-
-    router = "router"
-    switch = "switch"
-
-
-class DeviceInactive(SubscriptionModel, is_base=True):
-    device_type: DeviceType
-    device: DeviceBlockInactive
-
-
-class DeviceProvisioning(DeviceInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
-    device_type: DeviceType
-    device: DeviceBlockProvisioning
-
-
-class Device(DeviceProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
-    device_type: DeviceType
-    device: DeviceBlock
diff --git a/gso/products/product_types/router.py b/gso/products/product_types/router.py
new file mode 100644
index 0000000000000000000000000000000000000000..370c066524640792ca4c72fe46c03be704b16144
--- /dev/null
+++ b/gso/products/product_types/router.py
@@ -0,0 +1,16 @@
+from orchestrator.domain.base import SubscriptionModel
+from orchestrator.types import SubscriptionLifecycle
+
+from gso.products.product_blocks.router import RouterBlock, RouterBlockInactive, RouterBlockProvisioning
+
+
+class RouterInactive(SubscriptionModel, is_base=True):
+    router: RouterBlockInactive
+
+
+class RouterProvisioning(RouterInactive, lifecycle=[SubscriptionLifecycle.PROVISIONING]):
+    router: RouterBlockProvisioning
+
+
+class Router(RouterProvisioning, lifecycle=[SubscriptionLifecycle.ACTIVE]):
+    router: RouterBlock
diff --git a/gso/services/provisioning_proxy.py b/gso/services/provisioning_proxy.py
index ae8628bc758ea8e3ca33a79201de7999681f71f1..390a5ff4db1d97545629ed29c6ecf955b08ae92b 100644
--- a/gso/services/provisioning_proxy.py
+++ b/gso/services/provisioning_proxy.py
@@ -18,7 +18,7 @@ from orchestrator.workflow import Step, StepList, abort
 from pydantic import validator
 
 from gso import settings
-from gso.products.product_types.device import DeviceProvisioning
+from gso.products.product_types.router import RouterProvisioning
 from gso.products.product_types.iptrunk import Iptrunk, IptrunkProvisioning
 
 logger = logging.getLogger(__name__)
@@ -84,11 +84,11 @@ def _send_request(endpoint: str, parameters: dict, process_id: UUIDstr, operatio
         raise AssertionError(request.content)
 
 
-def provision_device(subscription: DeviceProvisioning, process_id: UUIDstr, dry_run: bool = True) -> None:
-    """Provision a new device using {term}`LSO`.
+def provision_router(subscription: RouterProvisioning, process_id: UUIDstr, dry_run: bool = True) -> None:
+    """Provision a new router using {term}`LSO`.
 
     :param subscription: The subscription object that's to be provisioned.
-    :type subscription: {class}`DeviceProvisioning`
+    :type subscription: {class}`RouterProvisioning`
     :param process_id: The related process ID, used for callback.
     :type process_id: UUIDstr
     :param dry_run: A boolean indicating whether this should be a dry run or not, defaults to `True`.
@@ -97,7 +97,7 @@ def provision_device(subscription: DeviceProvisioning, process_id: UUIDstr, dry_
     """
     parameters = {"dry_run": dry_run, "subscription": json.loads(json_dumps(subscription))}
 
-    _send_request("device", parameters, process_id, CUDOperation.POST)
+    _send_request("router", parameters, process_id, CUDOperation.POST)
 
 
 def provision_ip_trunk(
diff --git a/gso/translations/en-GB.json b/gso/translations/en-GB.json
index a4ee0dfcac2820a0b39239c9a188b36e710750c6..4f9ad94b349d01be99fd7cc6b8f8831cea482268 100644
--- a/gso/translations/en-GB.json
+++ b/gso/translations/en-GB.json
@@ -11,11 +11,11 @@
             "site_internal_id": "Site internal ID",
             "site_tier": "Site tier",
 
-            "hostname": "Hostname of the new device, only the part that comes before the first period",
+            "hostname": "Hostname of the new router, only the part that comes before the first period",
             "ts_address": "IP address of the terminal server",
             "ts_port": "Port number of the terminal server",
-            "device_vendor": "Device vendor",
-            "device_role": "Device role",
+            "router_vendor": "Router vendor",
+            "router_role": "Router role",
 
             "geant_s_sid": "GÉANT S-SID",
             "iptrunk_description": "IPtrunk description",
@@ -30,13 +30,13 @@
             "iptrunk_sideB_ae_geant_a_sid": "GÉANT A-SID",
             "iptrunk_sideB_ae_members": "Aggregated Ethernet member interface names",
             "iptrunk_sideB_ae_members_descriptions": "Aggregated Ethernet member interface descriptions",
-            "remove_configuration": "Remove configuration from the device",
+            "remove_configuration": "Remove configuration from the router",
             "clean_up_ipam": "Clean up related entries in IPAM"
         }
     },
     "workflow": {
          "modify_isis_metric": "Modify the ISIS metric",
-         "modify_generic": "Modify Trunk interface", 
+         "modify_trunk_interface": "Modify IP Trunk interface",
          "confirm_info": "Please verify this form looks correct."
 	    }
 }
diff --git a/gso/workflows/__init__.py b/gso/workflows/__init__.py
index 4a79362c9e457040af342333d8084512291e7364..8f64c854caf0035b16c49d0d76ded578e27f1c89 100644
--- a/gso/workflows/__init__.py
+++ b/gso/workflows/__init__.py
@@ -1,12 +1,10 @@
 """Initialisation class that imports all workflows into {term}`GSO`."""
 from orchestrator.workflows import LazyWorkflowInstance
 
-LazyWorkflowInstance("gso.workflows.device.create_device", "create_device")
-LazyWorkflowInstance("gso.workflows.device.terminate_device", "terminate_device")
-LazyWorkflowInstance("gso.workflows.device.get_facts", "get_facts")
+LazyWorkflowInstance("gso.workflows.router.create_router", "create_router")
+LazyWorkflowInstance("gso.workflows.router.terminate_router", "terminate_router")
 LazyWorkflowInstance("gso.workflows.iptrunk.create_iptrunk", "create_iptrunk")
-LazyWorkflowInstance("gso.workflows.iptrunk.modify_generic", "modify_generic")
+LazyWorkflowInstance("gso.workflows.iptrunk.modify_trunk_interface", "modify_trunk_interface")
 LazyWorkflowInstance("gso.workflows.iptrunk.terminate_iptrunk", "terminate_iptrunk")
 LazyWorkflowInstance("gso.workflows.iptrunk.modify_isis_metric", "modify_isis_metric")
-LazyWorkflowInstance("gso.workflows.iptrunk.modify_generic", "modify_generic")
 LazyWorkflowInstance("gso.workflows.site.create_site", "create_site")
diff --git a/gso/workflows/device/get_facts.py b/gso/workflows/device/get_facts.py
deleted file mode 100644
index 99a37c38f1f6c817c67e364068272a3d3c6204e7..0000000000000000000000000000000000000000
--- a/gso/workflows/device/get_facts.py
+++ /dev/null
@@ -1,38 +0,0 @@
-from orchestrator.forms import FormPage
-from orchestrator.forms.validators import Label
-from orchestrator.targets import Target
-from orchestrator.types import InputForm, UUIDstr
-from orchestrator.workflow import StepList, done, init, step, workflow
-from orchestrator.workflows.utils import wrap_modify_initial_input_form
-
-from gso.products.product_types.device import Device
-
-
-def initial_input_form_generator(subscription_id: UUIDstr) -> InputForm:
-    subscription = Device.from_subscription(subscription_id)
-
-    class TerminateForm(FormPage):
-        are_you_sure: Label = f"Are you sure you want to get facts from {subscription.description}?"  # type: ignore
-
-    return TerminateForm
-
-
-@step("Get facts")
-def get_facts(subscription_id: UUIDstr) -> dict:
-    subscription = Device.from_subscription(subscription_id)
-
-    return {"output": subscription}
-
-
-@workflow(
-    "Get Facts from Device",
-    initial_input_form=wrap_modify_initial_input_form(initial_input_form_generator),
-    target=Target.SYSTEM,
-)
-def get_facts_from_device() -> StepList:
-    return (
-        init
-        >> get_facts
-        # >> resync
-        >> done
-    )
diff --git a/gso/workflows/iptrunk/create_iptrunk.py b/gso/workflows/iptrunk/create_iptrunk.py
index 89cca024113363d79690004f49bd8c373a28115f..f059b9ae35e2bd09b5d82359e3a6a1f31f288e04 100644
--- a/gso/workflows/iptrunk/create_iptrunk.py
+++ b/gso/workflows/iptrunk/create_iptrunk.py
@@ -9,7 +9,7 @@ from orchestrator.workflows.utils import wrap_create_initial_input_form
 
 from gso.products.product_blocks import PhyPortCapacity
 from gso.products.product_blocks.iptrunk import IptrunkType
-from gso.products.product_types.device import Device
+from gso.products.product_types.router import Router
 from gso.products.product_types.iptrunk import IptrunkInactive, IptrunkProvisioning
 from gso.services import ipam, provisioning_proxy
 from gso.services.provisioning_proxy import pp_interaction
@@ -20,17 +20,17 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
     # TODO: implement more strict validation:
     # * interface names must be validated
 
-    devices = {}
-    for device_id, device_description in (
+    routers = {}
+    for router_id, router_description in (
         SubscriptionTable.query.join(ProductTable)
         .filter(
-            ProductTable.product_type == "Device",
+            ProductTable.product_type == "Router",
             SubscriptionTable.status == "active",
         )
         .with_entities(SubscriptionTable.subscription_id, SubscriptionTable.description)
         .all()
     ):
-        devices[str(device_id)] = device_description
+        routers[str(router_id)] = router_description
 
     class CreateIptrunkForm(FormPage):
         class Config:
@@ -48,13 +48,13 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
     class AeMembersListA(UniqueConstrainedList[str]):
         min_items = initial_user_input.iptrunk_minimum_links
 
-    DeviceEnumA = Choice("Select a device", zip(devices.keys(), devices.items()))  # type: ignore
+    RouterEnumA = Choice("Select a router", zip(routers.keys(), routers.items()))  # type: ignore
 
     class CreateIptrunkSideAForm(FormPage):
         class Config:
             title = "Provide subscription details for side A of the trunk."
 
-        iptrunk_sideA_node_id: DeviceEnumA  # type: ignore
+        iptrunk_sideA_node_id: RouterEnumA  # type: ignore
         iptrunk_sideA_ae_iface: str
         iptrunk_sideA_ae_geant_a_sid: str
         iptrunk_sideA_ae_members: AeMembersListA
@@ -62,9 +62,9 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
 
     user_input_side_a = yield CreateIptrunkSideAForm
 
-    # Remove the selected device for side A, to prevent any loops
-    devices.pop(str(user_input_side_a.iptrunk_sideA_node_id.name))
-    DeviceEnumB = Choice("Select a device", zip(devices.keys(), devices.items()))  # type: ignore
+    # Remove the selected router for side A, to prevent any loops
+    routers.pop(str(user_input_side_a.iptrunk_sideA_node_id.name))
+    RouterEnumB = Choice("Select a router", zip(routers.keys(), routers.items()))  # type: ignore
 
     class AeMembersListB(UniqueConstrainedList[str]):
         min_items = len(user_input_side_a.iptrunk_sideA_ae_members)
@@ -74,7 +74,7 @@ def initial_input_form_generator(product_name: str) -> FormGenerator:
         class Config:
             title = "Provide subscription details for side B of the trunk."
 
-        iptrunk_sideB_node_id: DeviceEnumB  # type: ignore
+        iptrunk_sideB_node_id: RouterEnumB  # type: ignore
         iptrunk_sideB_ae_iface: str
         iptrunk_sideB_ae_geant_a_sid: str
         iptrunk_sideB_ae_members: AeMembersListB
@@ -135,13 +135,13 @@ def initialize_subscription(
     subscription.iptrunk.iptrunk_isis_metric = 9000
     subscription.iptrunk.iptrunk_minimum_links = iptrunk_minimum_links
 
-    subscription.iptrunk.iptrunk_sideA_node = Device.from_subscription(iptrunk_sideA_node_id).device
+    subscription.iptrunk.iptrunk_sideA_node = Router.from_subscription(iptrunk_sideA_node_id).router
     subscription.iptrunk.iptrunk_sideA_ae_iface = iptrunk_sideA_ae_iface
     subscription.iptrunk.iptrunk_sideA_ae_geant_a_sid = iptrunk_sideA_ae_geant_a_sid
     subscription.iptrunk.iptrunk_sideA_ae_members = iptrunk_sideA_ae_members
     subscription.iptrunk.iptrunk_sideA_ae_members_description = iptrunk_sideA_ae_members_descriptions
 
-    subscription.iptrunk.iptrunk_sideB_node = Device.from_subscription(iptrunk_sideB_node_id).device
+    subscription.iptrunk.iptrunk_sideB_node = Router.from_subscription(iptrunk_sideB_node_id).router
     subscription.iptrunk.iptrunk_sideB_ae_iface = iptrunk_sideB_ae_iface
     subscription.iptrunk.iptrunk_sideB_ae_geant_a_sid = iptrunk_sideB_ae_geant_a_sid
     subscription.iptrunk.iptrunk_sideB_ae_members = iptrunk_sideB_ae_members
diff --git a/gso/workflows/iptrunk/modify_generic.py b/gso/workflows/iptrunk/modify_trunk_interface.py
similarity index 97%
rename from gso/workflows/iptrunk/modify_generic.py
rename to gso/workflows/iptrunk/modify_trunk_interface.py
index cd86f6ef590e78e64a68834de0891f7737803143..d6320e6ff3f62436f8b84c5d49d46086e58f9499 100644
--- a/gso/workflows/iptrunk/modify_generic.py
+++ b/gso/workflows/iptrunk/modify_trunk_interface.py
@@ -37,7 +37,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
         class Config:
             title = "Provide subscription details for side A of the trunk."
 
-        iptrunk_sideA_node: str = ReadOnlyField(subscription.iptrunk.iptrunk_sideA_node.device_fqdn)
+        iptrunk_sideA_node: str = ReadOnlyField(subscription.iptrunk.iptrunk_sideA_node.router_fqdn)
         iptrunk_sideA_ae_iface: str = ReadOnlyField(subscription.iptrunk.iptrunk_sideA_ae_iface)
         iptrunk_sideA_ae_geant_a_sid: str = subscription.iptrunk.iptrunk_sideA_ae_geant_a_sid
         iptrunk_sideA_ae_members: AeMembersListA = subscription.iptrunk.iptrunk_sideA_ae_members  # type: ignore
@@ -55,7 +55,7 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
         class Config:
             title = "Provide subscription details for side B of the trunk."
 
-        iptrunk_sideB_node: str = ReadOnlyField(subscription.iptrunk.iptrunk_sideB_node.device_fqdn)
+        iptrunk_sideB_node: str = ReadOnlyField(subscription.iptrunk.iptrunk_sideB_node.router_fqdn)
         iptrunk_sideB_ae_iface: str = ReadOnlyField(subscription.iptrunk.iptrunk_sideB_ae_iface)
         iptrunk_sideB_ae_geant_a_sid: str = subscription.iptrunk.iptrunk_sideB_ae_geant_a_sid
         iptrunk_sideB_ae_members: AeMembersListB = subscription.iptrunk.iptrunk_sideB_ae_members  # type: ignore
@@ -143,11 +143,11 @@ def provision_ip_trunk_lldp_iface_real(subscription: Iptrunk, process_id: UUIDst
 
 
 @workflow(
-    "Modify IP trunk",
+    "Modify IP Trunk interface",
     initial_input_form=wrap_modify_initial_input_form(initial_input_form_generator),
     target=Target.MODIFY,
 )
-def modify_generic() -> StepList:
+def modify_trunk_interface() -> StepList:
     return (
         init
         >> store_process_subscription(Target.MODIFY)
diff --git a/gso/workflows/device/__init__.py b/gso/workflows/router/__init__.py
similarity index 100%
rename from gso/workflows/device/__init__.py
rename to gso/workflows/router/__init__.py
diff --git a/gso/workflows/device/create_device.py b/gso/workflows/router/create_router.py
similarity index 57%
rename from gso/workflows/device/create_device.py
rename to gso/workflows/router/create_router.py
index 78bc5dd2ce78e943789d37c66b059213583c43c1..8d932545b7f0af22d6af1e82e10ca55089a0cea2 100644
--- a/gso/workflows/device/create_device.py
+++ b/gso/workflows/router/create_router.py
@@ -12,9 +12,9 @@ from orchestrator.workflow import StepList, done, init, step, workflow
 from orchestrator.workflows.steps import resync, set_status, store_process_subscription
 from orchestrator.workflows.utils import wrap_create_initial_input_form
 
-from gso.products.product_blocks import device as device_pb
-from gso.products.product_types import device
-from gso.products.product_types.device import DeviceInactive, DeviceProvisioning
+from gso.products.product_blocks import router as router_pb
+from gso.products.product_types import router
+from gso.products.product_types.router import RouterInactive, RouterProvisioning
 from gso.products.product_types.site import Site
 from gso.services import ipam, provisioning_proxy
 from gso.services.provisioning_proxy import pp_interaction
@@ -39,26 +39,26 @@ def site_selector() -> Choice:
 
 
 def initial_input_form_generator(product_name: str) -> FormGenerator:
-    class CreateDeviceForm(FormPage):
+    class CreateRouterForm(FormPage):
         class Config:
             title = product_name
 
         customer: customer_selector()  # type: ignore
-        device_site: site_selector()  # type: ignore
+        router_site: site_selector()  # type: ignore
         hostname: str
         ts_port: int
-        device_vendor: device_pb.DeviceVendor
-        device_role: device_pb.DeviceRole
+        router_vendor: router_pb.RouterVendor
+        router_role: router_pb.RouterRole
         is_ias_connected: bool
 
-    user_input = yield CreateDeviceForm
+    user_input = yield CreateRouterForm
 
     return user_input.dict()
 
 
 @step("Create subscription")
 def create_subscription(product: UUIDstr, customer: UUIDstr) -> State:
-    subscription = DeviceInactive.from_product_id(product, customer)
+    subscription = RouterInactive.from_product_id(product, customer)
 
     return {
         "subscription": subscription,
@@ -74,23 +74,23 @@ def iso_from_ipv4(ipv4_address: ipaddress.IPv4Address) -> str:
 
 
 @step("Get information from IPAM")
-def get_info_from_ipam(subscription: DeviceProvisioning, is_ias_connected: bool) -> State:
-    lo0_alias = re.sub(".geant.net", "", subscription.device.device_fqdn)
+def get_info_from_ipam(subscription: RouterProvisioning, is_ias_connected: bool) -> State:
+    lo0_alias = re.sub(".geant.net", "", subscription.router.router_fqdn)
     lo0_name = f"lo0.{lo0_alias}"
     lo0_addr = ipam.allocate_host(hostname=lo0_name, service_type="LO", cname_aliases=[lo0_alias])
-    subscription.device.device_lo_ipv4_address = lo0_addr.v4
-    subscription.device.device_lo_ipv6_address = lo0_addr.v6
-    subscription.device.device_lo_iso_address = iso_from_ipv4(subscription.device.device_lo_ipv4_address)
-    subscription.device.device_is_ias_connected = is_ias_connected
+    subscription.router.router_lo_ipv4_address = lo0_addr.v4
+    subscription.router.router_lo_ipv6_address = lo0_addr.v6
+    subscription.router.router_lo_iso_address = iso_from_ipv4(subscription.router.router_lo_ipv4_address)
+    subscription.router.router_is_ias_connected = is_ias_connected
 
     if is_ias_connected is True:
-        subscription.device.device_si_ipv4_network = ipam.allocate_ipv4_network(
+        subscription.router.router_si_ipv4_network = ipam.allocate_ipv4_network(
             service_type="SI", comment=f"SI for {lo0_name}"
         ).v4
-        subscription.device.device_ias_lt_ipv4_network = ipam.allocate_ipv4_network(
+        subscription.router.router_ias_lt_ipv4_network = ipam.allocate_ipv4_network(
             service_type="LT_IAS", comment=f"LT for {lo0_name}"
         ).v4
-        subscription.device.device_ias_lt_ipv6_network = ipam.allocate_ipv6_network(
+        subscription.router.router_ias_lt_ipv6_network = ipam.allocate_ipv6_network(
             service_type="LT_IAS", comment=f"LT for {lo0_name}"
         ).v6
 
@@ -99,71 +99,71 @@ def get_info_from_ipam(subscription: DeviceProvisioning, is_ias_connected: bool)
 
 @step("Initialize subscription")
 def initialize_subscription(
-    subscription: device.DeviceInactive,
+    subscription: router.RouterInactive,
     hostname: str,
     ts_port: int,
-    device_vendor: device_pb.DeviceVendor,
-    device_site: str,
-    device_role: device_pb.DeviceRole,
+    router_vendor: router_pb.RouterVendor,
+    router_site: str,
+    router_role: router_pb.RouterRole,
 ) -> State:
-    subscription.device.device_ts_port = ts_port
-    subscription.device.device_vendor = device_vendor
-    subscription.device.device_site = Site.from_subscription(device_site).site
+    subscription.router.router_ts_port = ts_port
+    subscription.router.router_vendor = router_vendor
+    subscription.router.router_site = Site.from_subscription(router_site).site
     fqdn = (
-        f"{hostname}.{subscription.device.device_site.site_name.lower()}."
-        f"{subscription.device.device_site.site_country_code.lower()}"
+        f"{hostname}.{subscription.router.router_site.site_name.lower()}."
+        f"{subscription.router.router_site.site_country_code.lower()}"
         ".geant.net"
     )
-    subscription.device.device_fqdn = fqdn
-    subscription.device.device_role = device_role
-    subscription.device.device_access_via_ts = True
-    subscription.description = f"Device {fqdn} ({subscription.device_type})"
+    subscription.router.router_fqdn = fqdn
+    subscription.router.router_role = router_role
+    subscription.router.router_access_via_ts = True
+    subscription.description = f"Router {fqdn}"
 
-    subscription = device.DeviceProvisioning.from_other_lifecycle(subscription, SubscriptionLifecycle.PROVISIONING)
+    subscription = router.RouterProvisioning.from_other_lifecycle(subscription, SubscriptionLifecycle.PROVISIONING)
 
     return {"subscription": subscription}
 
 
-@step("Provision device [DRY RUN]")
-def provision_device_dry(subscription: DeviceProvisioning, process_id: UUIDstr) -> State:
-    provisioning_proxy.provision_device(subscription, process_id)
+@step("Provision router [DRY RUN]")
+def provision_router_dry(subscription: RouterProvisioning, process_id: UUIDstr) -> State:
+    provisioning_proxy.provision_router(subscription, process_id)
 
     return {
         "subscription": subscription,
         "label_text": (
-            f"Dry run for the deployment of base config on a new {subscription.device_type}. Deployment is done by the"
-            f" provisioning proxy, please wait for the results to come back before continuing."
+            "Dry run for the deployment of base config on a new router. Deployment is done by the"
+            " provisioning proxy, please wait for the results to come back before continuing."
         ),
     }
 
 
-@step("Provision device [FOR REAL]")
-def provision_device_real(subscription: DeviceProvisioning, process_id: UUIDstr) -> State:
-    provisioning_proxy.provision_device(subscription, process_id, False)
+@step("Provision router [FOR REAL]")
+def provision_router_real(subscription: RouterProvisioning, process_id: UUIDstr) -> State:
+    provisioning_proxy.provision_router(subscription, process_id, False)
 
     return {
         "subscription": subscription,
         "label_text": (
-            f"Deployment of base config for a new {subscription.device_type}. Deployment is being taken care of by the"
-            f" provisioning proxy, please wait for the results to come back before continuing."
+            "Deployment of base config for a new router. Deployment is being taken care of by the"
+            " provisioning proxy, please wait for the results to come back before continuing."
         ),
     }
 
 
 @workflow(
-    "Create device",
+    "Create router",
     initial_input_form=wrap_create_initial_input_form(initial_input_form_generator),
     target=Target.CREATE,
 )
-def create_device() -> StepList:
+def create_router() -> StepList:
     return (
         init
         >> create_subscription
         >> store_process_subscription(Target.CREATE)
         >> initialize_subscription
         >> get_info_from_ipam
-        >> pp_interaction(provision_device_dry, 3)
-        >> pp_interaction(provision_device_real, 3)
+        >> pp_interaction(provision_router_dry, 3)
+        >> pp_interaction(provision_router_real, 3)
         >> set_status(SubscriptionLifecycle.ACTIVE)
         >> resync
         >> done
diff --git a/gso/workflows/device/terminate_device.py b/gso/workflows/router/terminate_router.py
similarity index 68%
rename from gso/workflows/device/terminate_device.py
rename to gso/workflows/router/terminate_router.py
index cedda7061a539034cfb484b3bb80a64739b06ebc..4901e8cc2c255cc48d807d8ca10bd997a54ea863 100644
--- a/gso/workflows/device/terminate_device.py
+++ b/gso/workflows/router/terminate_router.py
@@ -9,7 +9,7 @@ from orchestrator.workflow import StepList, conditional, done, init, step, workf
 from orchestrator.workflows.steps import resync, set_status, store_process_subscription, unsync
 from orchestrator.workflows.utils import wrap_modify_initial_input_form
 
-from gso.products.product_types.device import Device
+from gso.products.product_types.router import Router
 from gso.services import ipam
 from gso.services.ipam import HostAddresses, V4ServiceNetwork, V6ServiceNetwork
 
@@ -17,12 +17,12 @@ logger = logging.getLogger(__name__)
 
 
 def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
-    subscription = Device.from_subscription(subscription_id)
+    subscription = Router.from_subscription(subscription_id)
 
     class TerminateForm(FormPage):
         termination_label: Label = (
-            f"Please confirm whether configuration should get removed from the {subscription.device_type}, and "
-            "whether IPAM resources should be released."  # type: ignore
+            "Please confirm whether configuration should get removed from the router, and whether IPAM resources should"
+            " be released."  # type: ignore
         )
         remove_configuration: bool = True
         clean_up_ipam: bool = True
@@ -32,12 +32,12 @@ def initial_input_form_generator(subscription_id: UUIDstr) -> FormGenerator:
 
 
 @step("Deprovision loopback IPs from IPAM/DNS")
-def deprovision_loopback_ips(subscription: Device) -> dict[str, HostAddresses]:
+def deprovision_loopback_ips(subscription: Router) -> dict[str, HostAddresses]:
     input_host_addresses = ipam.HostAddresses(
-        v4=ipaddress.IPv4Address(subscription.device.device_lo_ipv4_address),
-        v6=ipaddress.IPv6Address(subscription.device.device_lo_ipv6_address),
+        v4=ipaddress.IPv4Address(subscription.router.router_lo_ipv4_address),
+        v6=ipaddress.IPv6Address(subscription.router.router_lo_ipv6_address),
     )
-    fqdn_as_list = subscription.device.device_fqdn.split(".")
+    fqdn_as_list = subscription.router.router_fqdn.split(".")
     hostname = str(fqdn_as_list[0]) + "." + str(fqdn_as_list[1]) + "." + str(fqdn_as_list[2])
     lo0_name = "lo0." + hostname
     host_addresses = ipam.delete_host(
@@ -50,22 +50,22 @@ def deprovision_loopback_ips(subscription: Device) -> dict[str, HostAddresses]:
 
 
 @step("Deprovision SI- interface  IPs from IPAM/DNS")
-def deprovision_si_ips(subscription: Device) -> dict[str, V4ServiceNetwork | V6ServiceNetwork]:
+def deprovision_si_ips(subscription: Router) -> dict[str, V4ServiceNetwork | V6ServiceNetwork]:
     service_network = ipam.delete_network(
-        network=ipaddress.ip_network(subscription.device.device_si_ipv4_network),  # type: ignore
+        network=ipaddress.ip_network(subscription.router.router_si_ipv4_network),  # type: ignore
         service_type="SI",
     )
     return {"service_network": service_network}
 
 
 @step("Deprovision LT- interface (IAS) IPs from IPAM/DNS")
-def deprovision_lt_ips(subscription: Device) -> dict[str, V4ServiceNetwork | V6ServiceNetwork]:
+def deprovision_lt_ips(subscription: Router) -> dict[str, V4ServiceNetwork | V6ServiceNetwork]:
     service_network_v4 = ipam.delete_network(
-        network=ipaddress.ip_network(subscription.device.device_ias_lt_ipv4_network),  # type: ignore
+        network=ipaddress.ip_network(subscription.router.router_ias_lt_ipv4_network),  # type: ignore
         service_type="LT_IAS",
     )
     service_network_v6 = ipam.delete_network(
-        network=ipaddress.ip_network(subscription.device.device_ias_lt_ipv6_network),  # type: ignore
+        network=ipaddress.ip_network(subscription.router.router_ias_lt_ipv6_network),  # type: ignore
         service_type="LT_IAS",
     )
     return {
@@ -74,21 +74,21 @@ def deprovision_lt_ips(subscription: Device) -> dict[str, V4ServiceNetwork | V6S
     }
 
 
-@step("Remove configuration from device")
-def remove_config_from_device() -> None:
+@step("Remove configuration from router")
+def remove_config_from_router() -> None:
     pass
 
 
 @workflow(
-    "Terminate device",
+    "Terminate router",
     initial_input_form=wrap_modify_initial_input_form(initial_input_form_generator),
     target=Target.TERMINATE,
 )
-def terminate_device() -> StepList:
+def terminate_router() -> StepList:
     run_ipam_steps = conditional(lambda state: state.get("clean_up_ipam", True))
     run_config_steps = conditional(lambda state: state.get("remove_configuration", True))
-    run_ias_removal = conditional(lambda subscription: "device_ias_lt_ipv4_network" in subscription.get("device", {}))
-    run_si_removal = conditional(lambda subscription: "device_si_ipv4_network" in subscription.get("device", {}))
+    run_ias_removal = conditional(lambda subscription: "router_ias_lt_ipv4_network" in subscription.get("router", {}))
+    run_si_removal = conditional(lambda subscription: "router_si_ipv4_network" in subscription.get("router", {}))
 
     ipam_steps = (
         StepList([deprovision_loopback_ips])
@@ -101,7 +101,7 @@ def terminate_device() -> StepList:
         >> store_process_subscription(Target.TERMINATE)
         >> unsync
         >> run_ipam_steps(ipam_steps)
-        >> run_config_steps(remove_config_from_device)
+        >> run_config_steps(remove_config_from_router)
         >> set_status(SubscriptionLifecycle.TERMINATED)
         >> resync
         >> done
diff --git a/gso/workflows/site/create_site.py b/gso/workflows/site/create_site.py
index 67e3b91253cf7cc2588aa36bbc962c81c31e6bdf..b756971c5e61d113be6e81c23cb465c218ae8969 100644
--- a/gso/workflows/site/create_site.py
+++ b/gso/workflows/site/create_site.py
@@ -67,7 +67,7 @@ def initialize_subscription(
     subscription.site.site_tier = site_tier
     subscription.site.site_ts_address = site_ts_address
 
-    subscription.description = f"Site {site_name}"
+    subscription.description = f"Site in {site_city}, {site_country}"
 
     subscription = site.SiteProvisioning.from_other_lifecycle(subscription, SubscriptionLifecycle.PROVISIONING)