{
  "type": "object",
  "$schema": "http://json-schema.org/draft-04/schema#",
  "additionalProperties": false,
  "description": "Generated by pyang from module nsd",
  "title": "nsd",
  "properties": {
    "nsd-catalog": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "schema-version": {
          "type": "string",
          "pattern": "",
          "description": "Schema version for the NSD. If unspecified, it assumes v3.0"
        },
        "nsd": {
          "type": "array",
          "additionalProperties": false,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "vld": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "mgmt-network": {
                      "type": "boolean",
                      "description": "Flag indicating whether this network is a VIM management network"
                    },
                    "vendor": {
                      "type": "string",
                      "pattern": "",
                      "description": "Provider of the VLD."
                    },
                    "id": {
                      "type": "string",
                      "pattern": "",
                      "description": "Identifier for the VLD."
                    },
                    "root-bandwidth": {
                      "type": "integer",
                      "description": "For ELAN this is the aggregate bandwidth."
                    },
                    "description": {
                      "type": "string",
                      "pattern": "",
                      "description": "Description of the VLD."
                    },
                    "leaf-bandwidth": {
                      "type": "integer",
                      "description": "For ELAN this is the bandwidth of branches."
                    },
                    "vim-network-name": {
                      "type": "string",
                      "pattern": "",
                      "description": "Name of network in VIM account. This is used to indicate\n      pre-provisioned network name in cloud account."
                    },
                    "short-name": {
                      "type": "string",
                      "pattern": "",
                      "description": "Short name to appear as label in the UI"
                    },
                    "provider-network": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "physical-network": {
                          "type": "string",
                          "pattern": "",
                          "description": "Name of the physical network on which the provider\nnetwork is built."
                        },
                        "segmentation_id": {
                          "type": "integer",
                          "description": "ID of segregated virtual networks"
                        }
                      }
                    },
                    "vnfd-connection-point-ref": {
                      "type": "array",
                      "additionalProperties": false,
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "vnfd-connection-point-ref": {
                            "type": "string",
                            "description": "A reference to a connection point name"
                          },
                          "vnfd-id-ref": {
                            "type": "string",
                            "description": "A reference to a VNFD"
                          },
                          "member-vnf-index-ref": {
                            "type": "string",
                            "description": "Reference to member-vnf within constituent-vnfds"
                          },
                          "ip-address": {
                            "oneOf": [
                              {
                                "type": "string",
                                "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])(%[\\p{N}\\p{L}]+)?"
                              },
                              {
                                "type": "string",
                                "pattern": "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                              }
                            ],
                            "description": "IP address of the connection point"
                          }
                        }
                      }
                    },
                    "type": {
                      "properties": {
                        "type": {
                          "enum": [
                            "ELAN",
                            "ELINE"
                          ]
                        }
                      },
                      "description": ""
                    },
                    "name": {
                      "type": "string",
                      "pattern": "",
                      "description": "Virtual Link Descriptor (VLD) name."
                    },
                    "version": {
                      "type": "string",
                      "pattern": "",
                      "description": "Version of the VLD"
                    },
                    "ip-profile-ref": {
                      "type": "string",
                      "description": "Named reference to IP-profile object"
                    }
                  }
                }
              },
              "vnf-dependency": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "vnf-depends-on-ref": {
                      "type": "string",
                      "description": "Reference to VNF that sorce VNF depends."
                    },
                    "vnf-source-ref": {
                      "type": "string",
                      "description": ""
                    }
                  }
                }
              },
              "parameter-pool": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "pattern": "",
                      "description": "Name of the configuration value pool"
                    },
                    "range": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "start-value": {
                          "type": "integer",
                          "description": "Generated pool values start at this value"
                        },
                        "end-value": {
                          "type": "integer",
                          "description": "Generated pool values stop at this value"
                        }
                      }
                    }
                  }
                }
              },
              "id": {
                "type": "string",
                "pattern": "",
                "description": "Identifier for the NSD."
              },
              "input-parameter-xpath": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "default-value": {
                      "type": "string",
                      "pattern": "",
                      "description": "Default Value for the Input Parameter"
                    },
                    "xpath": {
                      "type": "string",
                      "pattern": "",
                      "description": "An xpath that specifies the element in a descriptor."
                    },
                    "label": {
                      "type": "string",
                      "pattern": "",
                      "description": "A descriptive string"
                    }
                  }
                }
              },
              "monitoring-param": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "id": {
                      "type": "string",
                      "pattern": "",
                      "description": ""
                    },
                    "units": {
                      "type": "string",
                      "pattern": "",
                      "description": "Measured Counter Units (e.g., Packets, Kbps, Mbps, etc.)"
                    },
                    "vnfd-monitoring-param": {
                      "type": "array",
                      "additionalProperties": false,
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "vnfd-id-ref": {
                            "type": "string",
                            "description": "A reference to a VNFD. This is a leafref"
                          },
                          "vnfd-monitoring-param-ref": {
                            "type": "string",
                            "description": "A reference to the VNFD monitoring param"
                          },
                          "member-vnf-index-ref": {
                            "type": "string",
                            "description": "Mandatory reference to member-vnf within constituent-vnfds"
                          }
                        }
                      }
                    },
                    "value-string": {
                      "type": "string",
                      "pattern": "",
                      "description": "Current value for a string parameter"
                    },
                    "text-constraints": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "max-length": {
                          "type": "number",
                          "description": "Maximum string length for the parameter"
                        },
                        "min-length": {
                          "type": "number",
                          "description": "Minimum string length for the parameter"
                        }
                      }
                    },
                    "numeric-constraints": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "min-value": {
                          "type": "integer",
                          "description": "Minimum value for the parameter"
                        },
                        "max-value": {
                          "type": "integer",
                          "description": "Maximum value for the parameter"
                        }
                      }
                    },
                    "description": {
                      "type": "string",
                      "pattern": "",
                      "description": ""
                    },
                    "aggregation-type": {
                      "properties": {
                        "type": {
                          "enum": [
                            "AVERAGE",
                            "MINIMUM",
                            "MAXIMUM",
                            "COUNT",
                            "SUM"
                          ]
                        }
                      },
                      "description": ""
                    },
                    "value-decimal": {
                      "type": "integer",
                      "description": "Current value for a decimal parameter"
                    },
                    "value-integer": {
                      "type": "integer",
                      "description": "Current value for an integer parameter"
                    },
                    "widget-type": {
                      "properties": {
                        "type": {
                          "enum": [
                            "COUNTER",
                            "GAUGE",
                            "TEXTBOX",
                            "SLIDER",
                            "HISTOGRAM",
                            "BAR"
                          ]
                        }
                      },
                      "description": "Defines the UI Display variant of measured counters."
                    },
                    "name": {
                      "type": "string",
                      "pattern": "",
                      "description": ""
                    },
                    "value-type": {
                      "properties": {
                        "type": {
                          "enum": [
                            "INT",
                            "DECIMAL",
                            "STRING"
                          ]
                        }
                      },
                      "description": ""
                    },
                    "group-tag": {
                      "type": "string",
                      "pattern": "",
                      "description": "A tag to group monitoring parameters"
                    }
                  }
                }
              },
              "connection-point": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "vnfd-id-ref": {
                      "type": "string",
                      "description": "A reference to a vnfd. This is a leafref to path:\n   ../../nsd:constituent-vnfd\n   + [nsd:id = current()/../nsd:id-ref]\n   + /nsd:vnfd-id-ref"
                    },
                    "floating-ip-required": {
                      "type": "boolean",
                      "description": "Boolean parameter to indicate whether the CP must be exposed.\nA public IP address will be allocated to this CP if exposed is true.\nThe default is false meaning a floating IP address is not required.\nIt must be explicitly asked for a floating IP address to be allocated."
                    },
                    "vnfd-connection-point-ref": {
                      "type": "string",
                      "description": "A reference to a connection point name\n   in a vnfd. This is a leafref to path:\n       /vnfd:vnfd-catalog/vnfd:vnfd\n       + [vnfd:id = current()/../nsd:vnfd-id-ref]\n       + /vnfd:connection-point/vnfd:name"
                    },
                    "type": {
                      "properties": {
                        "type": {
                          "enum": [
                            "VPORT"
                          ]
                        }
                      },
                      "description": "Type of the connection point."
                    },
                    "name": {
                      "type": "string",
                      "pattern": "",
                      "description": "Name of the connection point."
                    },
                    "vld-id-ref": {
                      "type": "string",
                      "description": "ID reference to a VLD in the NS"
                    },
                    "member-vnf-index-ref": {
                      "type": "string",
                      "description": "Reference to member-vnf within constituent-vnfd"
                    }
                  }
                }
              },
              "logo": {
                "type": "string",
                "pattern": "",
                "description": "File path for  the vendor specific logo. For example icons/mylogo.png.\nThe logo  should be part of the network service"
              },
              "user": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "pattern": "",
                      "description": "Name of the user "
                    },
                    "key-pair": {
                      "type": "array",
                      "additionalProperties": false,
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "key": {
                            "type": "string",
                            "pattern": "",
                            "description": "Key associated with this key pair"
                          },
                          "name": {
                            "type": "string",
                            "pattern": "",
                            "description": "Name of this key pair"
                          }
                        }
                      }
                    },
                    "user-info": {
                      "type": "string",
                      "pattern": "",
                      "description": "The user name's real name"
                    }
                  }
                }
              },
              "ns-configuration": {
                "type": "object",
                "additionalProperties": false,
                "properties": {
                  "initial-config-primitive": {
                    "type": "array",
                    "additionalProperties": false,
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "user-defined-script": {
                          "type": "string",
                          "pattern": "",
                          "description": "A user defined script."
                        },
                        "name": {
                          "type": "string",
                          "pattern": "",
                          "description": "Name of the configuration primitive."
                        },
                        "seq": {
                          "type": "integer",
                          "description": "Sequence number for the configuration primitive."
                        },
                        "parameter": {
                          "type": "array",
                          "additionalProperties": false,
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": "string",
                                "pattern": "",
                                "description": "Name of the parameter."
                              },
                              "data-type": {
                                "properties": {
                                  "type": {
                                    "enum": [
                                      "STRING",
                                      "INTEGER",
                                      "BOOLEAN"
                                    ]
                                  }
                                },
                                "description": "Data type associated with the value."
                              },
                              "value": {
                                "type": "string",
                                "pattern": "",
                                "description": "Value associated with the name."
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "juju": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "charm": {
                        "type": "string",
                        "pattern": "",
                        "description": "Juju charm to use with the VNF or VDU."
                      },
                      "vca-relationships": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "relation": {
                            "type": "array",
                            "additionalProperties": false,
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "provides": {
                                  "type": "string",
                                  "pattern": "",
                                  "description": "Name of the provided relation."
                                },
                                "requires": {
                                  "type": "string",
                                  "pattern": "",
                                  "description": "Name of the required relation."
                                }
                              }
                            }
                          }
                        }
                      },
                      "proxy": {
                        "type": "boolean",
                        "description": "Is this a proxy charm?"
                      }
                    }
                  },
                  "script": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "script-type": {
                        "properties": {
                          "type": {
                            "enum": [
                              "rift"
                            ]
                          }
                        },
                        "description": "Script type - currently supported - Scripts confirming to Rift CA plugin"
                      }
                    }
                  },
                  "terminate-config-primitive": {
                    "type": "array",
                    "additionalProperties": false,
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "user-defined-script": {
                          "type": "string",
                          "pattern": "",
                          "description": "A user defined script."
                        },
                        "name": {
                          "type": "string",
                          "pattern": "",
                          "description": "Name of the configuration primitive."
                        },
                        "seq": {
                          "type": "integer",
                          "description": "Sequence number for the configuration primitive."
                        },
                        "parameter": {
                          "type": "array",
                          "additionalProperties": false,
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "name": {
                                "type": "string",
                                "pattern": "",
                                "description": "Name of the parameter."
                              },
                              "data-type": {
                                "properties": {
                                  "type": {
                                    "enum": [
                                      "STRING",
                                      "INTEGER",
                                      "BOOLEAN"
                                    ]
                                  }
                                },
                                "description": "Data type associated with the value."
                              },
                              "value": {
                                "type": "string",
                                "pattern": "",
                                "description": "Value associated with the name."
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "config-primitive": {
                    "type": "array",
                    "additionalProperties": false,
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "user-defined-script": {
                          "type": "string",
                          "pattern": "",
                          "description": "A user defined script. If user defined script is defined,\nthe script will be executed using bash"
                        },
                        "name": {
                          "type": "string",
                          "pattern": "",
                          "description": "Name of the config primitive."
                        },
                        "parameter": {
                          "type": "array",
                          "additionalProperties": false,
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "default-value": {
                                "type": "string",
                                "pattern": "",
                                "description": "The default value for this field"
                              },
                              "data-type": {
                                "properties": {
                                  "type": {
                                    "enum": [
                                      "STRING",
                                      "INTEGER",
                                      "BOOLEAN"
                                    ]
                                  }
                                },
                                "description": "Data type associated with the name."
                              },
                              "mandatory": {
                                "type": "boolean",
                                "description": "Is this field mandatory"
                              },
                              "name": {
                                "type": "string",
                                "pattern": "",
                                "description": "Name of the parameter."
                              },
                              "parameter-pool": {
                                "type": "string",
                                "pattern": "",
                                "description": "NSD parameter pool name to use for this parameter"
                              },
                              "read-only": {
                                "type": "boolean",
                                "description": "The value should be dimmed by the UI.\nOnly applies to parameters with default values."
                              },
                              "hidden": {
                                "type": "boolean",
                                "description": "The value should be hidden by the UI.\nOnly applies to parameters with default values."
                              }
                            }
                          }
                        }
                      }
                    }
                  },
                  "metrics": {
                    "type": "array",
                    "additionalProperties": false,
                    "items": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "name": {
                          "type": "string",
                          "pattern": "",
                          "description": "Name of the metric, as defined in the Juju charm."
                        }
                      }
                    }
                  }
                }
              },
              "key-pair": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "key": {
                      "type": "string",
                      "pattern": "",
                      "description": "Key associated with this key pair"
                    },
                    "name": {
                      "type": "string",
                      "pattern": "",
                      "description": "Name of this key pair"
                    }
                  }
                }
              },
              "description": {
                "type": "string",
                "pattern": "",
                "description": "Description of the NSD."
              },
              "placement-groups": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "pattern": "",
                      "description": "Place group construct to define the compute resource placement strategy\nin cloud environment"
                    },
                    "requirement": {
                      "type": "string",
                      "pattern": "",
                      "description": "This is free text space used to describe the intent/rationale\nbehind this placement group. This is for human consumption only"
                    },
                    "strategy": {
                      "properties": {
                        "type": {
                          "enum": [
                            "COLOCATION",
                            "ISOLATION"
                          ]
                        }
                      },
                      "description": "Strategy associated with this placement group\n  Following values are possible\n    - COLOCATION: Colocation strategy imply intent to share the physical\n                  infrastructure (hypervisor/network) among all members\n                  of this group.\n    - ISOLATION: Isolation strategy imply intent to not share the physical\n                 infrastructure (hypervisor/network) among the members\n                 of this group.\n  "
                    },
                    "member-vnfd": {
                      "type": "array",
                      "additionalProperties": false,
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "vnfd-id-ref": {
                            "type": "string",
                            "description": "Identifier for the VNFD."
                          },
                          "member-vnf-index-ref": {
                            "type": "string",
                            "description": "Member VNF index of this member VNF"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "short-name": {
                "type": "string",
                "pattern": "",
                "description": "Short name to appear as label in the UI"
              },
              "constituent-vnfd": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "member-vnf-index": {
                      "type": "string",
                      "pattern": "",
                      "description": "Identifier/index for the VNFD. This separate id\nis required to ensure that multiple VNFs can be\npart of single NS"
                    },
                    "vnfd-id-ref": {
                      "type": "string",
                      "description": "Identifier for the VNFD."
                    },
                    "start-by-default": {
                      "type": "boolean",
                      "description": "VNFD is started as part of the NS instantiation"
                    }
                  }
                }
              },
              "ip-profiles": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "name": {
                      "type": "string",
                      "pattern": "",
                      "description": "Name of the IP-Profile"
                    },
                    "ip-profile-params": {
                      "type": "object",
                      "additionalProperties": false,
                      "properties": {
                        "dhcp-params": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "start-address": {
                              "oneOf": [
                                {
                                  "type": "string",
                                  "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])(%[\\p{N}\\p{L}]+)?"
                                },
                                {
                                  "type": "string",
                                  "pattern": "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                }
                              ],
                              "description": "Start IP address of the IP-Address range associated with DHCP domain"
                            },
                            "enabled": {
                              "type": "boolean",
                              "description": "This flag indicates if DHCP is enabled or not"
                            },
                            "count": {
                              "type": "integer",
                              "description": "Size of the DHCP pool associated with DHCP domain"
                            }
                          }
                        },
                        "ip-version": {
                          "properties": {
                            "type": {
                              "enum": [
                                "unknown",
                                "ipv4",
                                "ipv6"
                              ]
                            }
                          },
                          "description": ""
                        },
                        "subnet-prefix-pool": {
                          "type": "string",
                          "pattern": "",
                          "description": "VIM Specific reference to pre-created subnet prefix"
                        },
                        "dns-server": {
                          "type": "array",
                          "additionalProperties": false,
                          "items": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "address": {
                                "oneOf": [
                                  {
                                    "type": "string",
                                    "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])(%[\\p{N}\\p{L}]+)?"
                                  },
                                  {
                                    "type": "string",
                                    "pattern": "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                  }
                                ],
                                "description": "List of DNS Servers associated with IP Profile"
                              }
                            }
                          }
                        },
                        "gateway-address": {
                          "oneOf": [
                            {
                              "type": "string",
                              "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])(%[\\p{N}\\p{L}]+)?"
                            },
                            {
                              "type": "string",
                              "pattern": "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                            }
                          ],
                          "description": "IP Address of the default gateway associated with IP Profile"
                        },
                        "security-group": {
                          "type": "string",
                          "pattern": "",
                          "description": "Name of the security group"
                        },
                        "subnet-address": {
                          "oneOf": [
                            {
                              "type": "string",
                              "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])/(([0-9])|([1-2][0-9])|(3[0-2]))"
                            },
                            {
                              "type": "string",
                              "pattern": "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(/.+)"
                            }
                          ],
                          "description": "Subnet IP prefix associated with IP Profile"
                        }
                      }
                    },
                    "description": {
                      "type": "string",
                      "pattern": "",
                      "description": "Description for IP profile"
                    }
                  }
                }
              },
              "vendor": {
                "type": "string",
                "pattern": "",
                "description": "Vendor of the NSD."
              },
              "name": {
                "type": "string",
                "pattern": "",
                "description": "NSD name."
              },
              "version": {
                "type": "string",
                "pattern": "",
                "description": "Version of the NSD"
              },
              "scaling-group-descriptor": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "min-instance-count": {
                      "type": "integer",
                      "description": "Minimum instances of the scaling group which are allowed.\nThese instances are created by default when the network service\nis instantiated."
                    },
                    "scaling-config-action": {
                      "type": "array",
                      "additionalProperties": false,
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "trigger": {
                            "properties": {
                              "type": {
                                "enum": [
                                  "pre-scale-in",
                                  "post-scale-in",
                                  "pre-scale-out",
                                  "post-scale-out"
                                ]
                              }
                            },
                            "description": "scaling trigger"
                          },
                          "ns-config-primitive-name-ref": {
                            "type": "string",
                            "description": "Reference to the NS primitive"
                          }
                        }
                      }
                    },
                    "name": {
                      "type": "string",
                      "pattern": "",
                      "description": "Name of this scaling group."
                    },
                    "vnfd-member": {
                      "type": "array",
                      "additionalProperties": false,
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "member-vnf-index-ref": {
                            "type": "string",
                            "description": "member VNF index of this member VNF"
                          },
                          "count": {
                            "type": "integer",
                            "description": "count of this member VNF  within this scaling group.\nThe count allows to define  the number of instances\nwhen a scaling action targets this scaling group"
                          }
                        }
                      }
                    },
                    "scaling-policy": {
                      "type": "array",
                      "additionalProperties": false,
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "scale-in-operation-type": {
                            "properties": {
                              "type": {
                                "enum": [
                                  "AND",
                                  "OR"
                                ]
                              }
                            },
                            "description": "Operation to be applied to check between scaling criterias to\ncheck if the scale in threshold condition has been met.\nDefaults to AND"
                          },
                          "cooldown-time": {
                            "type": "integer",
                            "description": "The duration after a scaling-in/scaling-out action has been\ntriggered, for which there will be no further optional"
                          },
                          "scaling-criteria": {
                            "type": "array",
                            "additionalProperties": false,
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "scale-out-relational-operation": {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "GE",
                                        "LE",
                                        "GT",
                                        "LT",
                                        "EQ"
                                      ]
                                    }
                                  },
                                  "description": "The relational operator used to compare the monitoring param\nagainst the scale-out-threshold."
                                },
                                "scale-in-threshold": {
                                  "type": "integer",
                                  "description": "Value below which scale-in requests are generated"
                                },
                                "name": {
                                  "type": "string",
                                  "pattern": "",
                                  "description": ""
                                },
                                "scale-out-threshold": {
                                  "type": "integer",
                                  "description": "Value above which scale-out requests are generated"
                                },
                                "scale-in-relational-operation": {
                                  "properties": {
                                    "type": {
                                      "enum": [
                                        "GE",
                                        "LE",
                                        "GT",
                                        "LT",
                                        "EQ"
                                      ]
                                    }
                                  },
                                  "description": "The relational operator used to compare the monitoring param\nagainst the scale-in-threshold."
                                },
                                "ns-monitoring-param-ref": {
                                  "type": "string",
                                  "description": "Reference to the NS level monitoring parameter\nthat is aggregated"
                                }
                              }
                            }
                          },
                          "scale-out-operation-type": {
                            "properties": {
                              "type": {
                                "enum": [
                                  "AND",
                                  "OR"
                                ]
                              }
                            },
                            "description": "Operation to be applied to check between scaling criterias to\ncheck if the scale out threshold condition has been met.\nDefauls to OR"
                          },
                          "threshold-time": {
                            "type": "integer",
                            "description": "The duration for which the criteria must hold true"
                          },
                          "scaling-type": {
                            "properties": {
                              "type": {
                                "enum": [
                                  "manual",
                                  "automatic"
                                ]
                              }
                            },
                            "description": "Type of scaling"
                          },
                          "name": {
                            "type": "string",
                            "pattern": "",
                            "description": "Name of the scaling policy"
                          },
                          "enabled": {
                            "type": "boolean",
                            "description": "Specifies if the scaling policy can be applied"
                          }
                        }
                      }
                    },
                    "max-instance-count": {
                      "type": "integer",
                      "description": "Maximum instances of this scaling group that are allowed\nin a single network service. The network service scaling\nwill fail, when the number of service group instances\nexceed the max-instance-count specified."
                    }
                  }
                }
              },
              "vnffgd": {
                "type": "array",
                "additionalProperties": false,
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "rsp": {
                      "type": "array",
                      "additionalProperties": false,
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "name": {
                            "type": "string",
                            "pattern": "",
                            "description": "RSP name."
                          },
                          "id": {
                            "type": "string",
                            "pattern": "",
                            "description": "Identifier for the RSP."
                          },
                          "vnfd-connection-point-ref": {
                            "type": "array",
                            "additionalProperties": false,
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "vnfd-egress-connection-point-ref": {
                                  "type": "string",
                                  "pattern": "",
                                  "description": "A reference to a connection point name\n   in a vnfd. This is a leafref to path:\n       /vnfd:vnfd-catalog/vnfd:vnfd\n       + [vnfd:id = current()/../nsd:vnfd-id-ref]\n       + /vnfd:connection-point/vnfd:name\n   NOTE: An issue with confd is preventing the\n   use of xpath. Seems to be an issue with leafref\n   to leafref, whose target is in a different module.\n   Once that is resolved this will switched to use\n   leafref"
                                },
                                "vnfd-ingress-connection-point-ref": {
                                  "type": "string",
                                  "pattern": "",
                                  "description": "A reference to a connection point name\n   in a vnfd. This is a leafref to path:\n       /vnfd:vnfd-catalog/vnfd:vnfd\n       + [vnfd:id = current()/../nsd:vnfd-id-ref]\n       + /vnfd:connection-point/vnfd:name\n   NOTE: An issue with confd is preventing the\n   use of xpath. Seems to be an issue with leafref\n   to leafref, whose target is in a different module.\n   Once that is resolved this will switched to use\n   leafref"
                                },
                                "order": {
                                  "type": "number",
                                  "description": "A number that denotes the order of a VNF in a chain"
                                },
                                "vnfd-id-ref": {
                                  "type": "string",
                                  "description": "A reference to a vnfd. This is a\n   leafref to path:\n       ../../../../nsd:constituent-vnfd\n       + [nsd:id = current()/../nsd:id-ref]\n       + /nsd:vnfd-id-ref"
                                },
                                "member-vnf-index-ref": {
                                  "type": "string",
                                  "description": "Reference to member-vnf within constituent-vnfds"
                                }
                              }
                            }
                          }
                        }
                      }
                    },
                    "short-name": {
                      "type": "string",
                      "pattern": "",
                      "description": "Short name to appear as label in the UI"
                    },
                    "id": {
                      "type": "string",
                      "pattern": "",
                      "description": "Identifier for the FGD."
                    },
                    "classifier": {
                      "type": "array",
                      "additionalProperties": false,
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "vnfd-id-ref": {
                            "type": "string",
                            "description": "A reference to a vnfd. This is a\n   leafref to path:\n       ../../../nsd:constituent-vnfd\n       + [nsd:id = current()/../nsd:id-ref]\n       + /nsd:vnfd-id-ref"
                          },
                          "match-attributes": {
                            "type": "array",
                            "additionalProperties": false,
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "source-ip-address": {
                                  "oneOf": [
                                    {
                                      "type": "string",
                                      "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])(%[\\p{N}\\p{L}]+)?"
                                    },
                                    {
                                      "type": "string",
                                      "pattern": "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                    }
                                  ],
                                  "description": "Source IP address."
                                },
                                "source-port": {
                                  "type": "number",
                                  "description": "Source port number."
                                },
                                "ip-proto": {
                                  "type": "number",
                                  "description": "IP Protocol."
                                },
                                "id": {
                                  "type": "string",
                                  "pattern": "",
                                  "description": "Identifier for the classifier match attribute rule."
                                },
                                "destination-ip-address": {
                                  "oneOf": [
                                    {
                                      "type": "string",
                                      "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])(%[\\p{N}\\p{L}]+)?"
                                    },
                                    {
                                      "type": "string",
                                      "pattern": "(([^:]+:){6}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                    }
                                  ],
                                  "description": "Destination IP address."
                                },
                                "destination-port": {
                                  "type": "number",
                                  "description": "Destination port number."
                                }
                              }
                            }
                          },
                          "id": {
                            "type": "string",
                            "pattern": "",
                            "description": "Identifier for the classifier rule."
                          },
                          "vnfd-connection-point-ref": {
                            "type": "string",
                            "pattern": "",
                            "description": "A reference to a connection point name\n   in a vnfd. This is a leafref to path:\n       /vnfd:vnfd-catalog/vnfd:vnfd\n       + [vnfd:id = current()/../nsd:vnfd-id-ref]\n       + /vnfd:connection-point/vnfd:name\n   NOTE: An issue with confd is preventing the\n   use of xpath. Seems to be an issue with leafref\n   to leafref, whose target is in a different module.\n   Once that is resolved this will switched to use\n   leafref"
                          },
                          "rsp-id-ref": {
                            "type": "string",
                            "description": "A reference to the RSP."
                          },
                          "name": {
                            "type": "string",
                            "pattern": "",
                            "description": "Name of the classifier."
                          },
                          "member-vnf-index-ref": {
                            "type": "string",
                            "description": "Reference to member-vnf within constituent-vnfds"
                          }
                        }
                      }
                    },
                    "vendor": {
                      "type": "string",
                      "pattern": "",
                      "description": "Provider of the FGD."
                    },
                    "name": {
                      "type": "string",
                      "pattern": "",
                      "description": "FGD name."
                    },
                    "version": {
                      "type": "string",
                      "pattern": "",
                      "description": "Version of the FGD"
                    },
                    "description": {
                      "type": "string",
                      "pattern": "",
                      "description": "Description of the FGD."
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}