diff --git a/QoDProvisioning/Documentation/Pictures/DummyOperatorService-CustomResource.png b/QoDProvisioning/Documentation/Pictures/DummyOperatorService-CustomResource.png
new file mode 100644
index 0000000000000000000000000000000000000000..97b9452c42aba6ac7e5e726d99e176fdb7814786
Binary files /dev/null and b/QoDProvisioning/Documentation/Pictures/DummyOperatorService-CustomResource.png differ
diff --git a/QoDProvisioning/Documentation/Pictures/DummyOperatorService-ResourceInventory.png b/QoDProvisioning/Documentation/Pictures/DummyOperatorService-ResourceInventory.png
new file mode 100644
index 0000000000000000000000000000000000000000..7864d9534f868b101e55ff6d10d0298f443f61a3
Binary files /dev/null and b/QoDProvisioning/Documentation/Pictures/DummyOperatorService-ResourceInventory.png differ
diff --git a/QoDProvisioning/Documentation/Pictures/DummyOperatorService-ServiceOrder.png b/QoDProvisioning/Documentation/Pictures/DummyOperatorService-ServiceOrder.png
new file mode 100644
index 0000000000000000000000000000000000000000..e0054c319c533a78a906fe2222944bfd525b17ed
Binary files /dev/null and b/QoDProvisioning/Documentation/Pictures/DummyOperatorService-ServiceOrder.png differ
diff --git a/QoDProvisioning/DummyOperatorService/OSLArtifacts/DummyOperatorService-CFS-Specification.json b/QoDProvisioning/DummyOperatorService/OSLArtifacts/DummyOperatorService-CFS-Specification.json
new file mode 100644
index 0000000000000000000000000000000000000000..1809856d347612527f7b64f42692dc8b1184388a
--- /dev/null
+++ b/QoDProvisioning/DummyOperatorService/OSLArtifacts/DummyOperatorService-CFS-Specification.json
@@ -0,0 +1,205 @@
+{
+    "name": "Dummy Operator Service - CFS",
+    "description": "Dummy Operator Service - CFS",
+    "lifecycleStatus": "In design",
+    "version": "0.1.0",
+    "validFor": {
+        "endDateTime": "2043-12-31T23:59:59.999Z",
+        "startDateTime": "2024-01-01T00:00:00.001Z"
+    },
+    "isBundle": null,
+    "serviceSpecCharacteristic": [
+        {
+            "name": "qodProv.operation",
+            "configurable": false,
+            "description": null,
+            "extensible": null,
+            "maxCardinality": 1,
+            "minCardinality": 0,
+            "regex": null,
+            "valueType": "TEXT",
+            "serviceSpecCharRelationship": [],
+            "serviceSpecCharacteristicValue": [],
+            "validFor": {
+                "endDateTime": "2043-12-31T23:59:59.999Z",
+                "startDateTime": "2024-01-01T00:00:00.001Z"
+            }
+        },
+        {
+            "name": "qodProv.provisioningId",
+            "configurable": false,
+            "description": null,
+            "extensible": null,
+            "maxCardinality": 1,
+            "minCardinality": 0,
+            "regex": null,
+            "valueType": "TEXT",
+            "serviceSpecCharRelationship": [],
+            "serviceSpecCharacteristicValue": [],
+            "validFor": {
+                "endDateTime": "2043-12-31T23:59:59.999Z",
+                "startDateTime": "2024-01-01T00:00:00.001Z"
+            }
+        },
+        {
+            "name": "qodProv.qosProfile",
+            "configurable": false,
+            "description": null,
+            "extensible": null,
+            "maxCardinality": 1,
+            "minCardinality": 0,
+            "regex": null,
+            "valueType": "TEXT",
+            "serviceSpecCharRelationship": [],
+            "serviceSpecCharacteristicValue": [],
+            "validFor": {
+                "endDateTime": "2043-12-31T23:59:59.999Z",
+                "startDateTime": "2024-01-01T00:00:00.001Z"
+            }
+        },
+        {
+            "name": "qodProv.device.phoneNumber",
+            "configurable": false,
+            "description": null,
+            "extensible": null,
+            "maxCardinality": 1,
+            "minCardinality": 0,
+            "regex": null,
+            "valueType": "TEXT",
+            "serviceSpecCharRelationship": [],
+            "serviceSpecCharacteristicValue": [],
+            "validFor": {
+                "endDateTime": "2043-12-31T23:59:59.999Z",
+                "startDateTime": "2024-01-01T00:00:00.001Z"
+            }
+        },
+        {
+            "name": "qodProv.device.networkAccessIdentifier",
+            "configurable": false,
+            "description": null,
+            "extensible": null,
+            "maxCardinality": 1,
+            "minCardinality": 0,
+            "regex": null,
+            "valueType": "TEXT",
+            "serviceSpecCharRelationship": [],
+            "serviceSpecCharacteristicValue": [],
+            "validFor": {
+                "endDateTime": "2043-12-31T23:59:59.999Z",
+                "startDateTime": "2024-01-01T00:00:00.001Z"
+            }
+        },
+        {
+            "name": "qodProv.device.ipv4Address.publicAddress",
+            "configurable": false,
+            "description": null,
+            "extensible": null,
+            "maxCardinality": 1,
+            "minCardinality": 0,
+            "regex": null,
+            "valueType": null,
+            "serviceSpecCharRelationship": [],
+            "serviceSpecCharacteristicValue": [],
+            "validFor": {
+                "endDateTime": "2043-12-31T23:59:59.999Z",
+                "startDateTime": "2024-01-01T00:00:00.001Z"
+            }
+        },
+        {
+            "name": "qodProv.device.ipv4Address.privateAddress",
+            "configurable": false,
+            "description": null,
+            "extensible": null,
+            "maxCardinality": 1,
+            "minCardinality": 0,
+            "regex": null,
+            "valueType": "TEXT",
+            "serviceSpecCharRelationship": [],
+            "serviceSpecCharacteristicValue": [],
+            "validFor": {
+                "endDateTime": "2043-12-31T23:59:59.999Z",
+                "startDateTime": "2024-01-01T00:00:00.001Z"
+            }
+        },
+        {
+            "name": "qodProv.device.ipv4Address.publicPort",
+            "configurable": false,
+            "description": null,
+            "extensible": null,
+            "maxCardinality": 1,
+            "minCardinality": 0,
+            "regex": null,
+            "valueType": "INTEGER",
+            "serviceSpecCharRelationship": [],
+            "serviceSpecCharacteristicValue": [],
+            "validFor": {
+                "endDateTime": "2043-12-31T23:59:59.999Z",
+                "startDateTime": "2024-01-01T00:00:00.001Z"
+            }
+        },
+        {
+            "name": "qodProv.device.ipv6Address",
+            "configurable": false,
+            "description": null,
+            "extensible": null,
+            "maxCardinality": 1,
+            "minCardinality": 0,
+            "regex": null,
+            "valueType": "TEXT",
+            "serviceSpecCharRelationship": [],
+            "serviceSpecCharacteristicValue": [],
+            "validFor": {
+                "endDateTime": "2043-12-31T23:59:59.999Z",
+                "startDateTime": "2024-01-01T00:00:00.001Z"
+            }
+        },
+        {
+            "name": "qodProv.sink",
+            "configurable": false,
+            "description": null,
+            "extensible": null,
+            "maxCardinality": 1,
+            "minCardinality": 0,
+            "regex": null,
+            "valueType": "TEXT",
+            "serviceSpecCharRelationship": [],
+            "serviceSpecCharacteristicValue": [],
+            "validFor": {
+                "endDateTime": "2043-12-31T23:59:59.999Z",
+                "startDateTime": "2024-01-01T00:00:00.001Z"
+            }
+        },
+        {
+            "name": "qodProv.sinkCredential.credentialType",
+            "configurable": false,
+            "description": null,
+            "extensible": null,
+            "maxCardinality": 1,
+            "minCardinality": 0,
+            "regex": null,
+            "valueType": "TEXT",
+            "serviceSpecCharRelationship": [],
+            "serviceSpecCharacteristicValue": [],
+            "validFor": {
+                "endDateTime": "2043-12-31T23:59:59.999Z",
+                "startDateTime": "2024-01-01T00:00:00.001Z"
+            }
+        },
+        {
+            "name": "camaraResults",
+            "configurable": false,
+            "description": null,
+            "extensible": null,
+            "maxCardinality": 1,
+            "minCardinality": 0,
+            "regex": null,
+            "valueType": "TEXT",
+            "serviceSpecCharRelationship": [],
+            "serviceSpecCharacteristicValue": [],
+            "validFor": {
+                "endDateTime": "2043-12-31T23:59:59.999Z",
+                "startDateTime": "2024-01-01T00:00:00.001Z"
+            }
+        }
+    ]
+}
\ No newline at end of file
diff --git a/QoDProvisioning/DummyOperatorService/OSLArtifacts/cr-template-pre-provision.yaml b/QoDProvisioning/DummyOperatorService/OSLArtifacts/cr-template-pre-provision.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..03fc05bc8ec0ddcb77a898e4253b43c0f8ac591a
--- /dev/null
+++ b/QoDProvisioning/DummyOperatorService/OSLArtifacts/cr-template-pre-provision.yaml
@@ -0,0 +1,7 @@
+apiVersion: org.etsi.osl/v1
+kind: DummyOperatorService
+metadata:
+  name: _to_be_replaced_by_osl
+  namespace: default
+spec:
+  status: "%s"
\ No newline at end of file
diff --git a/QoDProvisioning/DummyOperatorService/OSLArtifacts/cr-template-supervision.yaml b/QoDProvisioning/DummyOperatorService/OSLArtifacts/cr-template-supervision.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..90b3c4696ca92f63c5338fd7356726c84aada5ff
--- /dev/null
+++ b/QoDProvisioning/DummyOperatorService/OSLArtifacts/cr-template-supervision.yaml
@@ -0,0 +1,21 @@
+apiVersion: org.etsi.osl/v1
+kind: DummyOperatorService
+metadata:
+  name: _to_be_replaced_by_osl
+  namespace: default
+spec:
+  qodProv:
+    operation: "%s"
+    provisioningId: "%s"
+    device:
+      phoneNumber: "%s"
+      networkAccessIdentifier: "%s"
+      ipv4Address:
+        publicAddress: "%s"
+        privateAddress: "%s"
+        publicPort: %d
+      ipv6Address: "%s"
+    qosProfile: "%s"
+    sink: "%s"
+    sinkCredential: 
+      credentialType: "%s"
diff --git a/QoDProvisioning/DummyOperatorService/OSLArtifacts/pre_provision_rule.java b/QoDProvisioning/DummyOperatorService/OSLArtifacts/pre_provision_rule.java
new file mode 100644
index 0000000000000000000000000000000000000000..529ab034cf6596cef74db2d750d0d571c76649a9
--- /dev/null
+++ b/QoDProvisioning/DummyOperatorService/OSLArtifacts/pre_provision_rule.java
@@ -0,0 +1,14 @@
+{
+java.util.HashMap<String,String> charvals = new java.util.HashMap<>();
+charvals.put("_CR_SPEC",String.format("""
+apiVersion: org.etsi.osl/v1
+kind: DummyOperatorService
+metadata:
+  name: _to_be_replaced_by_osl
+  namespace: default
+spec:
+  status: "%s"
+"""
+, "RUNNING"));
+setServiceRefCharacteristicsValues("Dummy Operator Service - RFS", charvals);
+}
diff --git a/QoDProvisioning/DummyOperatorService/OSLArtifacts/supervision_rule.java b/QoDProvisioning/DummyOperatorService/OSLArtifacts/supervision_rule.java
new file mode 100644
index 0000000000000000000000000000000000000000..cce5c806c83a7984eabddd5d05f09221bc713b61
--- /dev/null
+++ b/QoDProvisioning/DummyOperatorService/OSLArtifacts/supervision_rule.java
@@ -0,0 +1,28 @@
+{
+java.util.HashMap<String,String> charvals = new java.util.HashMap<>();
+charvals.put("_CR_SPEC",String.format("""
+apiVersion: org.etsi.osl/v1
+kind: DummyOperatorService
+metadata:
+  name: _to_be_replaced_by_osl
+  namespace: default
+spec:
+  qodProv:
+    operation: "%s"
+    provisioningId: "%s"
+    device:
+      phoneNumber: "%s"
+      networkAccessIdentifier: "%s"
+      ipv4Address:
+        publicAddress: "%s"
+        privateAddress: "%s"
+        publicPort: %d
+      ipv6Address: "%s"
+    qosProfile: "%s"
+    sink: "%s"
+    sinkCredential:
+      credentialType: "%s"
+"""
+, getCharValAsString("qodProv.operation"), getCharValAsString("qodProv.provisioningId"), getCharValAsString("qodProv.device.phoneNumber"), getCharValAsString("qodProv.device.networkAccessIdentifier"), getCharValAsString("qodProv.device.ipv4Address.publicAddress"), getCharValAsString("qodProv.device.ipv4Address.privateAddress"), getCharValNumber("qodProv.device.ipv4Address.publicPort"), getCharValAsString("qodProv.device.ipv6Address"), getCharValAsString("qodProv.qosProfile"), getCharValAsString("qodProv.sink"), getCharValAsString("qodProv.sinkCredential.credentialType")));
+setServiceRefCharacteristicsValues("Dummy Operator Service - RFS", charvals);
+}
\ No newline at end of file
diff --git a/QoDProvisioning/DummyOperatorService/crd.yaml b/QoDProvisioning/DummyOperatorService/crd.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..b6e663ff094d37f1f08d4c7d9434a0a66b4ba74c
--- /dev/null
+++ b/QoDProvisioning/DummyOperatorService/crd.yaml
@@ -0,0 +1,70 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+  name: dummy-operator-services.org.etsi.osl
+spec:
+  group: org.etsi.osl
+  versions:
+    - name: v1
+      served: true
+      storage: true
+      schema:
+        openAPIV3Schema:
+          type: object
+          properties:
+            spec:
+              type: object
+              properties:
+                status:
+                  type: string
+                  default: NOT_RUNNING
+                  enum:
+                    - "RUNNING"
+                    - "NOT_RUNNING"
+                qodProv:
+                  type: object
+                  properties:
+                    operation:
+                      type: string
+                    provisioningId:
+                      type: string
+                    device:
+                      type: object
+                      properties:
+                        phoneNumber:
+                          type: string
+                          pattern: '^\+[1-9][0-9]{4,14}$'
+                        networkAccessIdentifier:
+                          type: string
+                        ipv4Address:
+                          type: object
+                          properties:
+                            publicAddress:
+                              type: string
+                            privateAddress:
+                              type: string
+                            publicPort:
+                              type: integer
+                        ipv6Address:
+                          type: string
+                    qosProfile:
+                      type: string
+                    sink:
+                      type: string
+                    sinkCredential:
+                      type: object
+                      properties:
+                        credentialType:
+                          type: string
+                camaraResults:
+                  type: string
+                  default: "[]"
+            status:
+              type: object
+  scope: Namespaced
+  names:
+    plural: dummy-operator-services
+    singular: dummy-operator-service
+    kind: DummyOperatorService
+    shortNames:
+      - dos
diff --git a/QoDProvisioning/DummyOperatorService/example-cr.yaml b/QoDProvisioning/DummyOperatorService/example-cr.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e3239f5813addf57e49f51d25bff5da85c2e98e8
--- /dev/null
+++ b/QoDProvisioning/DummyOperatorService/example-cr.yaml
@@ -0,0 +1,22 @@
+apiVersion: org.etsi.osl/v1
+kind: DummyOperatorService
+metadata:
+  name: example-dummy-operator-service
+  namespace: default
+spec:
+  status: RUNNING
+  qodProv:
+    operation: CREATE
+    provisioningId: 3fa85f64-5717-4562-b3fc-2c963f66afa6
+    device:
+      phoneNumber: "+123456789"
+      networkAccessIdentifier: "123456789@domain.com"
+      ipv4Address:
+        publicAddress: "203.0.113.0"
+        privateAddress: "192.168.1.100"
+        publicPort: 5000
+      ipv6Address: "2001:db8::ff00:42:8329"
+    qosProfile: "QOS_A"
+    sink: "https://endpoint.example.com/sink"
+    sinkCredential: 
+      credentialType: "PLAIN"
diff --git a/QoDProvisioning/Makefile b/QoDProvisioning/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..0a1a348d81a307f83ddc798f2b5477552eae998c
--- /dev/null
+++ b/QoDProvisioning/Makefile
@@ -0,0 +1,20 @@
+
+# Dummy Operator Service
+create-dummy-operator-crd:
+	kubectl apply -f ./DummyOperatorService/crd.yaml
+
+delete-dummy-operator-crd:
+	kubectl delete -f ./DummyOperatorService/crd.yaml || true
+
+create-dummy-operator-cr:
+	kubectl apply -f ./DummyOperatorService/example-cr.yaml
+
+delete-dummy-operator-cr:
+	kubectl delete -f ./DummyOperatorService/example-cr.yaml || true
+
+describe-dummy-operator-cr:
+	kubectl describe dos example-dummy-operator-service || true
+
+
+
+