VOL-4019: Initial commit with grpc nbi, sbi, etcd, kafka and hw management rpcs.

Change-Id: I78feaf7da284028fc61f42c5e0c5f56e72fe9e78
diff --git a/pkg/models/hwcomponents/v1/models.go b/pkg/models/hwcomponents/v1/models.go
new file mode 100644
index 0000000..b7734a8
--- /dev/null
+++ b/pkg/models/hwcomponents/v1/models.go
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2020-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Package v1 stores models for hw components
+package v1
+
+import (
+	dmi "github.com/opencord/device-management-interface/go/dmi"
+
+	timestamp "github.com/golang/protobuf/ptypes/timestamp"
+)
+
+type HwCompRecordV1_0 struct {
+	Name         string                     `json:"name,omitempty"`
+	Class        dmi.ComponentType          `json:"class,omitempty"`
+	Description  string                     `json:"description,omitempty"`
+	Parent       string                     `json:"parent,omitempty"`
+	ParentRelPos int32                      `json:"parent_rel_pos,omitempty"`
+	Children     []string                   `json:"children,omitempty"` // Children stores uuid of all direct child
+	SerialNum    string                     `json:"serial_num,omitempty"`
+	MfgName      string                     `json:"mfg_name,omitempty"`
+	ModelName    string                     `json:"model_name,omitempty"`
+	Alias        string                     `json:"alias,omitempty"`
+	AssetId      string                     `json:"asset_id,omitempty"`
+	IsFru        bool                       `json:"is_fru,omitempty"`
+	MfgDate      *timestamp.Timestamp       `json:"mfg_date,omitempty"`
+	Uri          string                     `json:"uri,omitempty"`
+	Uuid         string                     `json:"uuid,omitempty"`
+	State        *dmi.ComponentState        `json:"state,omitempty"`
+	SensorData   []*dmi.ComponentSensorData `json:"sensor_data,omitempty"`
+	Specific     string                     `json:"specific,omitempty"`
+}