You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2014/05/21 19:56:17 UTC

[03/51] [abbrv] Separating gfac-monitoring implementation

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/errors.properties
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/errors.properties b/modules/gfac/gfac-monitor/src/main/resources/errors.properties
new file mode 100644
index 0000000..88c41b8
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/errors.properties
@@ -0,0 +1,197 @@
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+#
+
+# Directly copied from jglobus. Not a good way to manager error properties.
+1 = Parameter not supported
+2 = The RSL length is greater than the maximum allowed
+3 = No resources available
+4 = Bad directory specified
+5 = The executable does not exist
+6 = Insufficient funds
+7 = Authentication with the remote server failed
+8 = Job cancelled by user
+9 = Job cancelled by system
+
+10 = Data transfer to the server failed
+11 = The stdin file does not exist
+12 = The connection to the server failed (check host and port)
+13 = The provided RSL 'maxtime' value is invalid (not an integer or must be greater than 0)
+14 = The provided RSL 'count' value is invalid (not an integer or must be greater than 0)
+15 = The job manager received an invalid RSL
+16 = Could not connect to job manager
+17 = The job failed when the job manager attempted to run it
+18 = Paradyn error
+19 = The provided RSL 'jobtype' value is invalid
+
+20 = The provided RSL 'myjob' value is invalid
+21 = The job manager failed to locate an internal script argument file
+22 = The job manager failed to create an internal script argument file
+23 = The job manager detected an invalid job state
+24 = The job manager detected an invalid script response
+25 = The job manager detected an invalid job state
+26 = The provided RSL 'jobtype' value is not supported by this job manager
+27 = Unimplemented
+28 = The job manager failed to create an internal script submission file
+29 = The job manager cannot find the user proxy
+
+30 = The job manager failed to open the user proxy
+31 = The job manager failed to cancel the job as requested
+32 = System memory allocation failed
+33 = The interprocess job communication initialization failed
+34 = The interprocess job communication setup failed
+35 = The provided RSL 'host count' value is invalid
+36 = One of the provided RSL parameters is unsupported
+37 = The provided RSL 'queue' parameter is invalid
+38 = The provided RSL 'project' parameter is invalid
+39 = The provided RSL string includes variables that could not be identified
+
+40 = The provided RSL 'environment' parameter is invalid
+41 = The provided RSL 'dryrun' parameter is invalid
+42 = The provided RSL is invalid (an empty string)
+43 = The job manager failed to stage the executable
+44 = The job manager failed to stage the stdin file
+45 = The requested job manager type is invalid
+46 = The provided RSL 'arguments' parameter is invalid
+47 = The gatekeeper failed to run the job manager
+48 = The provided RSL could not be properly parsed
+49 = There is a version mismatch between GRAM components
+
+50 = The provided RSL 'arguments' parameter is invalid
+51 = The provided RSL 'count' parameter is invalid
+52 = The provided RSL 'directory' parameter is invalid
+53 = The provided RSL 'dryrun' parameter is invalid
+54 = The provided RSL 'environment' parameter is invalid
+55 = The provided RSL 'executable' parameter is invalid
+56 = The provided RSL 'host_count' parameter is invalid
+57 = The provided RSL 'jobtype' parameter is invalid
+58 = The provided RSL 'maxtime' parameter is invalid
+59 = The provided RSL 'myjob' parameter is invalid
+
+60 = The provided RSL 'paradyn' parameter is invalid
+61 = The provided RSL 'project' parameter is invalid
+62 = The provided RSL 'queue' parameter is invalid
+63 = The provided RSL 'stderr' parameter is invalid
+64 = The provided RSL 'stdin' parameter is invalid
+65 = The provided RSL 'stdout' parameter is invalid
+66 = The job manager failed to locate an internal script
+67 = The job manager failed on the system call pipe()
+68 = The job manager failed on the system call fcntl()
+69 = The job manager failed to create the temporary stdout filename
+
+70 = The job manager failed to create the temporary stderr filename
+71 = The job manager failed on the system call fork()
+72 = The executable file permissions do not allow execution
+73 = The job manager failed to open stdout
+74 = The job manager failed to open stderr
+75 = The cache file could not be opened in order to relocate the user proxy
+76 = Cannot access cache files in ~/.globus/.gass_cache, check permissions, quota, and disk space
+77 = The job manager failed to insert the contact in the client contact list
+78 = The contact was not found in the job manager's client contact list
+79 = Connecting to the job manager failed.  Possible reasons: job terminated, invalid job contact, network problems, ...
+
+80 = The syntax of the job contact is invalid
+81 = The executable parameter in the RSL is undefined
+82 = The job manager service is misconfigured.  condor arch undefined
+83 = The job manager service is misconfigured.  condor os undefined
+84 = The provided RSL 'min_memory' parameter is invalid
+85 = The provided RSL 'max_memory' parameter is invalid
+86 = The RSL 'min_memory' value is not zero or greater
+87 = The RSL 'max_memory' value is not zero or greater
+88 = The creation of a HTTP message failed
+89 = Parsing incoming HTTP message failed
+
+90 = The packing of information into a HTTP message failed
+91 = An incoming HTTP message did not contain the expected information
+92 = The job manager does not support the service that the client requested
+93 = The gatekeeper failed to find the requested service
+94 = The jobmanager does not accept any new requests (shutting down)
+95 = The client failed to close the listener associated with the callback URL
+96 = The gatekeeper contact cannot be parsed
+97 = The job manager could not find the 'poe' command
+98 = The job manager could not find the 'mpirun' command
+99 = The provided RSL 'start_time' parameter is invalid"
+100 = The provided RSL 'reservation_handle' parameter is invalid
+
+101 = The provided RSL 'max_wall_time' parameter is invalid
+102 = The RSL 'max_wall_time' value is not zero or greater
+103 = The provided RSL 'max_cpu_time' parameter is invalid
+104 = The RSL 'max_cpu_time' value is not zero or greater
+105 = The job manager is misconfigured, a scheduler script is missing
+106 = The job manager is misconfigured, a scheduler script has invalid permissions
+107 = The job manager failed to signal the job
+108 = The job manager did not recognize/support the signal type
+109 = The job manager failed to get the job id from the local scheduler
+
+110 = The job manager is waiting for a commit signal
+111 = The job manager timed out while waiting for a commit signal
+112 = The provided RSL 'save_state' parameter is invalid
+113 = The provided RSL 'restart' parameter is invalid
+114 = The provided RSL 'two_phase' parameter is invalid
+115 = The RSL 'two_phase' value is not zero or greater
+116 = The provided RSL 'stdout_position' parameter is invalid
+117 = The RSL 'stdout_position' value is not zero or greater
+118 = The provided RSL 'stderr_position' parameter is invalid
+119 = The RSL 'stderr_position' value is not zero or greater
+
+120 = The job manager restart attempt failed
+121 = The job state file doesn't exist
+122 = Could not read the job state file
+123 = Could not write the job state file
+124 = The old job manager is still alive
+125 = The job manager state file TTL expired
+126 = It is unknown if the job was submitted
+127 = The provided RSL 'remote_io_url' parameter is invalid
+128 = Could not write the remote io url file
+129 = The standard output/error size is different
+
+130 = The job manager was sent a stop signal (job is still running)
+131 = The user proxy expired (job is still running)
+132 = The job was not submitted by original jobmanager
+133 = The job manager is not waiting for that commit signal
+134 = The provided RSL scheduler specific parameter is invalid
+135 = The job manager could not stage in a file
+136 = The scratch directory could not be created
+137 = The provided 'gass_cache' parameter is invalid
+138 = The RSL contains attributes which are not valid for job submission
+139 = The RSL contains attributes which are not valid for stdio update
+
+140 = The RSL contains attributes which are not valid for job restart
+141 = The provided RSL 'file_stage_in' parameter is invalid
+142 = The provided RSL 'file_stage_in_shared' parameter is invalid
+143 = The provided RSL 'file_stage_out' parameter is invalid
+144 = The provided RSL 'gass_cache' parameter is invalid
+145 = The provided RSL 'file_cleanup' parameter is invalid
+146 = The provided RSL 'scratch_dir' parameter is invalid
+147 = The provided scheduler-specific RSL parameter is invalid
+148 = A required RSL attribute was not defined in the RSL spec
+149 = The gass_cache attribute points to an invalid cache directory
+
+150 = The provided RSL 'save_state' parameter has an invalid value
+151 = The job manager could not open the RSL attribute validation file
+152 = The  job manager could not read the RSL attribute validation file
+153 = The provided RSL 'proxy_timeout' is invalid
+154 = The RSL 'proxy_timeout' value is not greater than zero
+155 = The job manager could not stage out a file
+156 = The job contact string does not match any which the job manager is handling
+157 = Proxy delegation failed
+158 = The job manager could not lock the state lock file
+
+1000 = Failed to start up callback handler
+1003 = Job contact not set

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/AccessPolicy.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/AccessPolicy.json b/modules/gfac/gfac-monitor/src/main/resources/schema/AccessPolicy.json
new file mode 100644
index 0000000..8f6cfe1
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/AccessPolicy.json
@@ -0,0 +1,13 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/AccessPolicy.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Policy.json"}],
+  "properties": {
+    "EndpointID": {
+      "type": "string",
+      "description": "The ID of the Endpoint this AccessPolicy is for"
+    }
+  },
+  "required": ["EndpointID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Activity.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Activity.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Activity.json
new file mode 100644
index 0000000..8bd2495
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Activity.json
@@ -0,0 +1,31 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Activity.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "UserDomainID": {
+      "type": "string",
+      "description": "An ID"
+    },
+    "EndpointID": {
+      "type": "string",
+      "description": "The ID of the Endpoint managing Activity"
+    },
+    "ShareID": {
+      "type": "string",
+      "description": "The ID of the Share servicing this Activity"
+    },
+    "ResourceID": {
+      "type": "string",
+      "description": "The ID of the Resource executing this Activity"
+    },
+    "ActivityID": {
+      "type": "array",
+      "description": "The IDs of other Activities related to this one",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/AdminDomain.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/AdminDomain.json b/modules/gfac/gfac-monitor/src/main/resources/schema/AdminDomain.json
new file mode 100644
index 0000000..8ed4606
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/AdminDomain.json
@@ -0,0 +1,51 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/AdminDomain.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Domain.json"}],
+  "properties": {
+    "Distributed": {
+      "type": "boolean",
+      "description": "true if the services managed by the AdminDomain are geographically distributed"
+    },
+    "Owner": {
+      "type": "array",
+      "description": "Identification of persons or legal entities that own the resources in this AdminDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ServiceID": {
+      "type": "array",
+      "description": "IDs of Services in this AdminDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ChildDomainID": {
+      "type": "array",
+      "description": "IDs of AdminDomains aggregated by this AdminDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ParentDomainID": {
+      "type": "string",
+      "description": "The ID of the AdminDomain that this AdminDomain participates in"
+    },
+    "ComputingServiceID": {
+      "type": "array",
+      "description": "IDs of ComputingServices in this AdminDomain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "StorageServiceID": {
+      "type": "array",
+      "description": "IDs of StorageServices in this AdminDomain",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/ApplicationEnvironment.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/ApplicationEnvironment.json b/modules/gfac/gfac-monitor/src/main/resources/schema/ApplicationEnvironment.json
new file mode 100644
index 0000000..89c78e0
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/ApplicationEnvironment.json
@@ -0,0 +1,86 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ApplicationEnvironment.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "AppName": {
+      "type": "string",
+      "description": "The name of the application"
+    },
+    "AppVersion": {
+      "type": "string",
+      "description": "The version of the application"
+    },
+    "State": {
+      "type": "string",
+      "description": "The current installation state of the application - AppEnvState_t"
+    },
+    "RemovalDate": {
+      "type": "string",
+      "description": "The date/time after which the application may be removed - DateTime_t"
+    },
+    "License": {
+      "type": "string",
+      "description": "The license under which the application is usable - License_t"
+    },
+    "Description": {
+      "type": "string",
+      "description": "A human-readable description of the application"
+    },
+    "BestBenchmark": {
+      "type": "array",
+      "description": "The type(s) of the benchmarks which best describe the sensitivity of this application to the performance of the ExecutionEnvironment - Benchmark_t",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ParallelSupport": {
+      "type": "string",
+      "description": "The type of supported parallel execution - ParallelSupport_t"
+    },
+    "MaxSlots": {
+      "type": "integer",
+      "description": "The maximum number of concurrent slots that may be used to run the application"
+    },
+    "MaxJobs": {
+      "type": "integer",
+      "description": "The maximum number of concurrent jobs that can run the application"
+    },
+    "MaxUserSeats": {
+      "type": "integer",
+      "description": "The maximum number of concurrent users that can run the application"
+    },
+    "FreeSlots": {
+      "type": "integer",
+      "description": "The maximum number slots currently available to run the application"
+    },
+    "FreeJobs": {
+      "type": "integer",
+      "description": "The maximum number of additional jobs that can run the application"
+    },
+    "FreeUserSeats": {
+      "type": "integer",
+      "description": "The maximum number of additional users that can run the application"
+    },
+    "ExecutionEnvironmentID": {
+      "type": "array",
+      "description": "ID(s) of ExecutionEnvironments where this ApplicationEnvironment can be used",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ComputingManagerID": {
+      "type": "string",
+      "description": "ID of the ComputingManager this ApplicationEnvironment is associated with"
+    },
+    "ApplicationHandleID": {
+      "type": "array",
+      "description": "ID(s) of the ApplicationHandles that can be used to refer to this environment",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["AppName","ComputingManagerID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/ApplicationHandle.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/ApplicationHandle.json b/modules/gfac/gfac-monitor/src/main/resources/schema/ApplicationHandle.json
new file mode 100644
index 0000000..e7972e9
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/ApplicationHandle.json
@@ -0,0 +1,21 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ApplicationHandle.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "The type of method used to set up an ApplicationEnvironment - ApplicationHandle_t (open enumeration)"
+    },
+    "Value": {
+      "type": "string",
+      "description": "How to set up the ApplicationEnvironment in the context of the Type"
+    },
+    "ApplicationEnvironmentID": {
+      "type": "string",
+      "description": "The ID of the ApplicationEnvironment this ApplicationHandle refers to"
+    }
+  },
+  "required": ["Type","Value","ApplicationEnvironmentID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Benchmark.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Benchmark.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Benchmark.json
new file mode 100644
index 0000000..2b64261
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Benchmark.json
@@ -0,0 +1,21 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Benchmark.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "The type of the benchmark - Benchmark_t (open enumeration)"
+    },
+    "Value": {
+      "type": "number",
+      "description": "The value of the benchmark"
+    },
+    "ComputingManagerID": {
+      "type": "string",
+      "description": "The ID of the ComputingManager this benchmark is for"
+    }
+  },
+  "required": ["Type","Value"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingActivity.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingActivity.json b/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingActivity.json
new file mode 100644
index 0000000..5fcae72
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingActivity.json
@@ -0,0 +1,165 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingActivity.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Activity.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "closed enumeration ComputingActivityType_t",
+      "enum": ["collectionelement","parallelelement","single","workflownode"]
+    },
+    "IDFromEndpoint": {
+      "type": "string",
+      "description": "The ID assigned by the ComputingEndpoint"
+    },
+    "LocalIDFromManager": {
+      "type": "string",
+      "description": "The local ID assigned by the ComputingManager"
+    },
+    "State": {
+      "type": "array",
+      "description": "open enumeration ComputingActivityState_t",
+      "items": {
+        "type": "string"
+      },
+      "minItems": 1
+    },
+    "RestartState": {
+      "type": "array",
+      "description": "open enumeration ComputingActivityState_t",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ExitCode": {
+      "type": "integer",
+      "description": "The exit code as returned by the main executable code or script of the job"
+    },
+    "ComputingManagerExitCode": {
+      "type": "string",
+      "description": "The exit code provided by the ComputingManager"
+    },
+    "Error": {
+      "type": "array",
+      "description": "The error messages as provided by the software components involved in the management of the job",
+      "items": {
+        "type": "string"
+      }
+    },
+    "WaitingPosition": {
+      "type": "integer",
+      "description": "The position of the job in the queue, if the job is waiting"
+    },
+    "Owner": {
+      "type": "string",
+      "description": "The Grid identity of the job's owner"
+    },
+    "LocalOwner": {
+      "type": "string",
+      "description": "The local user name of the job's owner"
+    },
+    "RequestedTotalWallTime": {
+      "type": "integer",
+      "description": "The total wall clock time requested by the job"
+    },
+    "RequestedTotalCPUTime": {
+      "type": "integer",
+      "description": "The total CPU time requested by the job"
+    },
+    "RequestedSlots": {
+      "type": "integer",
+      "description": "The number of slots requested for the job"
+    },
+    "RequestedApplicationEnvironment": {
+      "type": "array",
+      "description": "The AppName and Version of the requested ApplicationEnvironments",
+      "items": {
+        "type": "string"
+      }
+    },
+    "StdIn": {
+      "type": "string",
+      "description": "The name of the file used for standard input"
+    },
+    "StdOut": {
+      "type": "string",
+      "description": "The name of the file used for standard output"
+    },
+    "StdErr": {
+      "type": "string",
+      "description": "The name of the file used for standard error"
+    },
+    "LogDir": {
+      "type": "string",
+      "description": "The name of the directory which contains job logs"
+    },
+    "ExecutionNode": {
+      "type": "array",
+      "description": "Hostnames associated with the ExecutionEnvironments running the job",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Queue": {
+      "type": "string",
+      "description": "The name of the ComputingManager queue that held the job before execution"
+    },
+    "UsedTotalWallTime": {
+      "type": "integer",
+      "description": "The total wall clock time consumed by the job so far (slots*seconds)"
+    },
+    "UsedTotalCpuTime": {
+      "type": "integer",
+      "description": "The total CPU time consumed by the job so far (seconds)"
+    },
+    "UsedMainMemory": {
+      "type": "integer",
+      "description": "The physical RAM currently used by the job (MB)"
+    },
+    "SubmissionTime": {
+      "type": "string",
+      "description": "The time when the job was submitted to the ComputingEndpoint (DateTime_t)"
+    },
+    "ComputingManagerSubmissionTime": {
+      "type": "string",
+      "description": "The time when the job was submitted to the ComputingManager (DateTime_t)"
+    },
+    "StartTime": {
+      "type": "string",
+      "description": "The time when the ComputingManager started the job (DateTime_t)"
+    },
+    "EndTime": {
+      "type": "string",
+      "description": "The time when the job ended in the Grid layer (DateTime_t)"
+    },
+    "ComputingManagerEndTime": {
+      "type": "string",
+      "description": "The time when the job ended according to the ComputingManager (DateTime_t)"
+    },
+    "WorkingAreaEraseTime": {
+      "type": "string",
+      "description": "The time when working area will be removed from storage (DateTime_t)"
+    },
+    "ProxyExpirationTime": {
+      "type": "string",
+      "description": "The expiration time of the Grid proxy associated with the job (DateTime_t)"
+    },
+    "SubmissionHost": {
+      "type": "string",
+      "description": "The name of the host from which the job was submitted"
+    },
+    "SubmissionClientName": {
+      "type": "string",
+      "description": "The name of the software client used to submit the job"
+    },
+    "OtherMessages": {
+      "type": "array",
+      "description": "Optional messages provided by either the Grid layer or the ComputingManager",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["State","Owner"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingEndpoint.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingEndpoint.json b/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingEndpoint.json
new file mode 100644
index 0000000..f94f889
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingEndpoint.json
@@ -0,0 +1,44 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingEndpoint.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Endpoint.json"}],
+  "properties": {
+    "Staging": {
+      "type": "string",
+      "description": "Supported file staging functionality - Staging_t",
+      "enum": ["none","stagingin","staginginout","stagingout"]
+    },
+    "JobDescription": {
+      "type": "array",
+      "description": "Supported job description languages - JobDescription_t (open Enumeration)",
+      "items": {
+        "type": "string"
+      }
+    },
+    "TotalJobs": {
+      "type": "integer",
+      "description": "The total number of Grid jobs known to the system"
+    },
+    "RunningJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs which are running in an ExecutionEnvironment"
+    },
+    "WaitingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs which are waiting to start executing"
+    },
+    "StagingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs staging files before or after execution"
+    },
+    "SuspendedJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs that started to execute, but are now suspended"
+    },
+    "PreLRMSWaitingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs managed by the Grid software, but not yet passed to the LRMS"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingManager.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingManager.json b/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingManager.json
new file mode 100644
index 0000000..aecb114
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingManager.json
@@ -0,0 +1,117 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingManager.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}],
+  "properties": {
+    "Reservation": {
+      "type": "boolean",
+      "description": "Whether advance reservation is supported (no value implies undefined in ExtendedBoolean_t)"
+    },
+    "BulkSubmission": {
+      "type": "boolean",
+      "description": "Whether multiple jobs can be submitted at once (no value implies undefined in ExtendedBoolean_t)"
+    },
+    "TotalPhysicalCPUs": {
+      "type": "integer",
+      "description": "The total number of physical CPUs managed by this ComputingManager"
+    },
+    "TotalLogicalCPUs": {
+      "type": "integer",
+      "description": "The total number of logical CPUs managed by this ComputingManager"
+    },
+    "TotalSlots": {
+      "type": "integer",
+      "description": "The total number of slots managed by this ComputingManager"
+    },
+    "SlotsUsedByLocalJobs": {
+      "type": "integer",
+      "description": "The number of slots currently used by jobs submitted via a non-Grid interface"
+    },
+    "SlotsUsedByGridJobs": {
+      "type": "integer",
+      "description": "The number of slots currently used by jobs submitted via a non-Grid interface"
+    },
+    "Homogeneous": {
+      "type": "boolean",
+      "description": "Whether this ComputingManager manages only one type of ExecutionEnvironment"
+    },
+    "NetworkInfo": {
+      "type": "array",
+      "description": "The types of internal network connections between ExecutionEnvironments (NetworkInfo_t)",
+      "items": {
+        "type": "string"
+      }
+    },
+    "LocalCPUDistribution": {
+      "type": "boolean",
+      "description": "Classification of the managed ExecutionEnvironments aggregated by the number of logical CPUs"
+    },
+    "WorkingAreaShared": {
+      "type": "boolean",
+      "description": "True if the working area is shared across different ExecutionEnvironments"
+    },
+    "WorkingAreaGuaranteed": {
+      "type": "boolean",
+      "description": "True if the job is guaranteed all of WorkingAreaTotal"
+    },
+    "WorkingAreaTotal": {
+      "type": "integer",
+      "description": "Total size of the working area available to single slot jobs (GB)"
+    },
+    "WorkingAreaFree": {
+      "type": "integer",
+      "description": "The amount of free space in the working area (GB)"
+    },
+    "WorkingAreaLifeTime": {
+      "type": "integer",
+      "description": "The minimum guaranteed lifetime of files created in the working area (seconds)"
+    },
+    "WorkingAreaMultiSlotTotal": {
+      "type": "integer",
+      "description": "The total size of the working area across all ExecutionEnvironments (GB)"
+    },
+    "WorkingAreaMultiSlotFree": {
+      "type": "integer",
+      "description": "The available space in the working area across all ExecutionEnvironments (GB)"
+    },
+    "WorkingAreaMultiSlotLifeTime": {
+      "type": "integer",
+      "description": "The minimum guaranteed lifetime of files created in the working area (seconds)"
+    },
+    "CacheTotal": {
+      "type": "integer",
+      "description": "If local caching of input files is supported, the total size of the area they may be stored in"
+    },
+    "CacheFree": {
+      "type": "integer",
+      "description": "If local caching of input files is supported, the available size of the area they may be stored in"
+    },
+    "TmpDir": {
+      "type": "string",
+      "description": "The absolute path of a temporary directory local to an ExecutionEnvironment"
+    },
+    "ScratchDir": {
+      "type": "string",
+      "description": "The absolute path of a shared directory available for application data"
+    },
+    "ApplicationDir": {
+      "type": "string",
+      "description": "The absolute path of a directory available for installation of persistent application software"
+    },
+    "ApplicationEnvironmentID": {
+      "type": "array",
+      "description": "ID(s) of ApplicationEnvironments provided by this ComputingManager",
+      "items": {
+        "type": "string"
+      }
+    },
+    "BenchmarkID": {
+      "type": "array",
+      "description": "ID(s) of Benchmarks associated with this ComputingManager",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingService.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingService.json b/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingService.json
new file mode 100644
index 0000000..9cfde1b
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingService.json
@@ -0,0 +1,32 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingService.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Service.json"}],
+  "properties": {
+    "TotalJobs": {
+      "type": "integer",
+      "description": "The total number of Grid jobs known to the system"
+    },
+    "RunningJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs which are running in an ExecutionEnvironment"
+    },
+    "WaitingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs which are waiting to start executing"
+    },
+    "StagingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs staging files before or after execution"
+    },
+    "SuspendedJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs that started to execute, but are now suspended"
+    },
+    "PreLRMSWaitingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs managed by the Grid software, but not yet passed to the LRMS"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingShare.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingShare.json b/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingShare.json
new file mode 100644
index 0000000..340c83e
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/ComputingShare.json
@@ -0,0 +1,182 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingShare.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}],
+  "properties": {
+    "MappingQueue": {
+      "type": "string",
+      "description": "The name of the queue in the LRMS where jobs in this share are submitted"
+    },
+    "MaxWallTime": {
+      "type": "integer",
+      "description": "The maximum wall clock time that a single-slot job can run (seconds)"
+    },
+    "MaxMultiSlotWallTime": {
+      "type": "integer",
+      "description": "The maximum wall clock time that a multi-slot job can run (seconds)"
+    },
+    "DefaultWallTime": {
+      "type": "integer",
+      "description": "The default wall clock per slot assumed by the LRMS if a maximum time is not specified (seconds)"
+    },
+    "MaxCPUTime": {
+      "type": "integer",
+      "description": "The maximum pre-slot CPU time that a job can request (seconds)"
+    },
+    "MaxTotalCPUTime": {
+      "type": "integer",
+      "description": "The maximum amount of CPU time that a job can request across all slots assigned to it (seconds)"
+    },
+    "MinCPUTime": {
+      "type": "integer",
+      "description": "The minimum pre-slot CPU time that a job can request (seconds)"
+    },
+    "DefaultCPUTime": {
+      "type": "integer",
+      "description": "The default CPU time limit assumed by the LRMS if a maximum time is not specified (seconds)"
+    },
+    "MaxTotalJobs": {
+      "type": "integer",
+      "description": "The maximum number of jobs that can be in this Share"
+    },
+    "MaxRunningJobs": {
+      "type": "integer",
+      "description": "The maximum number of jobs that can be running in this Share"
+    },
+    "MaxWaitingJobs": {
+      "type": "integer",
+      "description": "The maximum number of jobs that can be waiting in this Share"
+    },
+    "MaxPreLRMSWaitingJobs": {
+      "type": "integer",
+      "description": "The maximum number of jobs that can be waiting in the Grid layer for this Share"
+    },
+    "MaxUserRunningJobs": {
+      "type": "integer",
+      "description": "The maximum number of jobs that can be running in this Share per user"
+    },
+    "MaxSlotsPerJob": {
+      "type": "integer",
+      "description": "The maximum number of slots that can be allocated to a single job in this Share"
+    },
+    "MaxStageInStreams": {
+      "type": "integer",
+      "description": "The maximum number of streams available to stage files in"
+    },
+    "MaxStageOutStreams": {
+      "type": "integer",
+      "description": "The maximum number of streams available to stage files out"
+    },
+    "ScheduingPolicy": {
+      "type": "string",
+      "description": "The scheduling policy used by the share - SchedulingPolicy_t (open enumeration)"
+    },
+    "MaxMainMemory": {
+      "type": "integer",
+      "description": "The maximum amount of physical RAM that a job can use (MB)"
+    },
+    "GuaranteedMainMemory": {
+      "type": "integer",
+      "description": "The amount of physical RAM that a job will have available (MB)"
+    },
+    "MaxVirtualMemory": {
+      "type": "integer",
+      "description": "The maximum amount memory (RAM+swap) that a job can use (MB)"
+    },
+    "GuaranteedVirtualMemory": {
+      "type": "integer",
+      "description": "The amount of memory (RAM+swap) that a job will have available (MB)"
+    },
+    "MaxDiskSpace": {
+      "type": "integer",
+      "description": "The maximum disk space that a job can use in the working area (GB)"
+    },
+    "DefaultStorageServiceID": {
+      "type": "string",
+      "description": "The ID of the default StorageService used to store files"
+    },
+    "Preemption": {
+      "type": "boolean",
+      "description": "Whether jobs can be preempted and resumed (no value implies undefined in ExtendedBoolean_t)"
+    },
+    "ServingState": {
+      "type": "string",
+      "description": "How the Share is currently serving jobs",
+      "enum": ["closed","draining","production","queueing"]
+    },
+    "TotalJobs": {
+      "type": "integer",
+      "description": "The total number of jobs in any state"
+    },
+    "RunningJobs": {
+      "type": "integer",
+      "description": "The number of running jobs submitted through Grid or non-Grid interfaces"
+    },
+    "LocalRunningJobs": {
+      "type": "integer",
+      "description": "The number of running jobs submitted using non-Grid interfaces"
+    },
+    "WaitingJobs": {
+      "type": "integer",
+      "description": "The number of waiting jobs submitted through Grid or non-Grid interfaces"
+    },
+    "LocalWaitingJobs": {
+      "type": "integer",
+      "description": "The number of waiting jobs submitted using non-Grid interfaces"
+    },
+    "SuspendedJobs": {
+      "type": "integer",
+      "description": "The number of suspended jobs submitted through Grid or non-Grid interfaces"
+    },
+    "LocalSuspendedJobs": {
+      "type": "integer",
+      "description": "The number of suspended jobs submitted using non-Grid interfaces"
+    },
+    "StagingJobs": {
+      "type": "integer",
+      "description": "The number of jobs staging files before or after execution"
+    },
+    "PreLRMSWaitingJobs": {
+      "type": "integer",
+      "description": "The number of Grid jobs which have not yet been passed to the LRMS"
+    },
+    "EstimatedAverageWaitingTime": {
+      "type": "integer",
+      "description": "An estimate of the average time a job will wait before it starts to execute (seconds)"
+    },
+    "EstimatedWorstWaitingTime": {
+      "type": "integer",
+      "description": "An estimate of the worst-case time a job will wait before it starts to execute (seconds)"
+    },
+    "FreeSlots": {
+      "type": "integer",
+      "description": "The number of slots which are currently available for use"
+    },
+    "FreeSlotsWithDuration": {
+      "type": "string",
+      "description": "The number of slots which are currently available for use and how long they are available"
+    },
+    "UsedSlots": {
+      "type": "integer",
+      "description": "The number of slots currently in use"
+    },
+    "RequestedSlots": {
+      "type": "integer",
+      "description": "The number of slots needd to execute all waiting and staging jobs"
+    },
+    "ReservationPolicy": {
+      "type": "string",
+      "description": "The policy used for advance reservation - ReservationPolicy_t",
+      "enum": ["mandatory","none","optional"]
+    },
+    "Tag": {
+      "type": "array",
+      "description": "UserDomain-defined tags for this Share",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["ServingState"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Contact.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Contact.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Contact.json
new file mode 100644
index 0000000..436b262
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Contact.json
@@ -0,0 +1,32 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Contact.json",
+  "description": "A GLUE 2 Contact",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Detail": {
+      "type": "string",
+      "description": "A URI embedding the contact information"
+    },
+    "Type": {
+      "type": "string",
+      "description": "closed enumeration ContactType_t",
+      "enum": ["general","security","sysadmin","usersupport"]
+    },
+    "ServiceID": {
+      "type": "array",
+      "description": "The IDs of Services associated with this Contact",
+      "items": {
+        "type": "string"
+      }
+    },
+    "DomainID": {
+      "type": "array",
+      "description": "The IDs of Domains associated with this Contact",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/DataStore.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/DataStore.json b/modules/gfac/gfac-monitor/src/main/resources/schema/DataStore.json
new file mode 100644
index 0000000..8f15447
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/DataStore.json
@@ -0,0 +1,30 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/DataStore.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Resource.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "The type of storage medium - DataStoreType_t (disk,optical,tape,...)"
+    },
+    "Latency": {
+      "type": "string",
+      "description": "The latency category under normal operating conditions - AccessLatency_t",
+      "enum": ["nearline","offline","online"]
+    },
+    "TotalSize": {
+      "type": "integer",
+      "description": "The total amount of storage (GB)"
+    },
+    "FreeSize": {
+      "type": "integer",
+      "description": "The amount of available storage (GB)"
+    },
+    "UsedSize": {
+      "type": "integer",
+      "description": "The amount of used storage (GB)"
+    }
+  },
+  "required": ["Type","Latency"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Domain.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Domain.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Domain.json
new file mode 100644
index 0000000..5bd996b
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Domain.json
@@ -0,0 +1,30 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Domain.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Description": {
+      "type": "string",
+      "description": "A description of the Domain"
+    },
+    "WWW": {
+      "type": "array",
+      "description": "URLs of web pages with more information about the Domain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ContactID": {
+      "type": "array",
+      "description": "IDs of Contacts for this Domain",
+      "items": {
+        "type": "string"
+      }
+    },
+    "LocationID": {
+      "type": "string",
+      "description": "The ID of the primary Location for this Domain"
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Endpoint.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Endpoint.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Endpoint.json
new file mode 100644
index 0000000..b75b02a
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Endpoint.json
@@ -0,0 +1,147 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Endpoint.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "URL": {
+      "type": "string",
+      "description": "Network location of the endpoint"
+    },
+    "Capability": {
+      "type": "array",
+      "description": "Capability_t (open enumeration)",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Technology": {
+      "type": "string",
+      "description": "EndpointTechnology_t"
+    },
+    "InterfaceName": {
+      "type": "string",
+      "description": "InterfaceName_t"
+    },
+    "InterfaceVersion": {
+      "type": "string",
+      "description": "The version of the primary interface protocol (free format)"
+    },
+    "InterfaceExtension": {
+      "type": "array",
+      "description": "URIs identifying supported extensions to the interface protocol",
+      "items": {
+        "type": "string"
+      }
+    },
+    "WSDL": {
+      "type": "array",
+      "description": "URLs of WSDL document(s) describing the interface",
+      "items": {
+        "type": "string"
+      }
+    },
+    "SupportedProfile": {
+      "type": "array",
+      "description": "URI(s) identifying supported profiles for the Endpoint",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Semantics": {
+      "type": "array",
+      "description": "URL(s) of documents providing human-readable descriptions of the semantics of the Endpoint",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Implementor": {
+      "type": "string",
+      "description": "The name of the main organization implementing the Endpoint"
+    },
+    "ImplementationName": {
+      "type": "string",
+      "description": "The name of the implementation of the Endpoint"
+    },
+    "ImplementationVersion": {
+      "type": "string",
+      "description": "The version of the implementation of the Endpoint"
+    },
+    "QualityLevel": {
+      "type": "string",
+      "description": "QualityLevel_t",
+      "enum": ["development","pre-production","production","testing"]
+    },
+    "HealthState": {
+      "type": "string",
+      "description": "The operational status of the Endpoint",
+      "enum": ["critical","ok","other","unknown","warning"]
+    },
+    "HealthStateInfo": {
+      "type": "string",
+      "description": "A human-readable explanation of the HealthState of this Endpoint"
+    },
+    "ServingState": {
+      "type": "string",
+      "description": "If the endpoint is accepting and serving requests",
+      "enum": ["closed","draining","production","queueing"]
+    },
+    "StartTime": {
+      "type": "string",
+      "description": "The start time of the Service associated with this Endpoint (DateTime_t)"
+    },
+    "IssuerCA": {
+      "type": "string",
+      "description": "The DN of the CA issuing the certificate presented by this Endpoint"
+    },
+    "TrustedCA": {
+      "type": "array",
+      "description": "DN(s) of CAs trusted by this Endpoint",
+      "items": {
+        "type": "string"
+      }
+    },
+    "DowntimeAnnounce": {
+      "type": "string",
+      "description": "When the next scheduled downtime was announced (DateTime_t)"
+    },
+    "DowntimeStart": {
+      "type": "string",
+      "description": "When the next scheduled downtime will start (DateTime_t)"
+    },
+    "DowntimeEnd": {
+      "type": "string",
+      "description": "When the next scheduled downtime will end (DateTime_t)"
+    },
+    "DowntimeInfo": {
+      "type": "string",
+      "description": "Human-readable of the next scheduled downtime"
+    },
+    "ServiceID": {
+      "type": "string",
+      "description": "The ID of the Service associated with this Endpoint"
+    },
+    "ShareID": {
+      "type": "array",
+      "description": "The IDs of the Shares accessible from this Endpoint",
+      "items": {
+        "type": "string"
+      }
+    },
+    "AccessPolicyID": {
+      "type": "array",
+      "description": "IDs of AccessPolicies associated with this Endpoint",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ActivityID": {
+      "type": "array",
+      "description": "IDs of Activities being managed through this Endpoint",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["InterfaceName","QualityLevel","HealthState","ServingState","ServiceID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Entity.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Entity.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Entity.json
new file mode 100644
index 0000000..5d1ae46
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Entity.json
@@ -0,0 +1,35 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json",
+  "type": "object",
+  "properties": {
+    "CreationTime": {
+      "type": "string",
+      "description": "The creation time of this entity in the format: CCYY-MM-DDThh:mm:ss[Z|(+|-)hh:mm]"
+    },
+    "Validity": {
+      "type": "integer",
+      "description": "The number of seconds after CreationTime that this entity should be considered relevant"
+    },
+    "ID": {
+      "type": "string",
+      "description": "A globally unique identifier for this entity"
+    },
+    "Name": {
+      "type": "string",
+      "description": "A human-readable name"
+    },
+    "OtherInfo": {
+      "type": "array",
+      "description": "Placeholder for information that does not fit in any other attribute",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Extension": {
+      "type": "object",
+      "description": "Key/value pairs enabling the association of extra information not captured by the model"
+    }
+  },
+  "required": ["ID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/ExecutionEnvironment.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/ExecutionEnvironment.json b/modules/gfac/gfac-monitor/src/main/resources/schema/ExecutionEnvironment.json
new file mode 100644
index 0000000..77bf876
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/ExecutionEnvironment.json
@@ -0,0 +1,115 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ExecutionEnvironment.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Resource.json"}],
+  "properties": {
+    "Platform": {
+      "type": "string",
+      "description": "The platform architecture - Platform_t (open enumeration)"
+    },
+    "VirtualMachine": {
+      "type": "boolean",
+      "description": "True if the ExecutionEnvironment is a virtual machine"
+    },
+    "TotalInstances": {
+      "type": "integer",
+      "description": "The total number of ExecutionEnvironment instances"
+    },
+    "UsedInstances": {
+      "type": "integer",
+      "description": "The number of ExecutionEnvironment instances in use"
+    },
+    "UnavailableInstances": {
+      "type": "integer",
+      "description": "The number of ExecutionEnvironment instances that are unavailable"
+    },
+    "PhysicalCPUs": {
+      "type": "integer",
+      "description": "The number of physical CPUs in one ExecutionEnvironment instance"
+    },
+    "LogicalCPUs": {
+      "type": "integer",
+      "description": "The number of logical CPUs in one ExecutionEnvironment instance"
+    },
+    "CPUMultiplicity": {
+      "type": "string",
+      "description": "Information about the CPUs and cores in an execution environment",
+      "enum": ["multicpu-multicore","multicpu-singlecore","singlecpu-multicore","singlecpu-singlecore"]
+    },
+    "CPUVendor": {
+      "type": "string",
+      "description": "The name of the manufacturer of the CPU"
+    },
+    "CPUModel": {
+      "type": "string",
+      "description": "The model of the CPU, as defined by the vendor"
+    },
+    "CPUVersion": {
+      "type": "string",
+      "description": "The specific version name of the CPU, as defined by the vendor"
+    },
+    "CPUClockSpeed": {
+      "type": "integer",
+      "description": "The clock speed of the CPU (MHz)"
+    },
+    "CPUTimeScalingFactor": {
+      "type": "float",
+      "description": "The factor used by the ComputingManager to scale the CPU time limit"
+    },
+    "WallTimeScalingFactor": {
+      "type": "float",
+      "description": "The factor used by the ComputingManager to scale the wallclock time limit"
+    },
+    "MainMemorySize": {
+      "type": "integer",
+      "description": "The total amount of physical RAM in one ExecutionEnvironment instance (MB)"
+    },
+    "VirtualMemorySize": {
+      "type": "integer",
+      "description": "The total amount of virtual memory (RAM+swap) in one ExecutionEnvironment instance (MB)"
+    },
+    "OSFamily": {
+      "type": "string",
+      "description": "The general family of the operating system - OSFamily_t (open enumeration)"
+    },
+    "OSName": {
+      "type": "string",
+      "description": "The specific name of the operating system - OSName_t (open enumeration)"
+    },
+    "OSVersion": {
+      "type": "string",
+      "description": "The version of the operating system, as defined by the vendor"
+    },
+    "ConnectivityIn": {
+      "type": "boolean",
+      "description": "True if direct inbound network connectiity is available to a running job"
+    },
+    "ConnectivityOut": {
+      "type": "boolean",
+      "description": "True if direct outbound network connectiity is available to a running job"
+    },
+    "NetworkInfo": {
+      "type": "array",
+      "description": "The types of internal network connections between ExecutionEnvironments - NetworkInfo_t (open enumeration)",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ApplicationEnvironmentID": {
+      "type": "array",
+      "description": "ID(s) of ApplicationEnvironments available in this ExecutionEnvironment",
+      "items": {
+        "type": "string"
+      }
+    },
+    "BenchmarkID": {
+      "type": "array",
+      "description": "ID(s) of Benchmarks associated with this ExecutionEnvironment",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["Platform","MainMemorySize","OSFamily","ConnectivityIn","ConnectivityOut"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Glue2.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Glue2.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Glue2.json
new file mode 100644
index 0000000..bb80505
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Glue2.json
@@ -0,0 +1,246 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Glue2.json",
+  "description": "A GLUE 2 document",
+  "type": "object",
+  "properties": {
+    "Entity": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}]
+      }
+    },
+    "Location": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Location.json"}]
+      }
+    },
+    "Contact": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Contact.json"}]
+      }
+    },
+    "Domain": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Domain.json"}]
+      }
+    },
+    "AdminDomain": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/AdminDomain.json"}]
+      }
+    },
+    "UserDomain": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/UserDomain.json"}]
+      }
+    },
+    "Service": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Service.json"}]
+      }
+    },
+    "Endpoint": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Endpoint.json"}]
+      }
+    },
+    "Share": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}]
+      }
+    },
+    "Manager": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Manager.json"}]
+      }
+    },
+    "Resource": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Resource.json"}]
+      }
+    },
+    "Activity": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Activity.json"}]
+      }
+    },
+    "Policy": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Policy.json"}]
+      }
+    },
+    "AccessPolicy": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/AccessPolicy.json"}]
+      }
+    },
+    "MappingPolicy": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/MappingPolicy.json"}]
+      }
+    },
+    "ComputingService": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingService.json"}]
+      }
+    },
+    "ComputingEndpoint": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingEndpoint.json"}]
+      }
+    },
+    "ComputingShare": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingShare.json"}]
+      }
+    },
+    "ComputingManager": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingManager.json"}]
+      }
+    },
+    "Benchmark": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Benchmark.json"}]
+      }
+    },
+    "ExecutionEnvironment": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ExecutionEnvironment.json"}]
+      }
+    },
+    "ApplicationEnvironment": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ApplicationEnvironment.json"}]
+      }
+    },
+    "ApplicationHandle": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ApplicationHandle.json"}]
+      }
+    },
+    "ComputingActivity": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ComputingActivity.json"}]
+      }
+    },
+    "ToStorageService": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ToStorageService.json"}]
+      }
+    },
+    "StorageService": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageService.json"}]
+      }
+    },
+    "StorageServiceCapacity": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageServiceCapacity.json"}]
+      }
+    },
+    "StorageAccessProtocol": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageAccessProtocol.json"}]
+      }
+    },
+    "StorageEndpoint": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageEndpoint.json"}]
+      }
+    },
+    "StorageShare": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageShare.json"}]
+      }
+    },
+    "StorageShareCapacity": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageShareCapacity.json"}]
+      }
+    },
+    "StorageManager": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageManager.json"}]
+      }
+    },
+    "DataStore": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/DataStore.json"}]
+      }
+    },
+    "ToComputingService": {
+      "type": "array",
+      "items": {
+        "type": "object",
+        "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ToComputingService.json"}]
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Location.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Location.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Location.json
new file mode 100644
index 0000000..8491cc0
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Location.json
@@ -0,0 +1,47 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Location.json",
+  "description": "A GLUE 2 Location",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Address": {
+      "type": "string",
+      "description": "A free format street address"
+    },
+    "Place": {
+      "type": "string",
+      "description": "Name of town/city"
+    },
+    "Country": {
+      "type": "string",
+      "description": "Name of country"
+    },
+    "PostalCode": {
+      "type": "string",
+      "description": "Postal code"
+    },
+    "Latitude": {
+      "type": "number",
+      "description": "Position north (positive) or south (negative) of the equator in degrees"
+    },
+    "Longitude": {
+      "type": "number",
+      "description": "Position east (positive) or west (negative) of the primary meridian in degrees"
+    },
+    "ServiceID": {
+      "type": "array",
+      "description": "The IDs of Services at this location",
+      "items": {
+        "type": "string"
+      }
+    },
+    "DomainID": {
+      "type": "array",
+      "description": "The IDs of Domains at this location",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Manager.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Manager.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Manager.json
new file mode 100644
index 0000000..d1df50a
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Manager.json
@@ -0,0 +1,28 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Manager.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "ProductName": {
+      "type": "string",
+      "description": "The name of the software product which implements the Manager"
+    },
+    "ProductVersion": {
+      "type": "string",
+      "description": "The version of the software product which implements the Manager"
+    },
+    "ServiceID": {
+      "type": "string",
+      "description": "The ID of the Service this Share participates in"
+    },
+    "ResourceID": {
+      "type": "array",
+      "description": "ID(s) of Resources associated with this Share",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["ProductName","ServiceID","ResourceID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/MappingPolicy.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/MappingPolicy.json b/modules/gfac/gfac-monitor/src/main/resources/schema/MappingPolicy.json
new file mode 100644
index 0000000..268844d
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/MappingPolicy.json
@@ -0,0 +1,13 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/MappingPolicy.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Policy.json"}],
+  "properties": {
+    "ShareID": {
+      "type": "string",
+      "description": "The ID of the Share this MappingPolicy is for"
+    }
+  },
+  "required": ["ShareID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Policy.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Policy.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Policy.json
new file mode 100644
index 0000000..f936699
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Policy.json
@@ -0,0 +1,27 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Policy.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Scheme": {
+      "type": "string",
+      "description": "PolicyScheme_t (open enumeration)"
+    },
+    "Rule": {
+      "type": "array",
+      "description": "Policy rules",
+      "items": {
+        "type": "string"
+      }
+    },
+    "UserDomainID": {
+      "type": "array",
+      "description": "The ID(s) of the UserDomains this Policy applies to",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["Scheme","Rule","UserDomainID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Resource.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Resource.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Resource.json
new file mode 100644
index 0000000..88d08ad
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Resource.json
@@ -0,0 +1,27 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Resource.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "ManagerID": {
+      "type": "string",
+      "description": "The ID of the Manager for this Resource"
+    },
+    "ShareID": {
+      "type": "array",
+      "description": "The ID(s) of the Shares this Resource is part of",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ActivityID": {
+      "type": "array",
+      "description": "The ID(s) of Activities consuming from this Share",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["ManagerID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Service.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Service.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Service.json
new file mode 100644
index 0000000..4662407
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Service.json
@@ -0,0 +1,75 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Service.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Capability": {
+      "type": "array",
+      "description": "Capability_t (open enumeration)",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Type": {
+      "type": "string",
+      "description": "ServiceType_t (open enumeration)"
+    },
+    "QualityLevel": {
+      "type": "string",
+      "description": "QualityLevel_t",
+      "enum": ["development","pre-production","production","testing"]
+    },
+    "StatusInfo": {
+      "type": "array",
+      "description": "URLs of web pages providing additional information",
+      "items": {
+        "type": "string"
+      }
+    },
+    "Complexity": {
+      "type": "string",
+      "description": "A human-readable description of the number of endpoint types, shares, and resources"
+    },
+    "EndpointID": {
+      "type": "array",
+      "description": "The IDs of Endpoints for this Service",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ShareID": {
+      "type": "array",
+      "description": "The IDs of the Shares offered by this Service",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ManagerID": {
+      "type": "array",
+      "description": "The IDs of the Managers of this Service",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ContactID": {
+      "type": "array",
+      "description": "The IDs of Contacts for this Service",
+      "items": {
+        "type": "string"
+      }
+    },
+    "LocationID": {
+      "type": "string",
+      "description": "The ID of the primary Location of this Service"
+    },
+    "ServiceID": {
+      "type": "array",
+      "description": "The IDs of Services related to this Service",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["Type","QualityLevel"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/Share.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/Share.json b/modules/gfac/gfac-monitor/src/main/resources/schema/Share.json
new file mode 100644
index 0000000..258fc1b
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/Share.json
@@ -0,0 +1,45 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Description": {
+      "type": "string",
+      "description": "A human-readable description of the Share"
+    },
+    "EndpointID": {
+      "type": "array",
+      "description": "The ID(s) of the Endpoints that can be used to access this Share",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ResourceID": {
+      "type": "array",
+      "description": "The ID(s) of the Resources associated with this Share",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ServiceID": {
+      "type": "string",
+      "description": "The ID of the Service this Share participates in"
+    },
+    "ActivityID": {
+      "type": "array",
+      "description": "The ID(s) of Activities consuming from this Share",
+      "items": {
+        "type": "string"
+      }
+    },
+    "MappingPolicyID": {
+      "type": "array",
+      "description": "ID(s) of MappingPolicies associated with this Share",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["ServiceID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/StorageAccessProtocol.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/StorageAccessProtocol.json b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageAccessProtocol.json
new file mode 100644
index 0000000..05a830b
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageAccessProtocol.json
@@ -0,0 +1,32 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageAccessProtocol.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "The type of the protocol - StorageAccessProtocol_t"
+    },
+    "Version": {
+      "type": "string",
+      "description": "The version of the protocol supported"
+    },
+    "MaxStreams": {
+      "type": "integer",
+      "description": "The maximum number of parallel network streams which can be usef for a single transfer"
+    },
+    "StorageServiceID": {
+      "type": "string",
+      "description": "The ID of the StorageService this protocol is available for"
+    },
+    "ToComputingServiceID": {
+      "type": "array",
+      "description": "The ID(s) ToComputingService objects that describe connectivity to ComputingServices",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["Type","Version","StorageServiceID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/StorageEndpoint.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/StorageEndpoint.json b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageEndpoint.json
new file mode 100644
index 0000000..38b27c4
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageEndpoint.json
@@ -0,0 +1,8 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageEndpoint.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Endpoint.json"}],
+  "properties": {
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/StorageManager.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/StorageManager.json b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageManager.json
new file mode 100644
index 0000000..f3984f6
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageManager.json
@@ -0,0 +1,8 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageManager.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}],
+  "properties": {
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/StorageService.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/StorageService.json b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageService.json
new file mode 100644
index 0000000..a03d111
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageService.json
@@ -0,0 +1,22 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageService.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Service.json"}],
+  "properties": {
+    "StorageAccessProtocolID": {
+      "type": "array",
+      "description": "The ID(s) of the StorageAccessProtocols supported by this service",
+      "items": {
+        "type": "string"
+      }
+    },
+    "StorageServiceCapacityID": {
+      "type": "array",
+      "description": "The ID(s) of the StorageServiceCapacities for this Service",
+      "items": {
+        "type": "string"
+      }
+    }
+  }
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/StorageServiceCapacity.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/StorageServiceCapacity.json b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageServiceCapacity.json
new file mode 100644
index 0000000..a25c204
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageServiceCapacity.json
@@ -0,0 +1,33 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageServiceCapacity.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "The type of storage capacity - StorageCapacity_t"
+    },
+    "TotalSize": {
+      "type": "integer",
+      "description": "The total amount of storage of this type (GB)"
+    },
+    "FreeSize": {
+      "type": "integer",
+      "description": "The amount of currently available storage of this type (GB)"
+    },
+    "UsedSize": {
+      "type": "integer",
+      "description": "The amount storage of this type in use (GB)"
+    },
+    "ReservedSize": {
+      "type": "integer",
+      "description": "The amount storage of this type which is not in use, but has been reserved for use in use (GB)"
+    },
+    "StorageServiceID": {
+      "type": "string",
+      "description": "The ID of the StorageService this capacity describes"
+    }
+  },
+  "required": ["Type","StorageServiceID"]
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/StorageShare.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/StorageShare.json b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageShare.json
new file mode 100644
index 0000000..9703118
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageShare.json
@@ -0,0 +1,65 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageShare.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Share.json"}],
+  "properties": {
+    "ServingState": {
+      "type": "string",
+      "description": "How the Share is currently serving jobs",
+      "enum": ["closed","draining","production","queueing"]
+    },
+    "Path": {
+      "type": "string",
+      "description": "A default namespace where files are logically placed when they are stored in this Share"
+    },
+    "AccessMode": {
+      "type": "array",
+      "description": "The type of access allowed for this share - AccessMode_t (undefined)",
+      "items": {
+        "type": "string"
+      }
+    },
+    "SharingID": {
+      "type": "string",
+      "description": "A local identifier common to the set of StorageShares which use the same underling extents"
+    },
+    "AccessLatency": {
+      "type": "string",
+      "description": "The maximum latency category under normal operating conditions",
+      "enum": ["nearline","offline","online"]
+    },
+    "RetentionPolicy": {
+      "type": "string",
+      "description": "The quality of data retention - RetentionPolicy_t"
+    },
+    "ExpirationMode": {
+      "type": "array",
+      "description": "Supported file lifetime modes",
+      "items": {
+        "type": "string",
+        "enum": ["neverexpire","releasewhenexpired","warnwhenexpired"]
+      }
+    },
+    "DefaultLifeTime": {
+      "type": "integer",
+      "description": "The default lifetime assigned to a new file"
+    },
+    "MaximumLifeTime": {
+      "type": "integer",
+      "description": "The maximum lifetime that can be requested for a file"
+    },
+    "Tag": {
+      "type": "string",
+      "description": "An identifier defined by a UserDomain"
+    },
+    "StorageShareCapacityID": {
+      "type": "array",
+      "description": "ID of the StorageShareCapacities associated with this share",
+      "items": {
+        "type": "string"
+      }
+    }
+  },
+  "required": ["ServingState","SharingID","AccessLatency"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/StorageShareCapacity.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/StorageShareCapacity.json b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageShareCapacity.json
new file mode 100644
index 0000000..f392c94
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/StorageShareCapacity.json
@@ -0,0 +1,33 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/StorageShareCapacity.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "Type": {
+      "type": "string",
+      "description": "The type of storage capacity - StorageCapacity_t"
+    },
+    "TotalSize": {
+      "type": "integer",
+      "description": "The total amount of storage (GB)"
+    },
+    "FreeSize": {
+      "type": "integer",
+      "description": "The amount of available storage (GB)"
+    },
+    "UsedSize": {
+      "type": "integer",
+      "description": "The amount of used storage (GB)"
+    },
+    "ReservedSize": {
+      "type": "integer",
+      "description": "The amount storage which is not occupied, but has been reserved for use (GB)"
+    },
+    "StorageShareID": {
+      "type": "string",
+      "description": "The ID of the StorageShare related to this capacity"
+    }
+  },
+  "required": ["Type","StorageShareID"]
+}

http://git-wip-us.apache.org/repos/asf/airavata/blob/553caa08/modules/gfac/gfac-monitor/src/main/resources/schema/ToComputingService.json
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/resources/schema/ToComputingService.json b/modules/gfac/gfac-monitor/src/main/resources/schema/ToComputingService.json
new file mode 100644
index 0000000..6d81b80
--- /dev/null
+++ b/modules/gfac/gfac-monitor/src/main/resources/schema/ToComputingService.json
@@ -0,0 +1,32 @@
+{
+  "$schema": "http://json-schema.org/draft-04/schema#",
+  "id": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/ToComputingService.json",
+  "type": "object",
+  "allOf": [{"$ref": "http://schemas.ogf.org/glue/2013/05/spec_2.0_r1/Entity.json"}],
+  "properties": {
+    "NetworkInfo": {
+      "type": "string",
+      "description": "Type of network connections between the Storage and Computing services (NetworkInfo_t)"
+    },
+    "Bandwidth": {
+      "type": "integer",
+      "description": "The normal bandwidth available between the Storage and Computing services (Mb/s)"
+    },
+    "StorageAccessProtocolID": {
+      "type": "array",
+      "description": "IDs of the protocols that can be used to access the StorageService",
+      "items": {
+        "type": "string"
+      }
+    },
+    "ComputingServiceID": {
+      "type": "string",
+      "description": "The ID of the ComputingService"
+    },
+    "StorageServiceID": {
+      "type": "string",
+      "description": "The ID of the StorageService"
+    }
+  },
+  "required": ["ComputingServiceID","StorageServiceID"]
+}