diff --git a/src/test/java/org/openepics/names/docker/complex/NamesLegacyIT.java b/src/test/java/org/openepics/names/docker/complex/NamesLegacyIT.java
new file mode 100644
index 0000000000000000000000000000000000000000..ffbb8256a649053dd0a1631bd35946f93d785c58
--- /dev/null
+++ b/src/test/java/org/openepics/names/docker/complex/NamesLegacyIT.java
@@ -0,0 +1,567 @@
+/*
+ * Copyright (C) 2022 European Spallation Source ERIC.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ */
+
+package org.openepics.names.docker.complex;
+
+import java.io.File;
+import java.util.UUID;
+
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.api.Test;
+import org.openepics.names.docker.ITUtil;
+import org.openepics.names.docker.ITUtilNameElement;
+import org.openepics.names.docker.ITUtilStructureElement;
+import org.openepics.names.rest.beans.Type;
+import org.openepics.names.rest.beans.element.NameElementCommand;
+import org.openepics.names.rest.beans.element.StructureElement;
+import org.openepics.names.rest.beans.element.StructureElementCommand;
+import org.openepics.names.rest.beans.response.ResponsePageStructureElements;
+import org.testcontainers.containers.DockerComposeContainer;
+import org.testcontainers.containers.wait.strategy.Wait;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
+
+/**
+ * Integration tests for Naming and PostgreSQL that make use of existing dockerization
+ * with docker-compose.yml / Dockerfile.
+ *
+ * <p>
+ * Focus of this class is names endpoint and rules for legacy name.
+ * In practice, this class contains tests for structures and names, before and after delete of structures.
+ * </p>
+ *
+ * @author Lars Johansson
+ */
+@Testcontainers
+class NamesLegacyIT {
+
+    // test if name is legacy names in various ways
+    //     system structure
+    //         Sg
+    //         Sys
+    //         Sys-Sub
+    //     system structure + device structure + index
+    //         Sg:Di-Dt-Idx
+    //         Sys:Di-Dt-Idx
+    //         Sys-Sub:Di-Dt-Idx
+    //
+    // delete system structure entries and check that legacy as intended
+    // delete device structure entries and check that legacy as intended
+
+    @Container
+    public static final DockerComposeContainer<?> ENVIRONMENT =
+        new DockerComposeContainer<>(new File("docker-compose-integrationtest.yml"))
+            .waitingFor(ITUtil.NAMING, Wait.forLogMessage(".*Started NamingApplication.*", 1));
+
+    // system group
+    private static UUID sg1 = null;
+    private static UUID sg2 = null;
+
+    // system
+    private static UUID sys11, sys12, sys13 = null;
+    private static UUID sys21, sys22, sys23 = null;
+
+    // subsystem
+    //     sub111, sub112, sub113
+    //     sub121, sub122, sub123
+    //     sub131, sub132, sub133
+    //     sub211, sub212, sub213
+    //     sub221, sub222, sub223
+    //     sub231, sub232, sub233
+    private static UUID sub132 = null;
+    private static UUID sub231, sub232, sub233 = null;
+
+    // discipline
+    private static UUID di2 = null;
+
+    // device group
+    private static UUID dg21, dg22, dg23 = null;
+
+    // device type
+    private static UUID dt211, dt212, dt213 = null;
+    private static UUID dt221, dt222, dt223 = null;
+    private static UUID dt231, dt232, dt233 = null;
+
+    // name
+    //     n211, n212, n213
+    //     n221, n222, n223
+    //     n231, n232, n233
+
+    @BeforeAll
+    public static void initAll() {
+        // init system group, system, subsystem, discipline, device group, device type
+
+        NameElementCommand nameElement = null;
+        StructureElementCommand structureElement  = null;
+        StructureElement approvedStructureElement = null;
+
+        String name = "name";
+        String description = "description";
+        String comment = "comment";
+
+        structureElement = new StructureElementCommand(null, Type.SYSTEMGROUP, null, name, "Sg1", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        sg1 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.SYSTEM, sg1, name, "Sys11", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        sys11 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.SYSTEM, sg1, name, "Sys12", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        sys12 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.SYSTEM, sg1, name, "Sys13", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        sys13 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys11, name, "Sub111", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys11, name, "Sub112", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys11, name, "Sub113", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys12, name, "Sub121", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys12, name, "Sub122", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys12, name, "Sub123", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys13, name, "Sub131", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys13, name, "Sub132", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        sub132 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys13, name, "Sub133", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        ITUtilStructureElement.assertRead("/SYSTEMGROUP", 1);
+        ITUtilStructureElement.assertRead("/SYSTEM", 3);
+        ITUtilStructureElement.assertRead("/SUBSYSTEM", 9);
+        ITUtilNameElement.assertRead("", 13);
+
+        // at this point
+        //     system group
+        //         Sg1
+        //     system
+        //         Sys11, Sys12, Sys13
+        //     subsystem
+        //         Sub111, Sub112, Sub113
+        //         Sub121, Sub122, Sub123
+        //         Sub131, Sub132, Sub133
+        //     name (system structure only)
+        //         Sg1
+        //         Sys11, Sys12, Sys13
+        //         Sys11-Sub111, Sys11-Sub112, Sys11-Sub113
+        //         Sys12-Sub121, Sys12-Sub122, Sys12-Sub123
+        //         Sys13-Sub131, Sys13-Sub132, Sys13-Sub133
+
+        structureElement = new StructureElementCommand(null, Type.SYSTEMGROUP, null, name, "Sg2", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        sg2 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.SYSTEM, sg2, name, "Sys21", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        sys21 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.SYSTEM, sg2, name, "Sys22", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        sys22 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.SYSTEM, sg2, name, "Sys23", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        sys23 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys21, name, "Sub211", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys21, name, "Sub212", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys21, name, "Sub213", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys22, name, "Sub221", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys22, name, "Sub222", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys22, name, "Sub223", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys23, name, "Sub231", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        sub231 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys23, name, "Sub232", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        sub232 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.SUBSYSTEM, sys23, name, "Sub233", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        sub233 = approvedStructureElement.getUuid();
+
+        ITUtilStructureElement.assertRead("/SYSTEMGROUP", 2);
+        ITUtilStructureElement.assertRead("/SYSTEM", 6);
+        ITUtilStructureElement.assertRead("/SUBSYSTEM", 18);
+        ITUtilNameElement.assertRead("", 26);
+
+        // at this point
+        //     above
+        //     +
+        //     system group
+        //         Sg2
+        //     system
+        //         Sys21, Sys22, Sys23
+        //     subsystem
+        //         Sub211, Sub212, Sub213
+        //         Sub221, Sub222, Sub223
+        //         Sub231, Sub232, Sub233
+        //     name (system structure only)
+        //         Sg2
+        //         Sys21, Sys22, Sys23
+        //         Sys21-Sub211, Sys21-Sub212, Sys21-Sub213
+        //         Sys22-Sub221, Sys22-Sub222, Sys22-Sub223
+        //         Sys23-Sub231, Sys23-Sub232, Sys23-Sub233
+
+        structureElement = new StructureElementCommand(null, Type.DISCIPLINE, null, name, "Di2", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        di2 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.DEVICEGROUP, di2, name, "", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        dg21 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.DEVICEGROUP, di2, name, "", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        dg22 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.DEVICEGROUP, di2, name, "", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        dg23 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.DEVICETYPE, dg21, name, "Dt211", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        dt211 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.DEVICETYPE, dg21, name, "Dt212", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        dt212 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.DEVICETYPE, dg21, name, "Dt213", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        dt213 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.DEVICETYPE, dg22, name, "Dt221", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        dt221 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.DEVICETYPE, dg22, name, "Dt222", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        dt222 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.DEVICETYPE, dg22, name, "Dt223", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        dt223 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.DEVICETYPE, dg23, name, "Dt231", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        dt231 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.DEVICETYPE, dg23, name, "Dt232", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        dt232 = approvedStructureElement.getUuid();
+
+        structureElement = new StructureElementCommand(null, Type.DEVICETYPE, dg23, name, "Dt233", description, comment);
+        approvedStructureElement = ITUtilStructureElement.assertCreateApprove(structureElement);
+        dt233 = approvedStructureElement.getUuid();
+
+        ITUtilStructureElement.assertRead("/SYSTEMGROUP", 2);
+        ITUtilStructureElement.assertRead("/SYSTEM", 6);
+        ITUtilStructureElement.assertRead("/SUBSYSTEM", 18);
+        ITUtilStructureElement.assertRead("/DISCIPLINE", 1);
+        ITUtilStructureElement.assertRead("/DEVICEGROUP", 3);
+        ITUtilStructureElement.assertRead("/DEVICETYPE", 9);
+        ITUtilNameElement.assertRead("", 26);
+
+        // at this point
+        //     above
+        //     +
+        //     discipline
+        //         Di2
+        //     device group
+        //         -, -, -
+        //     device type
+        //         Dt211, Dt212, Dt213
+        //         Dt221, Dt222, Dt223
+        //         Dt231, Dt232, Dt233
+
+        nameElement = new NameElementCommand(null, sg2, dt211, "211", description, comment);
+        ITUtilNameElement.assertCreate(nameElement);
+
+        nameElement = new NameElementCommand(null, sg2, dt212, "212", description, comment);
+        ITUtilNameElement.assertCreate(nameElement);
+
+        nameElement = new NameElementCommand(null, sg2, dt213, "213", description, comment);
+        ITUtilNameElement.assertCreate(nameElement);
+
+        nameElement = new NameElementCommand(null, sys22, dt221, "221", description, comment);
+        ITUtilNameElement.assertCreate(nameElement);
+
+        nameElement = new NameElementCommand(null, sys22, dt222, "222", description, comment);
+        ITUtilNameElement.assertCreate(nameElement);
+
+        nameElement = new NameElementCommand(null, sys22, dt223, "223", description, comment);
+        ITUtilNameElement.assertCreate(nameElement);
+
+        nameElement = new NameElementCommand(null, sub231, dt231, "231", description, comment);
+        ITUtilNameElement.assertCreate(nameElement);
+
+        nameElement = new NameElementCommand(null, sub232, dt232, "232", description, comment);
+        ITUtilNameElement.assertCreate(nameElement);
+
+        nameElement = new NameElementCommand(null, sub233, dt233, "233", description, comment);
+        ITUtilNameElement.assertCreate(nameElement);
+
+        ITUtilStructureElement.assertRead("/SYSTEMGROUP", 2);
+        ITUtilStructureElement.assertRead("/SYSTEM", 6);
+        ITUtilStructureElement.assertRead("/SUBSYSTEM", 18);
+        ITUtilStructureElement.assertRead("/DISCIPLINE", 1);
+        ITUtilStructureElement.assertRead("/DEVICEGROUP", 3);
+        ITUtilStructureElement.assertRead("/DEVICETYPE", 9);
+        ITUtilNameElement.assertRead("", 35);
+
+        // at this point
+        //     above
+        //     +
+        //     name (system structure + device structure + index)
+        //         Sg2:Di2-Dt211-211
+        //         Sg2:Di2-Dt212-212
+        //         Sg2:Di2-Dt213-213
+        //         Sys22:Di2-Dt221-221
+        //         Sys22:Di2-Dt222-222
+        //         Sys22:Di2-Dt223-223
+        //         Sys23-Sub231:Di2-Dt231-231
+        //         Sys23-Sub232:Di2-Dt232-232
+        //         Sys23-Sub233:Di2-Dt233-233
+    }
+
+    @Test
+    void isLegacyNameSystemStructure() {
+        // purpose
+        //     test if name is legacy name
+        //
+        // what - combination of
+        //     read        exists name
+        //     read        is legacy name
+        //     read        is valid to create name
+        //     create      create names
+        //     delete      delete structures
+        //     patch       approve structures
+        //
+        // note
+        //     delete subsystem
+        //     delete system
+        //     delete system group
+
+        ResponsePageStructureElements responsePage = null;
+        StructureElementCommand structureElement = null;
+
+        ITUtilNameElement.assertExists("Sg1", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys11", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys12", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys13", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys11-Sub111", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys11-Sub112", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys11-Sub113", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys12-Sub121", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys12-Sub122", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys12-Sub123", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys13-Sub131", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys13-Sub132", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys13-Sub133", Boolean.TRUE);
+
+        ITUtilNameElement.assertIsLegacy("Sg1", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys11", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys12", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys13", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys11-Sub111", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys11-Sub112", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys11-Sub113", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys12-Sub121", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys12-Sub122", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys12-Sub123", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys13-Sub131", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys13-Sub132", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys13-Sub133", Boolean.FALSE);
+
+        responsePage = ITUtilStructureElement.assertRead("/SUBSYSTEM?uuid=" + sub132, 1);
+        structureElement = responsePage.getList().get(0);
+
+        ITUtilStructureElement.assertApprove(ITUtilStructureElement.assertDelete(structureElement));
+
+        ITUtilNameElement.assertIsLegacy("Sg1", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys11", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys12", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys13", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys11-Sub111", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys11-Sub112", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys11-Sub113", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys12-Sub121", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys12-Sub122", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys12-Sub123", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys13-Sub131", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys13-Sub132", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys13-Sub133", Boolean.FALSE);
+
+        responsePage = ITUtilStructureElement.assertRead("/SYSTEM?uuid=" + sys12, 1);
+        structureElement = responsePage.getList().get(0);
+
+        ITUtilStructureElement.assertApprove(ITUtilStructureElement.assertDelete(structureElement));
+
+        ITUtilNameElement.assertIsLegacy("Sg1", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys11", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys12", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys13", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys11-Sub111", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys11-Sub112", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys11-Sub113", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys12-Sub121", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys12-Sub122", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys12-Sub123", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys13-Sub131", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys13-Sub132", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys13-Sub133", Boolean.FALSE);
+
+        responsePage = ITUtilStructureElement.assertRead("/SYSTEMGROUP?uuid=" + sg1, 1);
+        structureElement = responsePage.getList().get(0);
+
+        ITUtilStructureElement.assertApprove(ITUtilStructureElement.assertDelete(structureElement));
+
+        ITUtilNameElement.assertIsLegacy("Sg1", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys11", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys12", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys13", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys11-Sub111", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys11-Sub112", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys11-Sub113", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys12-Sub121", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys12-Sub122", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys12-Sub123", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys13-Sub131", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys13-Sub132", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys13-Sub133", Boolean.TRUE);
+    }
+
+    @Test
+    void isLegacyNameSystemStructureDeviceStructureIndex() {
+        // purpose
+        //     test if name is legacy name
+        //
+        // what - combination of
+        //     read        exists name
+        //     read        is legacy name
+        //     read        is valid to create name
+        //     create      create names
+        //     delete      delete structures
+        //     patch       approve structures
+        //
+        // note
+        //     delete device type
+        //     delete device group
+        //     delete discipline
+
+        ResponsePageStructureElements responsePage = null;
+        StructureElementCommand structureElement = null;
+
+        ITUtilNameElement.assertExists("Sg2:Di2-Dt211-211", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sg2:Di2-Dt212-212", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sg2:Di2-Dt213-213", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys22:Di2-Dt221-221", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys22:Di2-Dt222-222", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys22:Di2-Dt223-223", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys23-Sub231:Di2-Dt231-231", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys23-Sub232:Di2-Dt232-232", Boolean.TRUE);
+        ITUtilNameElement.assertExists("Sys23-Sub233:Di2-Dt233-233", Boolean.TRUE);
+
+        ITUtilNameElement.assertIsLegacy("Sg2:Di2-Dt211-211", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sg2:Di2-Dt212-212", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sg2:Di2-Dt213-213", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys22:Di2-Dt221-221", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys22:Di2-Dt222-222", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys22:Di2-Dt223-223", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys23-Sub231:Di2-Dt231-231", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys23-Sub232:Di2-Dt232-232", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys23-Sub233:Di2-Dt233-233", Boolean.FALSE);
+
+        responsePage = ITUtilStructureElement.assertRead("/DEVICETYPE?uuid=" + dt232, 1);
+        structureElement = responsePage.getList().get(0);
+
+        ITUtilStructureElement.assertApprove(ITUtilStructureElement.assertDelete(structureElement));
+
+        ITUtilNameElement.assertIsLegacy("Sg2:Di2-Dt211-211", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sg2:Di2-Dt212-212", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sg2:Di2-Dt213-213", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys22:Di2-Dt221-221", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys22:Di2-Dt222-222", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys22:Di2-Dt223-223", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys23-Sub231:Di2-Dt231-231", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys23-Sub232:Di2-Dt232-232", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys23-Sub233:Di2-Dt233-233", Boolean.FALSE);
+
+        responsePage = ITUtilStructureElement.assertRead("/DEVICEGROUP?uuid=" + dg22, 1);
+        structureElement = responsePage.getList().get(0);
+
+        ITUtilStructureElement.assertApprove(ITUtilStructureElement.assertDelete(structureElement));
+
+        ITUtilNameElement.assertIsLegacy("Sg2:Di2-Dt211-211", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sg2:Di2-Dt212-212", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sg2:Di2-Dt213-213", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys22:Di2-Dt221-221", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys22:Di2-Dt222-222", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys22:Di2-Dt223-223", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys23-Sub231:Di2-Dt231-231", Boolean.FALSE);
+        ITUtilNameElement.assertIsLegacy("Sys23-Sub232:Di2-Dt232-232", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys23-Sub233:Di2-Dt233-233", Boolean.FALSE);
+
+        responsePage = ITUtilStructureElement.assertRead("/DISCIPLINE?uuid=" + di2, 1);
+        structureElement = responsePage.getList().get(0);
+
+        ITUtilStructureElement.assertApprove(ITUtilStructureElement.assertDelete(structureElement));
+
+        ITUtilNameElement.assertIsLegacy("Sg2:Di2-Dt211-211", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sg2:Di2-Dt212-212", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sg2:Di2-Dt213-213", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys22:Di2-Dt221-221", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys22:Di2-Dt222-222", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys22:Di2-Dt223-223", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys23-Sub231:Di2-Dt231-231", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys23-Sub232:Di2-Dt232-232", Boolean.TRUE);
+        ITUtilNameElement.assertIsLegacy("Sys23-Sub233:Di2-Dt233-233", Boolean.TRUE);
+    }
+
+}