diff --git a/src/store/modules/Health/ChassisStore.js b/src/store/modules/Health/ChassisStore.js
new file mode 100644
index 0000000..e9e58e7
--- /dev/null
+++ b/src/store/modules/Health/ChassisStore.js
@@ -0,0 +1,55 @@
+import api from '@/store/api';
+
+const ChassisStore = {
+  namespaced: true,
+  state: {
+    chassis: []
+  },
+  getters: {
+    chassis: state => state.chassis
+  },
+  mutations: {
+    setChassisInfo: (state, data) => {
+      state.chassis = data.map(chassis => {
+        const {
+          Id,
+          Status = {},
+          PartNumber,
+          SerialNumber,
+          ChassisType,
+          Manufacturer,
+          PowerState
+        } = chassis;
+
+        return {
+          id: Id,
+          health: Status.Health,
+          partNumber: PartNumber,
+          serialNumber: SerialNumber,
+          chassisType: ChassisType,
+          manufacturer: Manufacturer,
+          powerState: PowerState,
+          statusState: Status.State,
+          healthRollup: Status.HealthRollup
+        };
+      });
+    }
+  },
+  actions: {
+    async getChassisInfo({ commit }) {
+      return await api
+        .get('/redfish/v1/Chassis')
+        .then(({ data: { Members = [] } }) =>
+          Members.map(member => api.get(member['@odata.id']))
+        )
+        .then(promises => api.all(promises))
+        .then(response => {
+          const data = response.map(({ data }) => data);
+          commit('setChassisInfo', data);
+        })
+        .catch(error => console.log(error));
+    }
+  }
+};
+
+export default ChassisStore;
