diff --git a/src/store/modules/SecurityAndAccess/PoliciesStore.js b/src/store/modules/SecurityAndAccess/PoliciesStore.js
index 1e19552..64bd336 100644
--- a/src/store/modules/SecurityAndAccess/PoliciesStore.js
+++ b/src/store/modules/SecurityAndAccess/PoliciesStore.js
@@ -6,16 +6,22 @@
   state: {
     sshProtocolEnabled: false,
     ipmiProtocolEnabled: false,
+    rtadEnabled: 'Disabled',
+    vtpmEnabled: 'Disabled',
   },
   getters: {
     sshProtocolEnabled: (state) => state.sshProtocolEnabled,
     ipmiProtocolEnabled: (state) => state.ipmiProtocolEnabled,
+    rtadEnabled: (state) => state.rtadEnabled,
+    vtpmEnabled: (state) => state.vtpmEnabled,
   },
   mutations: {
     setSshProtocolEnabled: (state, sshProtocolEnabled) =>
       (state.sshProtocolEnabled = sshProtocolEnabled),
     setIpmiProtocolEnabled: (state, ipmiProtocolEnabled) =>
       (state.ipmiProtocolEnabled = ipmiProtocolEnabled),
+    setRtadEnabled: (state, rtadEnabled) => (state.rtadEnabled = rtadEnabled),
+    setVtpmEnabled: (state, vtpmEnabled) => (state.vtpmEnabled = vtpmEnabled),
   },
   actions: {
     async getNetworkProtocolStatus({ commit }) {
@@ -29,6 +35,15 @@
         })
         .catch((error) => console.log(error));
     },
+    async getBiosStatus({ commit }) {
+      return await api
+        .get('/redfish/v1/Systems/system/Bios')
+        .then((response) => {
+          commit('setRtadEnabled', response.data.Attributes.pvm_rtad);
+          commit('setVtpmEnabled', response.data.Attributes.pvm_vtpm);
+        })
+        .catch((error) => console.log(error));
+    },
     async saveIpmiProtocolState({ commit }, protocolEnabled) {
       commit('setIpmiProtocolEnabled', protocolEnabled);
       const ipmi = {
@@ -81,6 +96,54 @@
           }
         });
     },
+    async saveRtadState({ commit }, updatedRtad) {
+      commit('setRtadEnabled', updatedRtad);
+      return await api
+        .patch('/redfish/v1/Systems/system/Bios/Settings', {
+          Attributes: {
+            pvm_rtad: updatedRtad,
+          },
+        })
+        .then(() => {
+          if (updatedRtad === 'Enabled') {
+            return i18n.t('pagePolicies.toast.successRtadEnabled');
+          } else {
+            return i18n.t('pagePolicies.toast.successRtadDisabled');
+          }
+        })
+        .catch((error) => {
+          console.log(error);
+          if (updatedRtad === 'Enabled') {
+            throw new Error(i18n.t('pagePolicies.toast.errorRtadEnabled'));
+          } else {
+            throw new Error(i18n.t('pagePolicies.toast.errorRtadDisabled'));
+          }
+        });
+    },
+    async saveVtpmState({ commit }, updatedVtpm) {
+      commit('setVtpmEnabled', updatedVtpm);
+      return await api
+        .patch('/redfish/v1/Systems/system/Bios/Settings', {
+          Attributes: {
+            pvm_vtpm: updatedVtpm,
+          },
+        })
+        .then(() => {
+          if (updatedVtpm === 'Enabled') {
+            return i18n.t('pagePolicies.toast.successVtpmEnabled');
+          } else {
+            return i18n.t('pagePolicies.toast.successVtpmDisabled');
+          }
+        })
+        .catch((error) => {
+          console.log(error);
+          if (updatedVtpm === 'Enabled') {
+            throw new Error(i18n.t('pagePolicies.toast.errorVtpmEnabled'));
+          } else {
+            throw new Error(i18n.t('pagePolicies.toast.errorVtpmDisabled'));
+          }
+        });
+    },
   },
 };
 
