Make key types based on id

This commit separates out the libcper json output by section name.
Previously, each section was

i.e., for e.g., add "Nvidia" for the NVIDIA section
```
  "sections": [
    {
      "Nvidia":{
          "socket": 0
      }
    }
  ]
```
instead of
```
  "sections": [
    {
        "socket": 0
    }
  ]
```

This allows disambiguating between multiple fields with different types
and removes collisions between the field names.

Change-Id: I4e257f1e04fc5fbf2798955d3a5d93214c81f0fc
Signed-off-by: Karthik Rajagopalan <krajagopalan@nvidia.com>
Signed-off-by: Ed Tanous <etanous@nvidia.com>
diff --git a/specification/json/cper-json-section-log.json b/specification/json/cper-json-section-log.json
index 0909197..2cbe621 100644
--- a/specification/json/cper-json-section-log.json
+++ b/specification/json/cper-json-section-log.json
@@ -12,24 +12,132 @@
         "section": {
             "type": "object",
             "oneOf": [
-                { "$ref": "./sections/cper-generic-processor.json" },
-                { "$ref": "./sections/cper-ia32x64-processor.json" },
-                { "$ref": "./sections/cper-arm-processor.json" },
-                { "$ref": "./sections/cper-memory.json" },
-                { "$ref": "./sections/cper-memory2.json" },
-                { "$ref": "./sections/cper-pcie.json" },
-                { "$ref": "./sections/cper-pci-bus.json" },
-                { "$ref": "./sections/cper-pci-component.json" },
-                { "$ref": "./sections/cper-firmware.json" },
-                { "$ref": "./sections/cper-generic-dmar.json" },
-                { "$ref": "./sections/cper-vtd-dmar.json" },
-                { "$ref": "./sections/cper-iommu-dmar.json" },
-                { "$ref": "./sections/cper-ccix-per.json" },
-                { "$ref": "./sections/cper-cxl-protocol.json" },
-                { "$ref": "./sections/cper-cxl-component.json" },
-                { "$ref": "./sections/cper-nvidia.json" },
-                { "$ref": "./sections/cper-ampere.json" },
-                { "$ref": "./sections/cper-unknown.json" }
+                {
+                    "type": "object",
+                    "required": ["GenericProcessor"],
+                    "GenericProcessor": {
+                        "$ref": "./sections/cper-generic-processor.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["Ia32x64Processor"],
+                    "Ia32x64Processor": {
+                        "$ref": "./sections/cper-ia32x64-processor.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["ArmProcessor"],
+                    "ArmProcessor": {
+                        "$ref": "./sections/cper-arm-processor.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["Memory"],
+                    "Memory": {
+                        "$ref": "./sections/cper-memory.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["Memory2"],
+                    "Memory2": {
+                        "$ref": "./sections/cper-memory2.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["Pcie"],
+                    "Pcie": {
+                        "$ref": "./sections/cper-pcie.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["PciBus"],
+                    "PciBus": {
+                        "$ref": "./sections/cper-pci-bus.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["PciComponent"],
+                    "PciComponent": {
+                        "$ref": "./sections/cper-pci-component.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["Firmware"],
+                    "Firmware": {
+                        "$ref": "./sections/cper-firmware.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["GenericDmar"],
+                    "GenericDmar": {
+                        "$ref": "./sections/cper-generic-dmar.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["VtdDmar"],
+                    "VtdDmar": {
+                        "$ref": "./sections/cper-vtd-dmar.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["IommuDmar"],
+                    "IommuDmar": {
+                        "$ref": "./sections/cper-iommu-dmar.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["CcixPer"],
+                    "CcixPer": {
+                        "$ref": "./sections/cper-ccix-per.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["CxlProtocol"],
+                    "CxlProtocol": {
+                        "$ref": "./sections/cper-cxl-protocol.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["CxlComponent"],
+                    "CxlComponent": {
+                        "$ref": "./sections/cper-cxl-component.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["Nvidia"],
+                    "Nvidia": {
+                        "$ref": "./sections/cper-nvidia.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["Ampere"],
+                    "Nvidia": {
+                        "$ref": "./sections/cper-ampere.json"
+                    }
+                },
+                {
+                    "type": "object",
+                    "required": ["Unknown"],
+                    "Unknown": {
+                        "$ref": "./sections/cper-unknown.json"
+                    }
+                }
             ]
         }
     }