OemComputerSystem -> OpenBMCComputerSystem

Rename these and add a version like we've done other places.

Partial fix for #184

Change-Id: I9039974a90f6508bdd474e6363a3df7286b1473c
Signed-off-by: Ed Tanous <ed@tanous.net>
diff --git a/redfish-core/include/generated/enums/oem_computer_system.hpp b/redfish-core/include/generated/enums/open_bmc_computer_system.hpp
similarity index 94%
rename from redfish-core/include/generated/enums/oem_computer_system.hpp
rename to redfish-core/include/generated/enums/open_bmc_computer_system.hpp
index a1a4a6e..aa4539e 100644
--- a/redfish-core/include/generated/enums/oem_computer_system.hpp
+++ b/redfish-core/include/generated/enums/open_bmc_computer_system.hpp
@@ -1,7 +1,7 @@
 #pragma once
 #include <nlohmann/json.hpp>
 
-namespace oem_computer_system
+namespace open_bmc_computer_system
 {
 // clang-format off
 
diff --git a/redfish-core/lib/systems.hpp b/redfish-core/lib/systems.hpp
index 93d4ef5..8c4f991 100644
--- a/redfish-core/lib/systems.hpp
+++ b/redfish-core/lib/systems.hpp
@@ -1965,8 +1965,8 @@
         nlohmann::json& oemPFR =
             asyncResp->res.jsonValue["Oem"]["OpenBmc"]["FirmwareProvisioning"];
         asyncResp->res.jsonValue["Oem"]["OpenBmc"]["@odata.type"] =
-            "#OemComputerSystem.OpenBmc";
-        oemPFR["@odata.type"] = "#OemComputerSystem.FirmwareProvisioning";
+            "#OpenBMCComputerSystem.v1_0_0.OpenBmc";
+        oemPFR["@odata.type"] = "#OpenBMCComputerSystem.FirmwareProvisioning";
 
         if (ec)
         {
diff --git a/redfish-core/schema/oem/openbmc/csdl/OemComputerSystem_v1.xml b/redfish-core/schema/oem/openbmc/csdl/OpenBMCComputerSystem_v1.xml
similarity index 79%
rename from redfish-core/schema/oem/openbmc/csdl/OemComputerSystem_v1.xml
rename to redfish-core/schema/oem/openbmc/csdl/OpenBMCComputerSystem_v1.xml
index 6588f0a..9820b39 100644
--- a/redfish-core/schema/oem/openbmc/csdl/OemComputerSystem_v1.xml
+++ b/redfish-core/schema/oem/openbmc/csdl/OpenBMCComputerSystem_v1.xml
@@ -17,12 +17,23 @@
     </edmx:Reference>
 
     <edmx:DataServices>
-        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OemComputerSystem">
+
+        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OpenBMCComputerSystem">
+            <Annotation Term="Redfish.OwningEntity" String="OpenBMC"/>
+            <Annotation Term="OData.Description" String="OpenBMC extensions to the standard account service."/>
+            <Annotation Term="Redfish.Uris">
+            <Collection>
+                <String>/redfish/v1/Systems/{SystemId}#/OpeBMC/OpenBMCAccountService</String>
+            </Collection>
+            </Annotation>
+        </Schema>
+    
+        <Schema xmlns="http://docs.oasis-open.org/odata/ns/edm" Namespace="OpenBMCComputerSystem.v1_0_0">
             <ComplexType Name="Oem" BaseType="Resource.OemObject">
                 <Annotation Term="OData.AdditionalProperties" Bool="true" />
-                <Annotation Term="OData.Description" String="OemComputerSystem Oem properties." />
+                <Annotation Term="OData.Description" String="OpenBMCComputerSystem Oem properties." />
                 <Annotation Term="OData.AutoExpand"/>
-                <Property Name="OpenBmc" Type="OemComputerSystem.OpenBmc"/>
+                <Property Name="OpenBmc" Type="OpenBMCComputerSystem.OpenBmc"/>
             </ComplexType>
 
             <ComplexType Name="OpenBmc" BaseType="Resource.OemObject">
@@ -30,10 +41,10 @@
                 <Annotation Term="OData.Description" String="Oem properties for OpenBmc." />
                 <Annotation Term="Redfish.DynamicPropertyPatterns">
                     <Collection>
-                        <NavigationProperty Type="OemComputerSystem.FirmwareProvisioning">
+                        <NavigationProperty Type="OpenBMCComputerSystem.FirmwareProvisioning">
                             <Annotation Term="OData.AutoExpand"/>
                             <PropertyValue Property="Pattern" String="[A-Za-z0-9_.:]+" />
-                            <PropertyValue Property="Type" String="OemComputerSystem.FirmwareProvisioning" />
+                            <PropertyValue Property="Type" String="OpenBMCComputerSystem.FirmwareProvisioning" />
                         </NavigationProperty>
                     </Collection>
                 </Annotation>
@@ -42,7 +53,7 @@
             <ComplexType Name="FirmwareProvisioning" BaseType="Resource.OemObject">
                 <Annotation Term="OData.AdditionalProperties" Bool="false" />
                 <Annotation Term="OData.Description" String="Configuration data for platform firmware provisioning." />
-                <Property Name="ProvisioningStatus" Type="OemComputerSystem.FirmwareProvisioningStatus">
+                <Property Name="ProvisioningStatus" Type="OpenBMCComputerSystem.FirmwareProvisioningStatus">
                     <Annotation Term="OData.Permissions" EnumMember="OData.Permission/Read"/>
                     <Annotation Term="OData.Description" String="This indicates platform firmware provisioning state."/>
                     <Annotation Term="OData.LongDescription" String="The value of this property indicating provisioning status of platform firmware."/>
diff --git a/redfish-core/schema/oem/openbmc/json-schema/OemComputerSystem.json b/redfish-core/schema/oem/openbmc/json-schema/OemComputerSystem.json
index 1423af5..5f89659 100644
--- a/redfish-core/schema/oem/openbmc/json-schema/OemComputerSystem.json
+++ b/redfish-core/schema/oem/openbmc/json-schema/OemComputerSystem.json
@@ -1,7 +1,7 @@
 {
-    "$id": "http://redfish.dmtf.org/schemas/v1/OemComputerSystem.json",
+    "$id": "https://github.com/openbmc/bmcweb/tree/master/static/redfish/v1/JsonSchemasOpenBMCComputerSystem.json",
     "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
-    "copyright": "Copyright 2014-2019 DMTF. For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "copyright": "Copyright 2023 OpenBMC.",
     "definitions": {
         "FirmwareProvisioning": {
             "additionalProperties": false,
@@ -57,7 +57,7 @@
         },
         "Oem": {
             "additionalProperties": true,
-            "description": "OemComputerSystem Oem properties.",
+            "description": "OpenBMCComputerSystem Oem properties.",
             "patternProperties": {
                 "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
                     "description": "This property shall specify a valid odata or Redfish property.",
@@ -107,5 +107,5 @@
             "type": "object"
         }
     },
-    "title": "#OemComputerSystem"
+    "title": "#OpenBMCComputerSystem"
 }
diff --git a/redfish-core/schema/oem/openbmc/json-schema/OpenBMCComputerSystem.json b/redfish-core/schema/oem/openbmc/json-schema/OpenBMCComputerSystem.json
new file mode 100644
index 0000000..fe0491a
--- /dev/null
+++ b/redfish-core/schema/oem/openbmc/json-schema/OpenBMCComputerSystem.json
@@ -0,0 +1,8 @@
+{
+    "$id": "https://github.com/openbmc/bmcweb/tree/master/redfish-core/schema/oem/openbmc/json-schema/OpenBMCComputerSystem.json",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
+    "copyright": "Copyright 2024 OpenBMC.",
+    "definitions": {},
+    "owningEntity": "OpenBMC",
+    "title": "#OpenBMCComputerSystem"
+}
diff --git a/redfish-core/schema/oem/openbmc/json-schema/OpenBMCComputerSystem.v1_0_0.json b/redfish-core/schema/oem/openbmc/json-schema/OpenBMCComputerSystem.v1_0_0.json
new file mode 100644
index 0000000..9c005aa
--- /dev/null
+++ b/redfish-core/schema/oem/openbmc/json-schema/OpenBMCComputerSystem.v1_0_0.json
@@ -0,0 +1,112 @@
+{
+    "$id": "https://github.com/openbmc/bmcweb/tree/master/redfish-core/schema/oem/openbmc/json-schema/OpenBMCComputerSystem.v1_0_0.json",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema-v1.json",
+    "copyright": "Copyright 2024 OpenBMC.",
+    "definitions": {
+        "FirmwareProvisioning": {
+            "additionalProperties": false,
+            "description": "Configuration data for platform firmware provisioning.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "integer",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "ProvisioningStatus": {
+                    "anyOf": [
+                        {
+                            "$ref": "https://github.com/openbmc/bmcweb/tree/master/redfish-core/schema/oem/openbmc/json-schema/OpenBMCComputerSystem.json#/definitions/FirmwareProvisioningStatus"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "description": "This indicates platform firmware provisioning state.",
+                    "longDescription": "The value of this property indicating provisioning status of platform firmware.",
+                    "readonly": true
+                }
+            },
+            "type": "object"
+        },
+        "FirmwareProvisioningStatus": {
+            "enum": [
+                "NotProvisioned",
+                "ProvisionedButNotLocked",
+                "ProvisionedAndLocked"
+            ],
+            "enumDescriptions": {
+                "NotProvisioned": "Platform firmware is not provisioned.",
+                "ProvisionedAndLocked": "Platform firmware is provisioned and locked.",
+                "ProvisionedButNotLocked": "Platform firmware is provisioned but not locked."
+            },
+            "enumLongDescriptions": {
+                "NotProvisioned": "Platform firmware is not provisioned.",
+                "ProvisionedAndLocked": "Platform firmware is provisioned and locked. So re-provisioning is not allowed in this state.",
+                "ProvisionedButNotLocked": "Platform firmware is provisioned but not locked. So re-provisioning is allowed in this state."
+            },
+            "type": "string"
+        },
+        "Oem": {
+            "additionalProperties": true,
+            "description": "OpenBMCComputerSystem Oem properties.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "integer",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "OpenBmc": {
+                    "anyOf": [
+                        {
+                            "$ref": "https://github.com/openbmc/bmcweb/tree/master/redfish-core/schema/oem/openbmc/json-schema/OpenBMCComputerSystem.json#/definitions/OpenBmc"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ]
+                }
+            },
+            "type": "object"
+        },
+        "OpenBmc": {
+            "additionalProperties": true,
+            "description": "Oem properties for OpenBmc.",
+            "patternProperties": {
+                "^([a-zA-Z_][a-zA-Z0-9_]*)?@(odata|Redfish|Message)\\.[a-zA-Z_][a-zA-Z0-9_]*$": {
+                    "description": "This property shall specify a valid odata or Redfish property.",
+                    "type": [
+                        "array",
+                        "boolean",
+                        "integer",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        }
+    },
+    "owningEntity": "OpenBMC",
+    "title": "#OpenBMCComputerSystem.v1_0_0"
+}
diff --git a/redfish-core/schema/oem/openbmc/meson.build b/redfish-core/schema/oem/openbmc/meson.build
index 32a3211..5044fe7 100644
--- a/redfish-core/schema/oem/openbmc/meson.build
+++ b/redfish-core/schema/oem/openbmc/meson.build
@@ -2,7 +2,7 @@
 schemas = {
     'insecure-disable-auth': 'OpenBMCAccountService',
     'redfish-oem-manager-fan-data': 'OpenBMCManager',
-    'redfish-provisioning-feature': 'OemComputerSystem',
+    'redfish-provisioning-feature': 'OpenBMCComputerSystem',
     #'vm-nbdproxy': 'OpenBMCVirtualMedia',
 }