NONRTRIC-980: Capifcore - fix get all service apis

Issue-ID: NONRTRIC-980
Change-Id: I21f88d0627e33f224bb32c1534e152b206dcd4f5
Signed-off-by: DenisGNoonan <denis.noonan@est.tech>
diff --git a/capifcore/internal/publishservice/publishservice.go b/capifcore/internal/publishservice/publishservice.go
index 54a7f67..a267acf 100644
--- a/capifcore/internal/publishservice/publishservice.go
+++ b/capifcore/internal/publishservice/publishservice.go
@@ -121,16 +121,28 @@
 
 // Retrieve all published APIs.
 func (ps *PublishService) GetApfIdServiceApis(ctx echo.Context, apfId string) error {
-	if !ps.serviceRegister.IsPublishingFunctionRegistered(apfId) {
-		errorMsg := fmt.Sprintf("Unable to get the service due to %s api is only available for publishers", apfId)
-		return sendCoreError(ctx, http.StatusNotFound, errorMsg)
-	}
+	ps.lock.Lock()
+	serviceDescriptions, ok := ps.publishedServices[apfId]
+	ps.lock.Unlock()
 
-	serviceDescriptions := ps.publishedServices[apfId]
-	err := ctx.JSON(http.StatusOK, serviceDescriptions)
-	if err != nil {
-		// Something really bad happened, tell Echo that our handler failed
-		return err
+	if ok {
+		err := ctx.JSON(http.StatusOK, serviceDescriptions)
+		if err != nil {
+			// Something really bad happened, tell Echo that our handler failed
+			return err
+		}
+	} else {
+		if !ps.serviceRegister.IsPublishingFunctionRegistered(apfId) {
+			errorMsg := fmt.Sprintf("Unable to get the service due to %s api is only available for publishers", apfId)
+			return sendCoreError(ctx, http.StatusNotFound, errorMsg)
+		}
+
+		serviceDescriptions = []publishapi.ServiceAPIDescription{}
+		err := ctx.JSON(http.StatusOK, serviceDescriptions)
+		if err != nil {
+			// Something really bad happened, tell Echo that our handler failed
+			return err
+		}
 	}
 	return nil
 }
diff --git a/docs/openapi/Discover_Service.html b/docs/openapi/Discover_Service.html
index d3ce2b2..e6becdb 100644
--- a/docs/openapi/Discover_Service.html
+++ b/docs/openapi/Discover_Service.html
@@ -1611,6 +1611,78 @@
   "description" : "Represents the API version information."
 };
 
+        defs["Altitude"] = {
+  "maximum" : 32767,
+  "minimum" : -32767,
+  "type" : "number",
+  "description" : "Indicates value of altitude.",
+  "format" : "double"
+};
+        defs["Angle"] = {
+  "maximum" : 360,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of angle."
+};
+        defs["Confidence"] = {
+  "maximum" : 100,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of confidence."
+};
+        defs["DateTime"] = {
+  "type" : "string",
+  "description" : "string with format \"date-time\" as defined in OpenAPI.",
+  "format" : "date-time"
+};
+        defs["Float"] = {
+  "type" : "number",
+  "description" : "string with format 'float' as defined in OpenAPI.",
+  "format" : "float"
+};
+        defs["InnerRadius"] = {
+  "maximum" : 327675,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of the inner radius.",
+  "format" : "int32"
+};
+        defs["Ipv4Addr"] = {
+  "type" : "string",
+  "description" : "string identifying a Ipv4 address formatted in the \"dotted decimal\" notation as defined in IETF RFC 1166."
+};
+        defs["Ipv6Addr"] = {
+  "type" : "string",
+  "description" : "string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952. The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall not be used."
+};
+        defs["Orientation"] = {
+  "maximum" : 180,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of orientation angle."
+};
+        defs["Port"] = {
+  "maximum" : 65535,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Unsigned integer with valid values between 0 and 65535."
+};
+        defs["SupportedFeatures"] = {
+  "pattern" : "^[A-Fa-f0-9]*$",
+  "type" : "string",
+  "description" : "A string used to indicate the features supported by an API that is used as defined in clause  6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in  hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\",  \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in  table 5.2.2-3. The most significant character representing the highest-numbered features shall  appear first in the string, and the character representing features 1 to 4 shall appear last  in the string. The list of features and their numbering (starting with 1) are defined  separately for each API. If the string contains a lower number of characters than there are  defined features for an API, all features that would be represented by characters that are not  present in the string are not supported.\n"
+};
+        defs["Uncertainty"] = {
+  "minimum" : 0,
+  "type" : "number",
+  "description" : "Indicates value of uncertainty.",
+  "format" : "float"
+};
+        defs["Uri"] = {
+  "type" : "string",
+  "description" : "string providing an URI formatted according to IETF RFC 3986."
+};
+
     var errs = {};
   </script>
 
@@ -2337,11 +2409,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2411,11 +2485,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2501,11 +2577,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2591,11 +2669,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2665,11 +2745,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2739,11 +2821,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2813,11 +2897,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2887,11 +2973,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2961,11 +3049,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3035,11 +3125,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3109,11 +3201,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3183,11 +3277,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3245,11 +3341,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4387,7 +4485,7 @@
     // Determine if a schema is an array
     this.isArray = !this.isAny && this.schema && this.schema.type === 'array';
 
-    this.isObject = this.schema && (this.schema.type === 'object' || this.schema.properties || this.schema.anyOf || this.schema.oneof || this.schema.allOf);
+    this.isObject = this.schema && (this.schema.type === 'object' || this.schema.properties || this.schema.anyOf || this.schema.oneOf || this.schema.allOf);
 
     // Determine if a schema is a primitive
     this.isPrimitive = !this.isAny && !this.isArray && !this.isObject;
diff --git a/docs/openapi/Events.html b/docs/openapi/Events.html
index e024966..752aa9c 100644
--- a/docs/openapi/Events.html
+++ b/docs/openapi/Events.html
@@ -2015,6 +2015,113 @@
   "description" : "Represents the configuration information for the delivery of notifications over Websockets."
 };
 
+        defs["Altitude"] = {
+  "maximum" : 32767,
+  "minimum" : -32767,
+  "type" : "number",
+  "description" : "Indicates value of altitude.",
+  "format" : "double"
+};
+        defs["Angle"] = {
+  "maximum" : 360,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of angle."
+};
+        defs["Confidence"] = {
+  "maximum" : 100,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of confidence."
+};
+        defs["DateTime"] = {
+  "type" : "string",
+  "description" : "string with format \"date-time\" as defined in OpenAPI.",
+  "format" : "date-time"
+};
+        defs["DateTime_1"] = {
+  "type" : "string",
+  "description" : "string with format 'date-time' as defined in OpenAPI.",
+  "format" : "date-time"
+};
+        defs["DurationMs"] = {
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Unsigned integer identifying a period of time in units of milliseconds."
+};
+        defs["DurationSec"] = {
+  "type" : "integer",
+  "description" : "indicating a time in seconds."
+};
+        defs["Float"] = {
+  "type" : "number",
+  "description" : "string with format 'float' as defined in OpenAPI.",
+  "format" : "float"
+};
+        defs["InnerRadius"] = {
+  "maximum" : 327675,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of the inner radius.",
+  "format" : "int32"
+};
+        defs["Ipv4Addr"] = {
+  "type" : "string",
+  "description" : "string identifying a Ipv4 address formatted in the \"dotted decimal\" notation as defined in IETF RFC 1166."
+};
+        defs["Ipv4Addr_1"] = {
+  "pattern" : "^(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\\.){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$",
+  "type" : "string",
+  "description" : "String identifying a IPv4 address formatted in the 'dotted decimal' notation as defined in RFC 1166.\n",
+  "example" : "198.51.100.1"
+};
+        defs["Ipv6Addr"] = {
+  "type" : "string",
+  "description" : "string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952. The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall not be used."
+};
+        defs["Link"] = {
+  "type" : "string",
+  "description" : "string formatted according to IETF RFC 3986 identifying a referenced resource."
+};
+        defs["Orientation"] = {
+  "maximum" : 180,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of orientation angle."
+};
+        defs["Port"] = {
+  "maximum" : 65535,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Unsigned integer with valid values between 0 and 65535."
+};
+        defs["SamplingRatio"] = {
+  "maximum" : 100,
+  "minimum" : 1,
+  "type" : "integer",
+  "description" : "Unsigned integer indicating Sampling Ratio (see clauses 4.15.1 of 3GPP TS 23.502), expressed in percent. \n"
+};
+        defs["SupportedFeatures"] = {
+  "pattern" : "^[A-Fa-f0-9]*$",
+  "type" : "string",
+  "description" : "A string used to indicate the features supported by an API that is used as defined in clause  6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in  hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\",  \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in  table 5.2.2-3. The most significant character representing the highest-numbered features shall  appear first in the string, and the character representing features 1 to 4 shall appear last  in the string. The list of features and their numbering (starting with 1) are defined  separately for each API. If the string contains a lower number of characters than there are  defined features for an API, all features that would be represented by characters that are not  present in the string are not supported.\n"
+};
+        defs["Uinteger"] = {
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Unsigned Integer, i.e. only value 0 and integers above 0 are permissible."
+};
+        defs["Uncertainty"] = {
+  "minimum" : 0,
+  "type" : "number",
+  "description" : "Indicates value of uncertainty.",
+  "format" : "float"
+};
+        defs["Uri"] = {
+  "type" : "string",
+  "description" : "string providing an URI formatted according to IETF RFC 3986."
+};
+
     var errs = {};
   </script>
 
@@ -2116,7 +2223,9 @@
   &quot;supportedFeatures&quot; : &quot;supportedFeatures&quot;,
   &quot;eventReq&quot; : {
     &quot;grpRepTime&quot; : 0,
-    &quot;partitionCriteria&quot; : [ null, null ],
+    &quot;notifMethod&quot; : &quot;PERIODIC&quot;,
+    &quot;partitionCriteria&quot; : [ &quot;TAC&quot;, &quot;TAC&quot; ],
+    &quot;notifFlag&quot; : &quot;ACTIVATE&quot;,
     &quot;monDur&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;,
     &quot;immRep&quot; : true,
     &quot;maxReportNbr&quot; : 0,
@@ -2127,7 +2236,7 @@
     &quot;requestWebsocketUri&quot; : true,
     &quot;websocketUri&quot; : &quot;websocketUri&quot;
   },
-  &quot;events&quot; : [ null, null ],
+  &quot;events&quot; : [ &quot;SERVICE_API_AVAILABLE&quot;, &quot;SERVICE_API_AVAILABLE&quot; ],
   &quot;requestTestNotification&quot; : true
 }'
 </code></pre>
@@ -2415,6 +2524,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -2500,11 +2611,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2590,11 +2703,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2664,11 +2779,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2738,11 +2855,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2812,11 +2931,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2886,11 +3007,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2960,11 +3083,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3034,11 +3159,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3108,11 +3235,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3182,11 +3311,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3256,11 +3387,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3318,11 +3451,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3696,11 +3831,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3770,11 +3907,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3860,11 +3999,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3950,11 +4091,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4024,11 +4167,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4098,11 +4243,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4172,11 +4319,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4246,11 +4395,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4320,11 +4471,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4394,11 +4547,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4456,11 +4611,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5598,7 +5755,7 @@
     // Determine if a schema is an array
     this.isArray = !this.isAny && this.schema && this.schema.type === 'array';
 
-    this.isObject = this.schema && (this.schema.type === 'object' || this.schema.properties || this.schema.anyOf || this.schema.oneof || this.schema.allOf);
+    this.isObject = this.schema && (this.schema.type === 'object' || this.schema.properties || this.schema.anyOf || this.schema.oneOf || this.schema.allOf);
 
     // Determine if a schema is a primitive
     this.isPrimitive = !this.isAny && !this.isArray && !this.isObject;
diff --git a/docs/openapi/Invoker_Management.html b/docs/openapi/Invoker_Management.html
index bad6278..f87e07a 100644
--- a/docs/openapi/Invoker_Management.html
+++ b/docs/openapi/Invoker_Management.html
@@ -1703,6 +1703,82 @@
   "description" : "Represents the configuration information for the delivery of notifications over Websockets."
 };
 
+        defs["Altitude"] = {
+  "maximum" : 32767,
+  "minimum" : -32767,
+  "type" : "number",
+  "description" : "Indicates value of altitude.",
+  "format" : "double"
+};
+        defs["Angle"] = {
+  "maximum" : 360,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of angle."
+};
+        defs["Confidence"] = {
+  "maximum" : 100,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of confidence."
+};
+        defs["DateTime"] = {
+  "type" : "string",
+  "description" : "string with format \"date-time\" as defined in OpenAPI.",
+  "format" : "date-time"
+};
+        defs["Float"] = {
+  "type" : "number",
+  "description" : "string with format 'float' as defined in OpenAPI.",
+  "format" : "float"
+};
+        defs["InnerRadius"] = {
+  "maximum" : 327675,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of the inner radius.",
+  "format" : "int32"
+};
+        defs["Ipv4Addr"] = {
+  "type" : "string",
+  "description" : "string identifying a Ipv4 address formatted in the \"dotted decimal\" notation as defined in IETF RFC 1166."
+};
+        defs["Ipv6Addr"] = {
+  "type" : "string",
+  "description" : "string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952. The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall not be used."
+};
+        defs["Link"] = {
+  "type" : "string",
+  "description" : "string formatted according to IETF RFC 3986 identifying a referenced resource."
+};
+        defs["Orientation"] = {
+  "maximum" : 180,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of orientation angle."
+};
+        defs["Port"] = {
+  "maximum" : 65535,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Unsigned integer with valid values between 0 and 65535."
+};
+        defs["SupportedFeatures"] = {
+  "pattern" : "^[A-Fa-f0-9]*$",
+  "type" : "string",
+  "description" : "A string used to indicate the features supported by an API that is used as defined in clause  6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in  hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\",  \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in  table 5.2.2-3. The most significant character representing the highest-numbered features shall  appear first in the string, and the character representing features 1 to 4 shall appear last  in the string. The list of features and their numbering (starting with 1) are defined  separately for each API. If the string contains a lower number of characters than there are  defined features for an API, all features that would be represented by characters that are not  present in the string are not supported.\n"
+};
+        defs["Uncertainty"] = {
+  "minimum" : 0,
+  "type" : "number",
+  "description" : "Indicates value of uncertainty.",
+  "format" : "float"
+};
+        defs["Uri"] = {
+  "type" : "string",
+  "description" : "string providing an URI formatted according to IETF RFC 3986."
+};
+
     var errs = {};
   </script>
 
@@ -2074,11 +2150,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2148,11 +2226,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2238,11 +2318,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2328,11 +2410,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2402,11 +2486,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2476,11 +2562,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2550,11 +2638,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2624,11 +2714,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2698,11 +2790,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2772,11 +2866,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2834,11 +2930,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2927,15 +3025,18 @@
     &quot;description&quot; : &quot;description&quot;,
     &quot;apiSuppFeats&quot; : &quot;apiSuppFeats&quot;,
     &quot;aefProfiles&quot; : [ {
+      &quot;protocol&quot; : &quot;HTTP_1_1&quot;,
       &quot;securityMethods&quot; : [ null, null ],
       &quot;versions&quot; : [ {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -2956,11 +3057,13 @@
       }, {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -2979,10 +3082,12 @@
         } ],
         &quot;expiry&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;
       } ],
+      &quot;dataFormat&quot; : &quot;JSON&quot;,
       &quot;domainName&quot; : &quot;domainName&quot;,
       &quot;aefLocation&quot; : {
         &quot;dcId&quot; : &quot;dcId&quot;,
         &quot;geoArea&quot; : {
+          &quot;shape&quot; : &quot;POINT&quot;,
           &quot;point&quot; : {
             &quot;lon&quot; : 36.988422590534526,
             &quot;lat&quot; : -75.5850925717018
@@ -3028,25 +3133,28 @@
       &quot;aefId&quot; : &quot;aefId&quot;,
       &quot;interfaceDescriptions&quot; : [ {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       }, {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       } ]
     }, {
+      &quot;protocol&quot; : &quot;HTTP_1_1&quot;,
       &quot;securityMethods&quot; : [ null, null ],
       &quot;versions&quot; : [ {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -3067,11 +3175,13 @@
       }, {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -3090,10 +3200,12 @@
         } ],
         &quot;expiry&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;
       } ],
+      &quot;dataFormat&quot; : &quot;JSON&quot;,
       &quot;domainName&quot; : &quot;domainName&quot;,
       &quot;aefLocation&quot; : {
         &quot;dcId&quot; : &quot;dcId&quot;,
         &quot;geoArea&quot; : {
+          &quot;shape&quot; : &quot;POINT&quot;,
           &quot;point&quot; : {
             &quot;lon&quot; : 36.988422590534526,
             &quot;lat&quot; : -75.5850925717018
@@ -3139,12 +3251,12 @@
       &quot;aefId&quot; : &quot;aefId&quot;,
       &quot;interfaceDescriptions&quot; : [ {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       }, {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       } ]
@@ -3165,15 +3277,18 @@
     &quot;description&quot; : &quot;description&quot;,
     &quot;apiSuppFeats&quot; : &quot;apiSuppFeats&quot;,
     &quot;aefProfiles&quot; : [ {
+      &quot;protocol&quot; : &quot;HTTP_1_1&quot;,
       &quot;securityMethods&quot; : [ null, null ],
       &quot;versions&quot; : [ {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -3194,11 +3309,13 @@
       }, {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -3217,10 +3334,12 @@
         } ],
         &quot;expiry&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;
       } ],
+      &quot;dataFormat&quot; : &quot;JSON&quot;,
       &quot;domainName&quot; : &quot;domainName&quot;,
       &quot;aefLocation&quot; : {
         &quot;dcId&quot; : &quot;dcId&quot;,
         &quot;geoArea&quot; : {
+          &quot;shape&quot; : &quot;POINT&quot;,
           &quot;point&quot; : {
             &quot;lon&quot; : 36.988422590534526,
             &quot;lat&quot; : -75.5850925717018
@@ -3266,25 +3385,28 @@
       &quot;aefId&quot; : &quot;aefId&quot;,
       &quot;interfaceDescriptions&quot; : [ {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       }, {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       } ]
     }, {
+      &quot;protocol&quot; : &quot;HTTP_1_1&quot;,
       &quot;securityMethods&quot; : [ null, null ],
       &quot;versions&quot; : [ {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -3305,11 +3427,13 @@
       }, {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -3328,10 +3452,12 @@
         } ],
         &quot;expiry&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;
       } ],
+      &quot;dataFormat&quot; : &quot;JSON&quot;,
       &quot;domainName&quot; : &quot;domainName&quot;,
       &quot;aefLocation&quot; : {
         &quot;dcId&quot; : &quot;dcId&quot;,
         &quot;geoArea&quot; : {
+          &quot;shape&quot; : &quot;POINT&quot;,
           &quot;point&quot; : {
             &quot;lon&quot; : 36.988422590534526,
             &quot;lat&quot; : -75.5850925717018
@@ -3377,12 +3503,12 @@
       &quot;aefId&quot; : &quot;aefId&quot;,
       &quot;interfaceDescriptions&quot; : [ {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       }, {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       } ]
@@ -3679,6 +3805,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -3750,11 +3878,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3813,11 +3943,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3876,11 +4008,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3950,11 +4084,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4040,11 +4176,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4130,11 +4268,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4204,11 +4344,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4278,11 +4420,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4352,11 +4496,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4426,11 +4572,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4500,11 +4648,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4574,11 +4724,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4648,11 +4800,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4722,11 +4876,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4796,11 +4952,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4858,11 +5016,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4951,15 +5111,18 @@
     &quot;description&quot; : &quot;description&quot;,
     &quot;apiSuppFeats&quot; : &quot;apiSuppFeats&quot;,
     &quot;aefProfiles&quot; : [ {
+      &quot;protocol&quot; : &quot;HTTP_1_1&quot;,
       &quot;securityMethods&quot; : [ null, null ],
       &quot;versions&quot; : [ {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -4980,11 +5143,13 @@
       }, {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -5003,10 +5168,12 @@
         } ],
         &quot;expiry&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;
       } ],
+      &quot;dataFormat&quot; : &quot;JSON&quot;,
       &quot;domainName&quot; : &quot;domainName&quot;,
       &quot;aefLocation&quot; : {
         &quot;dcId&quot; : &quot;dcId&quot;,
         &quot;geoArea&quot; : {
+          &quot;shape&quot; : &quot;POINT&quot;,
           &quot;point&quot; : {
             &quot;lon&quot; : 36.988422590534526,
             &quot;lat&quot; : -75.5850925717018
@@ -5052,25 +5219,28 @@
       &quot;aefId&quot; : &quot;aefId&quot;,
       &quot;interfaceDescriptions&quot; : [ {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       }, {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       } ]
     }, {
+      &quot;protocol&quot; : &quot;HTTP_1_1&quot;,
       &quot;securityMethods&quot; : [ null, null ],
       &quot;versions&quot; : [ {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -5091,11 +5261,13 @@
       }, {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -5114,10 +5286,12 @@
         } ],
         &quot;expiry&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;
       } ],
+      &quot;dataFormat&quot; : &quot;JSON&quot;,
       &quot;domainName&quot; : &quot;domainName&quot;,
       &quot;aefLocation&quot; : {
         &quot;dcId&quot; : &quot;dcId&quot;,
         &quot;geoArea&quot; : {
+          &quot;shape&quot; : &quot;POINT&quot;,
           &quot;point&quot; : {
             &quot;lon&quot; : 36.988422590534526,
             &quot;lat&quot; : -75.5850925717018
@@ -5163,12 +5337,12 @@
       &quot;aefId&quot; : &quot;aefId&quot;,
       &quot;interfaceDescriptions&quot; : [ {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       }, {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       } ]
@@ -5189,15 +5363,18 @@
     &quot;description&quot; : &quot;description&quot;,
     &quot;apiSuppFeats&quot; : &quot;apiSuppFeats&quot;,
     &quot;aefProfiles&quot; : [ {
+      &quot;protocol&quot; : &quot;HTTP_1_1&quot;,
       &quot;securityMethods&quot; : [ null, null ],
       &quot;versions&quot; : [ {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -5218,11 +5395,13 @@
       }, {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -5241,10 +5420,12 @@
         } ],
         &quot;expiry&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;
       } ],
+      &quot;dataFormat&quot; : &quot;JSON&quot;,
       &quot;domainName&quot; : &quot;domainName&quot;,
       &quot;aefLocation&quot; : {
         &quot;dcId&quot; : &quot;dcId&quot;,
         &quot;geoArea&quot; : {
+          &quot;shape&quot; : &quot;POINT&quot;,
           &quot;point&quot; : {
             &quot;lon&quot; : 36.988422590534526,
             &quot;lat&quot; : -75.5850925717018
@@ -5290,25 +5471,28 @@
       &quot;aefId&quot; : &quot;aefId&quot;,
       &quot;interfaceDescriptions&quot; : [ {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       }, {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       } ]
     }, {
+      &quot;protocol&quot; : &quot;HTTP_1_1&quot;,
       &quot;securityMethods&quot; : [ null, null ],
       &quot;versions&quot; : [ {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -5329,11 +5513,13 @@
       }, {
         &quot;apiVersion&quot; : &quot;apiVersion&quot;,
         &quot;custOperations&quot; : [ {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         }, {
-          &quot;operations&quot; : [ null, null ],
+          &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+          &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
           &quot;description&quot; : &quot;description&quot;,
           &quot;custOpName&quot; : &quot;custOpName&quot;
         } ],
@@ -5352,10 +5538,12 @@
         } ],
         &quot;expiry&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;
       } ],
+      &quot;dataFormat&quot; : &quot;JSON&quot;,
       &quot;domainName&quot; : &quot;domainName&quot;,
       &quot;aefLocation&quot; : {
         &quot;dcId&quot; : &quot;dcId&quot;,
         &quot;geoArea&quot; : {
+          &quot;shape&quot; : &quot;POINT&quot;,
           &quot;point&quot; : {
             &quot;lon&quot; : 36.988422590534526,
             &quot;lat&quot; : -75.5850925717018
@@ -5401,12 +5589,12 @@
       &quot;aefId&quot; : &quot;aefId&quot;,
       &quot;interfaceDescriptions&quot; : [ {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       }, {
         &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-        &quot;securityMethods&quot; : [ null, null ],
+        &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
         &quot;port&quot; : 9606,
         &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
       } ]
@@ -5661,6 +5849,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -5746,11 +5936,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5824,11 +6016,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5898,11 +6092,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5972,11 +6168,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6046,11 +6244,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6120,11 +6320,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6194,11 +6396,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6268,11 +6472,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6342,11 +6548,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6416,11 +6624,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6490,11 +6700,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6564,11 +6776,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6626,11 +6840,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6978,6 +7194,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -7050,11 +7268,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7112,11 +7332,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7186,11 +7408,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7276,11 +7500,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7366,11 +7592,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7440,11 +7668,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7514,11 +7744,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7588,11 +7820,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7662,11 +7896,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7736,11 +7972,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7810,11 +8048,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7884,11 +8124,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7958,11 +8200,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8032,11 +8276,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8094,11 +8340,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9236,7 +9484,7 @@
     // Determine if a schema is an array
     this.isArray = !this.isAny && this.schema && this.schema.type === 'array';
 
-    this.isObject = this.schema && (this.schema.type === 'object' || this.schema.properties || this.schema.anyOf || this.schema.oneof || this.schema.allOf);
+    this.isObject = this.schema && (this.schema.type === 'object' || this.schema.properties || this.schema.anyOf || this.schema.oneOf || this.schema.allOf);
 
     // Determine if a schema is a primitive
     this.isPrimitive = !this.isAny && !this.isArray && !this.isObject;
diff --git a/docs/openapi/Provider_Management.html b/docs/openapi/Provider_Management.html
index 3ace452..32183da 100644
--- a/docs/openapi/Provider_Management.html
+++ b/docs/openapi/Provider_Management.html
@@ -993,6 +993,16 @@
   "description" : "Represents registration information of an individual API provider domain function.\n"
 };
 
+        defs["SupportedFeatures"] = {
+  "pattern" : "^[A-Fa-f0-9]*$",
+  "type" : "string",
+  "description" : "A string used to indicate the features supported by an API that is used as defined in clause  6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in  hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\",  \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in  table 5.2.2-3. The most significant character representing the highest-numbered features shall  appear first in the string, and the character representing features 1 to 4 shall appear last  in the string. The list of features and their numbering (starting with 1) are defined  separately for each API. If the string contains a lower number of characters than there are  defined features for an API, all features that would be represented by characters that are not  present in the string are not supported.\n"
+};
+        defs["Uri"] = {
+  "type" : "string",
+  "description" : "string providing an URI formatted according to IETF RFC 3986."
+};
+
     var errs = {};
   </script>
 
@@ -1094,14 +1104,16 @@
     &quot;regInfo&quot; : {
       &quot;apiProvCert&quot; : &quot;apiProvCert&quot;,
       &quot;apiProvPubKey&quot; : &quot;apiProvPubKey&quot;
-    }
+    },
+    &quot;apiProvFuncRole&quot; : &quot;AEF&quot;
   }, {
     &quot;apiProvFuncId&quot; : &quot;apiProvFuncId&quot;,
     &quot;apiProvFuncInfo&quot; : &quot;apiProvFuncInfo&quot;,
     &quot;regInfo&quot; : {
       &quot;apiProvCert&quot; : &quot;apiProvCert&quot;,
       &quot;apiProvPubKey&quot; : &quot;apiProvPubKey&quot;
-    }
+    },
+    &quot;apiProvFuncRole&quot; : &quot;AEF&quot;
   } ],
   &quot;failReason&quot; : &quot;failReason&quot;,
   &quot;regSec&quot; : &quot;regSec&quot;,
@@ -1353,6 +1365,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -1438,11 +1452,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -1528,11 +1544,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -1602,11 +1620,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -1676,11 +1696,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -1750,11 +1772,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -1824,11 +1848,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -1898,11 +1924,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -1972,11 +2000,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2046,11 +2076,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2120,11 +2152,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2194,11 +2228,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2256,11 +2292,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2599,11 +2637,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2673,11 +2713,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2763,11 +2805,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2853,11 +2897,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2927,11 +2973,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3001,11 +3049,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3075,11 +3125,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3149,11 +3201,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3223,11 +3277,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3297,11 +3353,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3359,11 +3417,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3432,14 +3492,16 @@
     &quot;regInfo&quot; : {
       &quot;apiProvCert&quot; : &quot;apiProvCert&quot;,
       &quot;apiProvPubKey&quot; : &quot;apiProvPubKey&quot;
-    }
+    },
+    &quot;apiProvFuncRole&quot; : &quot;AEF&quot;
   }, {
     &quot;apiProvFuncId&quot; : &quot;apiProvFuncId&quot;,
     &quot;apiProvFuncInfo&quot; : &quot;apiProvFuncInfo&quot;,
     &quot;regInfo&quot; : {
       &quot;apiProvCert&quot; : &quot;apiProvCert&quot;,
       &quot;apiProvPubKey&quot; : &quot;apiProvPubKey&quot;
-    }
+    },
+    &quot;apiProvFuncRole&quot; : &quot;AEF&quot;
   } ],
   &quot;failReason&quot; : &quot;failReason&quot;,
   &quot;regSec&quot; : &quot;regSec&quot;,
@@ -3734,6 +3796,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -3805,11 +3869,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3867,11 +3933,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3941,11 +4009,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4031,11 +4101,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4121,11 +4193,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4195,11 +4269,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4269,11 +4345,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4343,11 +4421,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4417,11 +4497,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4491,11 +4573,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4565,11 +4649,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4639,11 +4725,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4713,11 +4801,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4787,11 +4877,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4849,11 +4941,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5201,6 +5295,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -5273,11 +5369,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5335,11 +5433,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5409,11 +5509,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5499,11 +5601,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5589,11 +5693,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5663,11 +5769,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5737,11 +5845,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5811,11 +5921,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5885,11 +5997,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5959,11 +6073,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6033,11 +6149,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6107,11 +6225,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6181,11 +6301,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6255,11 +6377,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6317,11 +6441,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7459,7 +7585,7 @@
     // Determine if a schema is an array
     this.isArray = !this.isAny && this.schema && this.schema.type === 'array';
 
-    this.isObject = this.schema && (this.schema.type === 'object' || this.schema.properties || this.schema.anyOf || this.schema.oneof || this.schema.allOf);
+    this.isObject = this.schema && (this.schema.type === 'object' || this.schema.properties || this.schema.anyOf || this.schema.oneOf || this.schema.allOf);
 
     // Determine if a schema is a primitive
     this.isPrimitive = !this.isAny && !this.isArray && !this.isObject;
diff --git a/docs/openapi/Publish_Service.html b/docs/openapi/Publish_Service.html
index bf70259..e34f80a 100644
--- a/docs/openapi/Publish_Service.html
+++ b/docs/openapi/Publish_Service.html
@@ -1630,6 +1630,78 @@
   "description" : "Represents the API version information."
 };
 
+        defs["Altitude"] = {
+  "maximum" : 32767,
+  "minimum" : -32767,
+  "type" : "number",
+  "description" : "Indicates value of altitude.",
+  "format" : "double"
+};
+        defs["Angle"] = {
+  "maximum" : 360,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of angle."
+};
+        defs["Confidence"] = {
+  "maximum" : 100,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of confidence."
+};
+        defs["DateTime"] = {
+  "type" : "string",
+  "description" : "string with format \"date-time\" as defined in OpenAPI.",
+  "format" : "date-time"
+};
+        defs["Float"] = {
+  "type" : "number",
+  "description" : "string with format 'float' as defined in OpenAPI.",
+  "format" : "float"
+};
+        defs["InnerRadius"] = {
+  "maximum" : 327675,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of the inner radius.",
+  "format" : "int32"
+};
+        defs["Ipv4Addr"] = {
+  "type" : "string",
+  "description" : "string identifying a Ipv4 address formatted in the \"dotted decimal\" notation as defined in IETF RFC 1166."
+};
+        defs["Ipv6Addr"] = {
+  "type" : "string",
+  "description" : "string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952. The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall not be used."
+};
+        defs["Orientation"] = {
+  "maximum" : 180,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Indicates value of orientation angle."
+};
+        defs["Port"] = {
+  "maximum" : 65535,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Unsigned integer with valid values between 0 and 65535."
+};
+        defs["SupportedFeatures"] = {
+  "pattern" : "^[A-Fa-f0-9]*$",
+  "type" : "string",
+  "description" : "A string used to indicate the features supported by an API that is used as defined in clause  6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in  hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\",  \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in  table 5.2.2-3. The most significant character representing the highest-numbered features shall  appear first in the string, and the character representing features 1 to 4 shall appear last  in the string. The list of features and their numbering (starting with 1) are defined  separately for each API. If the string contains a lower number of characters than there are  defined features for an API, all features that would be represented by characters that are not  present in the string are not supported.\n"
+};
+        defs["Uncertainty"] = {
+  "minimum" : 0,
+  "type" : "number",
+  "description" : "Indicates value of uncertainty.",
+  "format" : "float"
+};
+        defs["Uri"] = {
+  "type" : "string",
+  "description" : "string providing an URI formatted according to IETF RFC 3986."
+};
+
     var errs = {};
   </script>
 
@@ -2029,11 +2101,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2103,11 +2177,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2193,11 +2269,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2283,11 +2361,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2357,11 +2437,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2431,11 +2513,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2505,11 +2589,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2579,11 +2665,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2653,11 +2741,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2727,11 +2817,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2801,11 +2893,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2863,11 +2957,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2941,15 +3037,18 @@
   &quot;description&quot; : &quot;description&quot;,
   &quot;apiSuppFeats&quot; : &quot;apiSuppFeats&quot;,
   &quot;aefProfiles&quot; : [ {
+    &quot;protocol&quot; : &quot;HTTP_1_1&quot;,
     &quot;securityMethods&quot; : [ null, null ],
     &quot;versions&quot; : [ {
       &quot;apiVersion&quot; : &quot;apiVersion&quot;,
       &quot;custOperations&quot; : [ {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       }, {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       } ],
@@ -2970,11 +3069,13 @@
     }, {
       &quot;apiVersion&quot; : &quot;apiVersion&quot;,
       &quot;custOperations&quot; : [ {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       }, {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       } ],
@@ -2993,10 +3094,12 @@
       } ],
       &quot;expiry&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;
     } ],
+    &quot;dataFormat&quot; : &quot;JSON&quot;,
     &quot;domainName&quot; : &quot;domainName&quot;,
     &quot;aefLocation&quot; : {
       &quot;dcId&quot; : &quot;dcId&quot;,
       &quot;geoArea&quot; : {
+        &quot;shape&quot; : &quot;POINT&quot;,
         &quot;point&quot; : {
           &quot;lon&quot; : 36.988422590534526,
           &quot;lat&quot; : -75.5850925717018
@@ -3042,25 +3145,28 @@
     &quot;aefId&quot; : &quot;aefId&quot;,
     &quot;interfaceDescriptions&quot; : [ {
       &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-      &quot;securityMethods&quot; : [ null, null ],
+      &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
       &quot;port&quot; : 9606,
       &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
     }, {
       &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-      &quot;securityMethods&quot; : [ null, null ],
+      &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
       &quot;port&quot; : 9606,
       &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
     } ]
   }, {
+    &quot;protocol&quot; : &quot;HTTP_1_1&quot;,
     &quot;securityMethods&quot; : [ null, null ],
     &quot;versions&quot; : [ {
       &quot;apiVersion&quot; : &quot;apiVersion&quot;,
       &quot;custOperations&quot; : [ {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       }, {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       } ],
@@ -3081,11 +3187,13 @@
     }, {
       &quot;apiVersion&quot; : &quot;apiVersion&quot;,
       &quot;custOperations&quot; : [ {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       }, {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       } ],
@@ -3104,10 +3212,12 @@
       } ],
       &quot;expiry&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;
     } ],
+    &quot;dataFormat&quot; : &quot;JSON&quot;,
     &quot;domainName&quot; : &quot;domainName&quot;,
     &quot;aefLocation&quot; : {
       &quot;dcId&quot; : &quot;dcId&quot;,
       &quot;geoArea&quot; : {
+        &quot;shape&quot; : &quot;POINT&quot;,
         &quot;point&quot; : {
           &quot;lon&quot; : 36.988422590534526,
           &quot;lat&quot; : -75.5850925717018
@@ -3153,12 +3263,12 @@
     &quot;aefId&quot; : &quot;aefId&quot;,
     &quot;interfaceDescriptions&quot; : [ {
       &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-      &quot;securityMethods&quot; : [ null, null ],
+      &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
       &quot;port&quot; : 9606,
       &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
     }, {
       &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-      &quot;securityMethods&quot; : [ null, null ],
+      &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
       &quot;port&quot; : 9606,
       &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
     } ]
@@ -3450,6 +3560,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -3536,11 +3648,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3626,11 +3740,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3700,11 +3816,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3774,11 +3892,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3848,11 +3968,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3922,11 +4044,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3996,11 +4120,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4070,11 +4196,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4144,11 +4272,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4218,11 +4348,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4292,11 +4424,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4354,11 +4488,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4725,11 +4861,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4799,11 +4937,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4889,11 +5029,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4979,11 +5121,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5053,11 +5197,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5127,11 +5273,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5201,11 +5349,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5275,11 +5425,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5349,11 +5501,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5423,11 +5577,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5485,11 +5641,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5878,11 +6036,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5952,11 +6112,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6042,11 +6204,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6132,11 +6296,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6206,11 +6372,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6280,11 +6448,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6354,11 +6524,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6428,11 +6600,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6502,11 +6676,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6576,11 +6752,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6650,11 +6828,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6712,11 +6892,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6790,15 +6972,18 @@
   &quot;description&quot; : &quot;description&quot;,
   &quot;apiSuppFeats&quot; : &quot;apiSuppFeats&quot;,
   &quot;aefProfiles&quot; : [ {
+    &quot;protocol&quot; : &quot;HTTP_1_1&quot;,
     &quot;securityMethods&quot; : [ null, null ],
     &quot;versions&quot; : [ {
       &quot;apiVersion&quot; : &quot;apiVersion&quot;,
       &quot;custOperations&quot; : [ {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       }, {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       } ],
@@ -6819,11 +7004,13 @@
     }, {
       &quot;apiVersion&quot; : &quot;apiVersion&quot;,
       &quot;custOperations&quot; : [ {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       }, {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       } ],
@@ -6842,10 +7029,12 @@
       } ],
       &quot;expiry&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;
     } ],
+    &quot;dataFormat&quot; : &quot;JSON&quot;,
     &quot;domainName&quot; : &quot;domainName&quot;,
     &quot;aefLocation&quot; : {
       &quot;dcId&quot; : &quot;dcId&quot;,
       &quot;geoArea&quot; : {
+        &quot;shape&quot; : &quot;POINT&quot;,
         &quot;point&quot; : {
           &quot;lon&quot; : 36.988422590534526,
           &quot;lat&quot; : -75.5850925717018
@@ -6891,25 +7080,28 @@
     &quot;aefId&quot; : &quot;aefId&quot;,
     &quot;interfaceDescriptions&quot; : [ {
       &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-      &quot;securityMethods&quot; : [ null, null ],
+      &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
       &quot;port&quot; : 9606,
       &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
     }, {
       &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-      &quot;securityMethods&quot; : [ null, null ],
+      &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
       &quot;port&quot; : 9606,
       &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
     } ]
   }, {
+    &quot;protocol&quot; : &quot;HTTP_1_1&quot;,
     &quot;securityMethods&quot; : [ null, null ],
     &quot;versions&quot; : [ {
       &quot;apiVersion&quot; : &quot;apiVersion&quot;,
       &quot;custOperations&quot; : [ {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       }, {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       } ],
@@ -6930,11 +7122,13 @@
     }, {
       &quot;apiVersion&quot; : &quot;apiVersion&quot;,
       &quot;custOperations&quot; : [ {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       }, {
-        &quot;operations&quot; : [ null, null ],
+        &quot;operations&quot; : [ &quot;GET&quot;, &quot;GET&quot; ],
+        &quot;commType&quot; : &quot;REQUEST_RESPONSE&quot;,
         &quot;description&quot; : &quot;description&quot;,
         &quot;custOpName&quot; : &quot;custOpName&quot;
       } ],
@@ -6953,10 +7147,12 @@
       } ],
       &quot;expiry&quot; : &quot;2000-01-23T04:56:07.000+00:00&quot;
     } ],
+    &quot;dataFormat&quot; : &quot;JSON&quot;,
     &quot;domainName&quot; : &quot;domainName&quot;,
     &quot;aefLocation&quot; : {
       &quot;dcId&quot; : &quot;dcId&quot;,
       &quot;geoArea&quot; : {
+        &quot;shape&quot; : &quot;POINT&quot;,
         &quot;point&quot; : {
           &quot;lon&quot; : 36.988422590534526,
           &quot;lat&quot; : -75.5850925717018
@@ -7002,12 +7198,12 @@
     &quot;aefId&quot; : &quot;aefId&quot;,
     &quot;interfaceDescriptions&quot; : [ {
       &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-      &quot;securityMethods&quot; : [ null, null ],
+      &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
       &quot;port&quot; : 9606,
       &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
     }, {
       &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-      &quot;securityMethods&quot; : [ null, null ],
+      &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
       &quot;port&quot; : 9606,
       &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
     } ]
@@ -7330,6 +7526,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -7401,11 +7599,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7463,11 +7663,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7537,11 +7739,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7627,11 +7831,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7717,11 +7923,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7791,11 +7999,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7865,11 +8075,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7939,11 +8151,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8013,11 +8227,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8087,11 +8303,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8161,11 +8379,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8235,11 +8455,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8309,11 +8531,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8383,11 +8607,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8445,11 +8671,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8828,6 +9056,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -8900,11 +9130,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8962,11 +9194,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9036,11 +9270,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9126,11 +9362,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9216,11 +9454,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9290,11 +9530,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9364,11 +9606,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9438,11 +9682,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9512,11 +9758,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9586,11 +9834,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9660,11 +9910,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9734,11 +9986,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9808,11 +10062,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9882,11 +10138,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9944,11 +10202,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -11086,7 +11346,7 @@
     // Determine if a schema is an array
     this.isArray = !this.isAny && this.schema && this.schema.type === 'array';
 
-    this.isObject = this.schema && (this.schema.type === 'object' || this.schema.properties || this.schema.anyOf || this.schema.oneof || this.schema.allOf);
+    this.isObject = this.schema && (this.schema.type === 'object' || this.schema.properties || this.schema.anyOf || this.schema.oneOf || this.schema.allOf);
 
     // Determine if a schema is a primitive
     this.isPrimitive = !this.isAny && !this.isArray && !this.isObject;
diff --git a/docs/openapi/Security.html b/docs/openapi/Security.html
index e0ac00b..f04aa46 100644
--- a/docs/openapi/Security.html
+++ b/docs/openapi/Security.html
@@ -1143,6 +1143,50 @@
   "description" : "Represents the configuration information for the delivery of notifications over Websockets."
 };
 
+        defs["DurationSec"] = {
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Unsigned integer identifying a period of time in units of seconds."
+};
+        defs["Fqdn"] = {
+  "maxLength" : 253,
+  "minLength" : 4,
+  "pattern" : "^([0-9A-Za-z]([-0-9A-Za-z]{0,61}[0-9A-Za-z])?\\.)+[A-Za-z]{2,63}\\.?$",
+  "type" : "string",
+  "description" : "Fully Qualified Domain Name"
+};
+        defs["Ipv4Addr"] = {
+  "type" : "string",
+  "description" : "string identifying a Ipv4 address formatted in the \"dotted decimal\" notation as defined in IETF RFC 1166."
+};
+        defs["Ipv6Addr"] = {
+  "type" : "string",
+  "description" : "string identifying a Ipv6 address formatted according to clause 4 in IETF RFC 5952. The mixed Ipv4 Ipv6 notation according to clause 5 of IETF RFC 5952 shall not be used."
+};
+        defs["Link"] = {
+  "type" : "string",
+  "description" : "string formatted according to IETF RFC 3986 identifying a referenced resource."
+};
+        defs["Port"] = {
+  "maximum" : 65535,
+  "minimum" : 0,
+  "type" : "integer",
+  "description" : "Unsigned integer with valid values between 0 and 65535."
+};
+        defs["SupportedFeatures"] = {
+  "pattern" : "^[A-Fa-f0-9]*$",
+  "type" : "string",
+  "description" : "A string used to indicate the features supported by an API that is used as defined in clause  6.6 in 3GPP TS 29.500. The string shall contain a bitmask indicating supported features in  hexadecimal representation Each character in the string shall take a value of \"0\" to \"9\",  \"a\" to \"f\" or \"A\" to \"F\" and shall represent the support of 4 features as described in  table 5.2.2-3. The most significant character representing the highest-numbered features shall  appear first in the string, and the character representing features 1 to 4 shall appear last  in the string. The list of features and their numbering (starting with 1) are defined  separately for each API. If the string contains a lower number of characters than there are  defined features for an API, all features that would be represented by characters that are not  present in the string are not supported.\n"
+};
+        defs["Uri"] = {
+  "type" : "string",
+  "description" : "String providing an URI formatted according to RFC 3986."
+};
+        defs["Uri_1"] = {
+  "type" : "string",
+  "description" : "string providing an URI formatted according to IETF RFC 3986."
+};
+
     var errs = {};
   </script>
 
@@ -1673,11 +1717,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -1747,11 +1793,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -1837,11 +1885,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -1927,11 +1977,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2001,11 +2053,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2075,11 +2129,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2149,11 +2205,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2223,11 +2281,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2297,11 +2357,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2371,11 +2433,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2445,11 +2509,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2519,11 +2585,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2593,11 +2661,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2655,11 +2725,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -2998,11 +3070,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3072,11 +3146,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3162,11 +3238,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3252,11 +3330,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3326,11 +3406,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3400,11 +3482,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3474,11 +3558,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3548,11 +3634,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3622,11 +3710,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3696,11 +3786,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3758,11 +3850,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -3826,6 +3920,7 @@
  "https://example.com/capif-security/v1/trustedInvokers/{apiInvokerId}/delete" \
  -d '{
   &quot;apiInvokerId&quot; : &quot;apiInvokerId&quot;,
+  &quot;cause&quot; : &quot;OVERLIMIT_USAGE&quot;,
   &quot;aefId&quot; : &quot;aefId&quot;,
   &quot;apiIds&quot; : [ &quot;apiIds&quot;, &quot;apiIds&quot; ]
 }'
@@ -4106,6 +4201,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -4165,11 +4262,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4239,11 +4338,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4329,11 +4430,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4419,11 +4522,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4493,11 +4598,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4567,11 +4674,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4641,11 +4750,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4715,11 +4826,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4789,11 +4902,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4863,11 +4978,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -4937,11 +5054,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5011,11 +5130,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5085,11 +5206,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5147,11 +5270,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5603,11 +5728,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5677,11 +5804,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5767,11 +5896,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5857,11 +5988,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -5931,11 +6064,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6005,11 +6140,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6079,11 +6216,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6153,11 +6292,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6227,11 +6368,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6301,11 +6444,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6375,11 +6520,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6449,11 +6596,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6511,11 +6660,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -6585,7 +6736,7 @@
     &quot;authorizationInfo&quot; : &quot;authorizationInfo&quot;,
     &quot;interfaceDetails&quot; : {
       &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-      &quot;securityMethods&quot; : [ null, null ],
+      &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
       &quot;port&quot; : 5248,
       &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
     },
@@ -6597,7 +6748,7 @@
     &quot;authorizationInfo&quot; : &quot;authorizationInfo&quot;,
     &quot;interfaceDetails&quot; : {
       &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-      &quot;securityMethods&quot; : [ null, null ],
+      &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
       &quot;port&quot; : 5248,
       &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
     },
@@ -6897,6 +7048,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -6982,11 +7135,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7072,11 +7227,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7146,11 +7303,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7220,11 +7379,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7294,11 +7455,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7368,11 +7531,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7442,11 +7607,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7516,11 +7683,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7590,11 +7759,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7664,11 +7835,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7738,11 +7911,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7800,11 +7975,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -7874,7 +8051,7 @@
     &quot;authorizationInfo&quot; : &quot;authorizationInfo&quot;,
     &quot;interfaceDetails&quot; : {
       &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-      &quot;securityMethods&quot; : [ null, null ],
+      &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
       &quot;port&quot; : 5248,
       &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
     },
@@ -7886,7 +8063,7 @@
     &quot;authorizationInfo&quot; : &quot;authorizationInfo&quot;,
     &quot;interfaceDetails&quot; : {
       &quot;ipv6Addr&quot; : &quot;ipv6Addr&quot;,
-      &quot;securityMethods&quot; : [ null, null ],
+      &quot;securityMethods&quot; : [ &quot;PSK&quot;, &quot;PSK&quot; ],
       &quot;port&quot; : 5248,
       &quot;ipv4Addr&quot; : &quot;ipv4Addr&quot;
     },
@@ -8186,6 +8363,8 @@
   }
   if (schema.$ref != null) {
     schema = defsParser.$refs.get(schema.$ref);
+  } else if (schema.items != null && schema.items.$ref != null) {
+    schema.items = defsParser.$refs.get(schema.items.$ref);
   } else {
     schemaWrapper.definitions = Object.assign({}, defs);
     $RefParser.dereference(schemaWrapper).catch(function(err) {
@@ -8257,11 +8436,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8331,11 +8512,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8421,11 +8604,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8511,11 +8696,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8585,11 +8772,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8659,11 +8848,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8733,11 +8924,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8807,11 +9000,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8881,11 +9076,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -8955,11 +9152,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9029,11 +9228,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9103,11 +9304,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9177,11 +9380,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -9239,11 +9444,13 @@
                                       }
                                       if (schema.$ref != null) {
                                         schema = defsParser.$refs.get(schema.$ref);
-                                        Object.keys(schema.properties).forEach( (item) => {
-                                          if (schema.properties[item].$ref != null) {
-                                            schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
-                                          }
-                                        });
+                                        if (schema.properties != null) {
+                                          Object.keys(schema.properties).forEach( (item) => {
+                                            if (schema.properties[item].$ref != null) {
+                                              schema.properties[item] = defsParser.$refs.get(schema.properties[item].$ref);
+                                            }
+                                          });
+                                        }
                                       } else if (schema.items != null && schema.items.$ref != null) {
                                         schema.items = defsParser.$refs.get(schema.items.$ref);
                                       } else {
@@ -10381,7 +10588,7 @@
     // Determine if a schema is an array
     this.isArray = !this.isAny && this.schema && this.schema.type === 'array';
 
-    this.isObject = this.schema && (this.schema.type === 'object' || this.schema.properties || this.schema.anyOf || this.schema.oneof || this.schema.allOf);
+    this.isObject = this.schema && (this.schema.type === 'object' || this.schema.properties || this.schema.anyOf || this.schema.oneOf || this.schema.allOf);
 
     // Determine if a schema is a primitive
     this.isPrimitive = !this.isAny && !this.isArray && !this.isObject;