diff --git a/smp-angular/src/app/common/model/resource-metadata-ro.model.ts b/smp-angular/src/app/common/model/resource-metadata-ro.model.ts
new file mode 100644
index 0000000000000000000000000000000000000000..2a63e60f6fbf8b34af2d7a09396b6068d7808bb8
--- /dev/null
+++ b/smp-angular/src/app/common/model/resource-metadata-ro.model.ts
@@ -0,0 +1,7 @@
+export interface ResourceMetadataRo {
+
+  availableDomains: string[];
+
+  availableDocumentTypes: string[];
+
+}
diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ResourceMetadataResult.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ResourceMetadataResult.java
new file mode 100644
index 0000000000000000000000000000000000000000..13f1b42662f5c6fc1aa3b519fe5b8fcb195cc5e5
--- /dev/null
+++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ResourceMetadataResult.java
@@ -0,0 +1,32 @@
+package eu.europa.ec.edelivery.smp.data.ui;
+
+import java.io.Serializable;
+import java.util.*;
+
+/**
+ * @since 5.1
+ * @author Sebastian-Ion TINCU
+ */
+public class ResourceMetadataResult implements Serializable {
+
+    private static final long serialVersionUID = 6677275164291128366L;
+
+    // The set of all the available domain codes
+    private Set<String> availableDomains = new LinkedHashSet<>();
+
+    // The set of all the available document types
+    private Set<String> availableDocumentTypes = new LinkedHashSet<>();
+
+    public ResourceMetadataResult(List<String> domainCodes, List<String> documentTypes) {
+        this.availableDomains.addAll(new TreeSet<>(domainCodes));
+        this.availableDocumentTypes.addAll(new TreeSet<>(documentTypes));
+    }
+
+    public Set<String> getAvailableDomains() {
+        return availableDomains;
+    }
+
+    public Set<String> getAvailableDocumentTypes() {
+        return availableDocumentTypes;
+    }
+}