diff --git a/src/store/index.js b/src/store/index.js
index 2408055..d7c1b22 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -23,6 +23,7 @@
 import ChassisStore from './modules/HardwareStatus/ChassisStore';
 import BmcStore from './modules/HardwareStatus/BmcStore';
 import ProcessorStore from './modules/HardwareStatus/ProcessorStore';
+import AssemblyStore from './modules/HardwareStatus/AssemblyStore';
 import PostCodeLogsStore from './modules/Logs/PostCodeLogsStore';
 import PoliciesStore from './modules/SecurityAndAccess/PoliciesStore';
 import FactoryResetStore from './modules/Operations/FactoryResetStore';
@@ -61,6 +62,7 @@
     chassis: ChassisStore,
     bmc: BmcStore,
     processors: ProcessorStore,
+    assemblies: AssemblyStore,
     postCodeLogs: PostCodeLogsStore,
     virtualMedia: VirtualMediaStore,
     policies: PoliciesStore,
diff --git a/src/store/modules/HardwareStatus/AssemblyStore.js b/src/store/modules/HardwareStatus/AssemblyStore.js
new file mode 100644
index 0000000..56e5631
--- /dev/null
+++ b/src/store/modules/HardwareStatus/AssemblyStore.js
@@ -0,0 +1,66 @@
+import api from '@/store/api';
+import i18n from '@/i18n';
+
+const AssemblyStore = {
+  namespaced: true,
+  state: {
+    assemblies: null,
+  },
+  getters: {
+    assemblies: (state) => state.assemblies,
+  },
+  mutations: {
+    setAssemblyInfo: (state, data) => {
+      state.assemblies = data.map((assembly) => {
+        const {
+          MemberId,
+          PartNumber,
+          SerialNumber,
+          SparePartNumber,
+          Model,
+          Name,
+          Location,
+          LocationIndicatorActive,
+        } = assembly;
+        return {
+          id: MemberId,
+          partNumber: PartNumber,
+          serialNumber: SerialNumber,
+          sparePartNumber: SparePartNumber,
+          model: Model,
+          name: Name,
+          locationNumber: Location?.PartLocation?.ServiceLabel,
+          identifyLed: LocationIndicatorActive,
+          uri: assembly['@odata.id'],
+        };
+      });
+    },
+  },
+  actions: {
+    async getAssemblyInfo({ commit }) {
+      return await api
+        .get('/redfish/v1/Chassis/chassis/Assembly')
+        .then(({ data }) => commit('setAssemblyInfo', data?.Assemblies))
+        .catch((error) => console.log(error));
+    },
+    async updateIdentifyLedValue({ dispatch }, led) {
+      const uri = led.uri;
+      const updatedIdentifyLedValue = {
+        LocationIndicatorActive: led.identifyLed,
+      };
+      return await api.patch(uri, updatedIdentifyLedValue).catch((error) => {
+        dispatch('getAssemblyInfo');
+        console.log('error', error);
+        if (led.identifyLed) {
+          throw new Error(i18n.t('pageInventory.toast.errorEnableIdentifyLed'));
+        } else {
+          throw new Error(
+            i18n.t('pageInventory.toast.errorDisableIdentifyLed')
+          );
+        }
+      });
+    },
+  },
+};
+
+export default AssemblyStore;
