Fix JsonSchema indexes

JsonSchema was throwing errors in the validator, so implement changes to
the update script to add the appropiate indexes.

Tested by:
Schema validator passes on the JsonSchema Fields

Change-Id: I6cb2737901b55c1089aef744d3ce3c3dfe13f17f
Signed-off-by: Ed Tanous <ed.tanous@intel.com>
diff --git a/static/redfish/v1/JsonSchemas/Task/Task.json b/static/redfish/v1/JsonSchemas/Task/Task.json
new file mode 100644
index 0000000..7bbea04
--- /dev/null
+++ b/static/redfish/v1/JsonSchemas/Task/Task.json
@@ -0,0 +1,211 @@
+{
+    "$ref": "#/definitions/Task",
+    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
+    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
+    "definitions": {
+        "Actions": {
+            "additionalProperties": false,
+            "description": "The available actions for this resource.",
+            "longDescription": "This type shall contain the available actions for this resource.",
+            "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",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "Oem": {
+                    "$ref": "#/definitions/OemActions"
+                }
+            },
+            "type": "object"
+        },
+        "OemActions": {
+            "additionalProperties": true,
+            "description": "The available OEM specific actions for this resource.",
+            "longDescription": "This type shall contain any additional OEM actions for this resource.",
+            "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",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {},
+            "type": "object"
+        },
+        "Task": {
+            "additionalProperties": false,
+            "description": "This resource contains information about a specific Task scheduled by or being executed by a Redfish service's Task Service.",
+            "longDescription": "This resource shall be used to represent a task for a Redfish implementation.",
+            "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",
+                        "number",
+                        "null",
+                        "object",
+                        "string"
+                    ]
+                }
+            },
+            "properties": {
+                "@odata.context": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
+                },
+                "@odata.etag": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
+                },
+                "@odata.id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
+                },
+                "@odata.type": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
+                },
+                "Actions": {
+                    "$ref": "#/definitions/Actions",
+                    "description": "The available actions for this resource.",
+                    "longDescription": "The Actions property shall contain the available actions for this resource."
+                },
+                "Description": {
+                    "anyOf": [
+                        {
+                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
+                        },
+                        {
+                            "type": "null"
+                        }
+                    ],
+                    "readonly": true
+                },
+                "EndTime": {
+                    "description": "The date-time stamp that the task was last completed.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall indicate the time the task was completed.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "Id": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
+                    "readonly": true
+                },
+                "Messages": {
+                    "description": "This is an array of messages associated with the task.",
+                    "items": {
+                        "$ref": "http://redfish.dmtf.org/schemas/v1/Message.json#/definitions/Message"
+                    },
+                    "longDescription": "The value of this property shall be an array of messages associated with the task.",
+                    "type": "array"
+                },
+                "Name": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
+                    "readonly": true
+                },
+                "Oem": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
+                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
+                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
+                },
+                "StartTime": {
+                    "description": "The date-time stamp that the task was last started.",
+                    "format": "date-time",
+                    "longDescription": "The value of this property shall indicate the time the task was started.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "TaskMonitor": {
+                    "description": "The URI of the Task Monitor for this task.",
+                    "format": "uri",
+                    "longDescription": "This property shall contain a URI to Task Monitor as defined in the Redfish Specification.",
+                    "readonly": true,
+                    "type": "string"
+                },
+                "TaskState": {
+                    "$ref": "#/definitions/TaskState",
+                    "description": "The state of the task.",
+                    "longDescription": "The value of this property shall indicate the state of the task.  New shall be used to indicate that the task is a new task which has just been instantiated and is in the initial state and indicates it has never been started.  Starting shall be used to indicate that the task is moving from the New, Suspended, or Service states into the Running state.  Running shall be used to indicate that the Task is running.  Suspended shall be used to indicate  that the Task is stopped (e.g., by a user), but can be restarted in a seamless manner.  Interrupted shall be used to indicate  that the Task was interrupted (e.g., by a server crash) in the middle of processing, and the user should either re-run/restart the Task.  Pending shall be used to indicate  that the Task has been queued and will be scheduled for processing as soon as resources are available to handle the request.  Stopping shall be used to indicate that the Task is in the process of moving to a Completed, Killed, or Exception state.  Completed shall be used to indicate that the task has completed normally.  Killed shall be used to indicate  that the task has been stopped by a Kill state change request (non-graceful shutdown).  Exception shall be used to indicate  that the Task is in an abnormal state that might be indicative of an error condition.  Service shall be used to indicate that the Task is in a state that supports problem discovery, or resolution, or both.  This state is used when a corrective action is possible.",
+                    "readonly": true
+                },
+                "TaskStatus": {
+                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Health",
+                    "description": "This is the completion status of the task.",
+                    "longDescription": "The value of this property shall be the completion status of the task, as defined in the Status section of the Redfish specification and shall not be set until the task has completed.",
+                    "readonly": true
+                }
+            },
+            "required": [
+                "Id",
+                "Name"
+            ],
+            "type": "object"
+        },
+        "TaskState": {
+            "enum": [
+                "New",
+                "Starting",
+                "Running",
+                "Suspended",
+                "Interrupted",
+                "Pending",
+                "Stopping",
+                "Completed",
+                "Killed",
+                "Exception",
+                "Service",
+                "Cancelling",
+                "Cancelled"
+            ],
+            "enumDeprecated": {
+                "Killed": "This value has been deprecated and is being replaced by the value Cancelled which has more determinate semantics."
+            },
+            "enumDescriptions": {
+                "Cancelled": "Task has been cancelled by an operator or internal process.",
+                "Cancelling": "Task is in the process of being cancelled.",
+                "Completed": "Task has completed.",
+                "Exception": "Task has stopped due to an exception condition.",
+                "Interrupted": "Task has been interrupted.",
+                "Killed": "Task was terminated.",
+                "New": "A new task.",
+                "Pending": "Task is pending and has not started.",
+                "Running": "Task is running normally.",
+                "Service": "Task is running as a service.",
+                "Starting": "Task is starting.",
+                "Stopping": "Task is in the process of stopping.",
+                "Suspended": "Task has been suspended."
+            },
+            "enumLongDescriptions": {
+                "Cancelled": "This value shall represent that the operation was cancelled either through a Delete on a Task Monitor or Task Resource or by an internal process.",
+                "Cancelling": "This value shall represent that the operation is in the process of being cancelled.",
+                "Completed": "This value shall represent that the operation is complete and completed sucessfully or with warnings.",
+                "Exception": "This value shall represent that the operation is complete and completed with errors.",
+                "Interrupted": "This value shall represent that the operation has been interrupted but is expected to restart and is therefore not complete.",
+                "Killed": "This value shall represent that the operation is complete because the task was killed by an operator.",
+                "New": "This value shall represent that this task is newly created but the operation has not yet started.",
+                "Pending": "This value shall represent that the operation is pending some condition and has not yet begun to execute.",
+                "Running": "This value shall represent that the operation is executing.",
+                "Service": "This value shall represent that the operation is now running as a service and expected to continue operation until stopped or killed.",
+                "Starting": "This value shall represent that the operation is starting.",
+                "Stopping": "This value shall represent that the operation is stopping but is not yet complete.",
+                "Suspended": "This value shall represent that the operation has been suspended but is expected to restart and is therefore not complete."
+            },
+            "type": "string"
+        }
+    },
+    "owningEntity": "DMTF",
+    "title": "#Task.v1_2_0.Task"
+}
\ No newline at end of file
diff --git a/static/redfish/v1/JsonSchemas/Task/index.json b/static/redfish/v1/JsonSchemas/Task/index.json
index 7bbea04..3c5aa33 100644
--- a/static/redfish/v1/JsonSchemas/Task/index.json
+++ b/static/redfish/v1/JsonSchemas/Task/index.json
@@ -1,211 +1,21 @@
 {
-    "$ref": "#/definitions/Task",
-    "$schema": "http://redfish.dmtf.org/schemas/v1/redfish-schema.v1_4_0.json",
-    "copyright": "Copyright 2014-2018 Distributed Management Task Force, Inc. (DMTF). For the full DMTF copyright policy, see http://www.dmtf.org/about/policies/copyright",
-    "definitions": {
-        "Actions": {
-            "additionalProperties": false,
-            "description": "The available actions for this resource.",
-            "longDescription": "This type shall contain the available actions for this resource.",
-            "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",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "Oem": {
-                    "$ref": "#/definitions/OemActions"
-                }
-            },
-            "type": "object"
-        },
-        "OemActions": {
-            "additionalProperties": true,
-            "description": "The available OEM specific actions for this resource.",
-            "longDescription": "This type shall contain any additional OEM actions for this resource.",
-            "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",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {},
-            "type": "object"
-        },
-        "Task": {
-            "additionalProperties": false,
-            "description": "This resource contains information about a specific Task scheduled by or being executed by a Redfish service's Task Service.",
-            "longDescription": "This resource shall be used to represent a task for a Redfish implementation.",
-            "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",
-                        "number",
-                        "null",
-                        "object",
-                        "string"
-                    ]
-                }
-            },
-            "properties": {
-                "@odata.context": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/context"
-                },
-                "@odata.etag": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/etag"
-                },
-                "@odata.id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/id"
-                },
-                "@odata.type": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/odata.v4_0_2.json#/definitions/type"
-                },
-                "Actions": {
-                    "$ref": "#/definitions/Actions",
-                    "description": "The available actions for this resource.",
-                    "longDescription": "The Actions property shall contain the available actions for this resource."
-                },
-                "Description": {
-                    "anyOf": [
-                        {
-                            "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Description"
-                        },
-                        {
-                            "type": "null"
-                        }
-                    ],
-                    "readonly": true
-                },
-                "EndTime": {
-                    "description": "The date-time stamp that the task was last completed.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall indicate the time the task was completed.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "Id": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Id",
-                    "readonly": true
-                },
-                "Messages": {
-                    "description": "This is an array of messages associated with the task.",
-                    "items": {
-                        "$ref": "http://redfish.dmtf.org/schemas/v1/Message.json#/definitions/Message"
-                    },
-                    "longDescription": "The value of this property shall be an array of messages associated with the task.",
-                    "type": "array"
-                },
-                "Name": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Name",
-                    "readonly": true
-                },
-                "Oem": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Oem",
-                    "description": "This is the manufacturer/provider specific extension moniker used to divide the Oem object into sections.",
-                    "longDescription": "The value of this string shall be of the format for the reserved word *Oem*."
-                },
-                "StartTime": {
-                    "description": "The date-time stamp that the task was last started.",
-                    "format": "date-time",
-                    "longDescription": "The value of this property shall indicate the time the task was started.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "TaskMonitor": {
-                    "description": "The URI of the Task Monitor for this task.",
-                    "format": "uri",
-                    "longDescription": "This property shall contain a URI to Task Monitor as defined in the Redfish Specification.",
-                    "readonly": true,
-                    "type": "string"
-                },
-                "TaskState": {
-                    "$ref": "#/definitions/TaskState",
-                    "description": "The state of the task.",
-                    "longDescription": "The value of this property shall indicate the state of the task.  New shall be used to indicate that the task is a new task which has just been instantiated and is in the initial state and indicates it has never been started.  Starting shall be used to indicate that the task is moving from the New, Suspended, or Service states into the Running state.  Running shall be used to indicate that the Task is running.  Suspended shall be used to indicate  that the Task is stopped (e.g., by a user), but can be restarted in a seamless manner.  Interrupted shall be used to indicate  that the Task was interrupted (e.g., by a server crash) in the middle of processing, and the user should either re-run/restart the Task.  Pending shall be used to indicate  that the Task has been queued and will be scheduled for processing as soon as resources are available to handle the request.  Stopping shall be used to indicate that the Task is in the process of moving to a Completed, Killed, or Exception state.  Completed shall be used to indicate that the task has completed normally.  Killed shall be used to indicate  that the task has been stopped by a Kill state change request (non-graceful shutdown).  Exception shall be used to indicate  that the Task is in an abnormal state that might be indicative of an error condition.  Service shall be used to indicate that the Task is in a state that supports problem discovery, or resolution, or both.  This state is used when a corrective action is possible.",
-                    "readonly": true
-                },
-                "TaskStatus": {
-                    "$ref": "http://redfish.dmtf.org/schemas/v1/Resource.json#/definitions/Health",
-                    "description": "This is the completion status of the task.",
-                    "longDescription": "The value of this property shall be the completion status of the task, as defined in the Status section of the Redfish specification and shall not be set until the task has completed.",
-                    "readonly": true
-                }
-            },
-            "required": [
-                "Id",
-                "Name"
-            ],
-            "type": "object"
-        },
-        "TaskState": {
-            "enum": [
-                "New",
-                "Starting",
-                "Running",
-                "Suspended",
-                "Interrupted",
-                "Pending",
-                "Stopping",
-                "Completed",
-                "Killed",
-                "Exception",
-                "Service",
-                "Cancelling",
-                "Cancelled"
-            ],
-            "enumDeprecated": {
-                "Killed": "This value has been deprecated and is being replaced by the value Cancelled which has more determinate semantics."
-            },
-            "enumDescriptions": {
-                "Cancelled": "Task has been cancelled by an operator or internal process.",
-                "Cancelling": "Task is in the process of being cancelled.",
-                "Completed": "Task has completed.",
-                "Exception": "Task has stopped due to an exception condition.",
-                "Interrupted": "Task has been interrupted.",
-                "Killed": "Task was terminated.",
-                "New": "A new task.",
-                "Pending": "Task is pending and has not started.",
-                "Running": "Task is running normally.",
-                "Service": "Task is running as a service.",
-                "Starting": "Task is starting.",
-                "Stopping": "Task is in the process of stopping.",
-                "Suspended": "Task has been suspended."
-            },
-            "enumLongDescriptions": {
-                "Cancelled": "This value shall represent that the operation was cancelled either through a Delete on a Task Monitor or Task Resource or by an internal process.",
-                "Cancelling": "This value shall represent that the operation is in the process of being cancelled.",
-                "Completed": "This value shall represent that the operation is complete and completed sucessfully or with warnings.",
-                "Exception": "This value shall represent that the operation is complete and completed with errors.",
-                "Interrupted": "This value shall represent that the operation has been interrupted but is expected to restart and is therefore not complete.",
-                "Killed": "This value shall represent that the operation is complete because the task was killed by an operator.",
-                "New": "This value shall represent that this task is newly created but the operation has not yet started.",
-                "Pending": "This value shall represent that the operation is pending some condition and has not yet begun to execute.",
-                "Running": "This value shall represent that the operation is executing.",
-                "Service": "This value shall represent that the operation is now running as a service and expected to continue operation until stopped or killed.",
-                "Starting": "This value shall represent that the operation is starting.",
-                "Stopping": "This value shall represent that the operation is stopping but is not yet complete.",
-                "Suspended": "This value shall represent that the operation has been suspended but is expected to restart and is therefore not complete."
-            },
-            "type": "string"
+    "@odata.context": "/redfish/v1/$metadata#JsonSchemaFile.JsonSchemaFile",
+    "@odata.id": "/redfish/v1/JSONSchemas/Task",
+    "@odata.type": "#JsonSchemaFile.v1_0_2.JsonSchemaFile",
+    "Name": "Task Schema File",
+    "Schema": "#Task.Task",
+    "Description": "Task Schema File Location",
+    "Id": "Task",
+    "Languages": [
+        "en"
+    ],
+    "Languages@odata.count": 1,
+    "Location": [
+        {
+            "Language": "en",
+            "PublicationUri": "http://redfish.dmtf.org/schemas/v1/Task.json",
+            "Uri": "/redfish/v1/JSONSchemas/Task/Task.json"
         }
-    },
-    "owningEntity": "DMTF",
-    "title": "#Task.v1_2_0.Task"
+    ],
+    "Location@odata.count": 1
 }
\ No newline at end of file