diff --git a/ui-react/src/api/LoopCache.js b/ui-react/src/api/LoopCache.js
index 3ee5acc..d83e3ce 100644
--- a/ui-react/src/api/LoopCache.js
+++ b/ui-react/src/api/LoopCache.js
@@ -51,6 +51,10 @@
 	getOperationalPolicyConfigurationJson() {
 		return this.loopJsonCache["operationalPolicies"]["0"]["configurationsJson"];
 	}
+	
+	getOperationalPolicyJsonSchema() {
+		return this.loopJsonCache["operationalPolicySchema"];
+	}
 
 	getOperationalPolicies() {
 		return this.loopJsonCache["operationalPolicies"];
diff --git a/ui-react/src/api/LoopService.js b/ui-react/src/api/LoopService.js
index 031ec63..eece20c 100644
--- a/ui-react/src/api/LoopService.js
+++ b/ui-react/src/api/LoopService.js
@@ -104,6 +104,30 @@
 				return "";
 			});
 	}
+	
+	static setOperationalPolicyProperties(loopName, jsonData) {
+		return fetch('/restservices/clds/v2/loop/updateOperationalPolicies/' + loopName, {
+			method: 'POST',
+			credentials: 'same-origin',
+			headers: {
+				"Content-Type": "application/json",
+			},
+			body: JSON.stringify(jsonData),
+		})
+			.then(function (response) {
+				console.debug("updateOperationalPolicies response received: ", response.status);
+				if (response.ok) {
+					return response.text();
+				} else {
+					console.error("updateOperationalPolicies query failed");
+					return "";
+				}
+			})
+			.catch(function (error) {
+				console.error("updateOperationalPolicies error received", error);
+				return "";
+			});
+	}
 
 	static updateGlobalProperties(loopName, jsonData) {
 		return fetch('/restservices/clds/v2/loop/updateGlobalProperties/' + loopName, {
