{
  "type": "object",
  "title": "nst",
  "description": "Generated by pyang from module nst",
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-04/schema#",
  "properties": {
    "nst": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "netslice-connection-point": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "nsd-connection-point-ref": {
                  "type": "string",
                  "description": ""
                },
                "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."
                },
                "netslice-vld-id-ref": {
                  "type": "string",
                  "description": "ID reference to a NSVLD in the NS"
                },
                "name": {
                  "type": "string",
                  "pattern": "",
                  "description": "Name of the connection point."
                },
                "nsd-id-ref": {
                  "type": "string",
                  "description": "A reference to a nsd."
                }
              }
            },
            "additionalProperties": false
          },
          "name": {
            "type": "string",
            "pattern": "",
            "description": ""
          },
          "quality-of-service": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "resource-type": {
                "description": "Quality of service resource type",
                "properties": {
                  "type": {
                    "enum": [
                      "delay-critical-GBR",
                      "GBR",
                      "non-GBR"
                    ]
                  }
                }
              },
              "id": {
                "type": "number",
                "description": "Quality of service identifier"
              },
              "priority-level": {
                "type": "number",
                "description": "Priority level of the service"
              },
              "default-max-data-burst": {
                "type": "number",
                "description": "Maximum data burst given in bytes (B)"
              },
              "packet-delay-budget": {
                "type": "number",
                "description": "Packet delay budget in miliseconds (ms)"
              },
              "packet-error-rate": {
                "type": "number",
                "description": "Packet error rate (PER) given in powers of ten"
              }
            }
          },
          "id": {
            "type": "string",
            "pattern": "",
            "description": ""
          },
          "SNSSAI-identifier": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "slice-service-type": {
                "description": "Network slice service type ",
                "properties": {
                  "type": {
                    "enum": [
                      "eMBB",
                      "URLLC",
                      "mMTC"
                    ]
                  }
                }
              },
              "slice-differentiator": {
                "type": "string",
                "pattern": "",
                "description": "Network slice differentiator"
              }
            }
          },
          "netslice-vld": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "type": {
                  "description": "",
                  "properties": {
                    "type": {
                      "enum": [
                        "ELAN",
                        "ELINE",
                        "L3"
                      ]
                    }
                  }
                },
                "nss-connection-point-ref": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "nsd-connection-point-ref": {
                        "type": "string",
                        "description": "A reference to a connection point name"
                      },
                      "nss-ref": {
                        "type": "string",
                        "description": "Reference to nsd"
                      },
                      "ip-address": {
                        "description": "IP address of the connection point",
                        "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                          }
                        ]
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "description": {
                  "type": "string",
                  "pattern": "",
                  "description": "Description of the VLD."
                },
                "short-name": {
                  "type": "string",
                  "pattern": "",
                  "description": "Short name to appear as label in the UI"
                },
                "mgmt-network": {
                  "type": "boolean",
                  "description": "Flag indicating whether this network is a VIM management network"
                },
                "vendor": {
                  "type": "string",
                  "pattern": "",
                  "description": "Provider of the VLD."
                },
                "leaf-bandwidth": {
                  "type": "integer",
                  "description": "For ELAN this is the bandwidth of branches."
                },
                "provider-network": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "segmentation_id": {
                      "type": "integer",
                      "description": "ID of segregated virtual networks"
                    },
                    "physical-network": {
                      "type": "string",
                      "pattern": "",
                      "description": "Name of the physical network on which the provider\nnetwork is built."
                    }
                  }
                },
                "name": {
                  "type": "string",
                  "pattern": "",
                  "description": "Virtual Link Descriptor (VLD) name."
                },
                "version": {
                  "type": "string",
                  "pattern": "",
                  "description": "Version of the VLD"
                },
                "id": {
                  "type": "string",
                  "pattern": "",
                  "description": "Identifier for the VLD."
                },
                "root-bandwidth": {
                  "type": "integer",
                  "description": "For ELAN this is the aggregate bandwidth."
                }
              }
            },
            "additionalProperties": false
          },
          "netslice-subnet": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "is-shared-nss": {
                  "type": "boolean",
                  "description": "NSS is shared between NS"
                },
                "description": {
                  "type": "string",
                  "pattern": "",
                  "description": "Description of the NSD."
                },
                "nsd-ref": {
                  "type": "string",
                  "description": "Reference to catalog NSD"
                },
                "id": {
                  "type": "string",
                  "pattern": "",
                  "description": "Identifier or name for the netslice-subnet in NST scope."
                },
                "instantiation-parameters": {
                  "type": "object",
                  "additionalProperties": false,
                  "properties": {
                    "ssh_keys": {
                      "type": "string",
                      "pattern": "",
                      "description": ""
                    },
                    "vnf": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "member-vnf-index": {
                            "type": "string",
                            "pattern": "",
                            "description": ""
                          },
                          "internal-vld": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "vim-network-name": {
                                  "type": "string",
                                  "pattern": "",
                                  "description": ""
                                },
                                "internal-connection-point": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "ip-address": {
                                        "description": "",
                                        "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                          }
                                        ]
                                      },
                                      "id-ref": {
                                        "type": "string",
                                        "pattern": "",
                                        "description": ""
                                      }
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "name": {
                                  "type": "string",
                                  "pattern": "",
                                  "description": ""
                                },
                                "ip-profile": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "dhcp-params": {
                                      "type": "object",
                                      "additionalProperties": false,
                                      "properties": {
                                        "enabled": {
                                          "type": "boolean",
                                          "description": ""
                                        },
                                        "count": {
                                          "type": "number",
                                          "description": ""
                                        },
                                        "start-address": {
                                          "description": "",
                                          "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                            }
                                          ]
                                        }
                                      }
                                    },
                                    "dns-server": {
                                      "type": "array",
                                      "items": {
                                        "type": "object",
                                        "additionalProperties": false,
                                        "properties": {
                                          "address": {
                                            "description": "",
                                            "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                              }
                                            ]
                                          }
                                        }
                                      },
                                      "additionalProperties": false
                                    },
                                    "subnet-address": {
                                      "description": "",
                                      "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(/.+)"
                                        }
                                      ]
                                    },
                                    "gateway-address": {
                                      "description": "",
                                      "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                        }
                                      ]
                                    },
                                    "ip-version": {
                                      "description": "",
                                      "properties": {
                                        "type": {
                                          "enum": [
                                            "unknown",
                                            "ipv4",
                                            "ipv6"
                                          ]
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "additionalProperties": false
                          },
                          "vdu": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "interface": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "floating-ip-required": {
                                        "type": "boolean",
                                        "description": ""
                                      },
                                      "ip-address": {
                                        "description": "",
                                        "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                          }
                                        ]
                                      },
                                      "name": {
                                        "type": "string",
                                        "pattern": "",
                                        "description": ""
                                      },
                                      "mac-address": {
                                        "type": "string",
                                        "pattern": "[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}",
                                        "description": ""
                                      }
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "volume": {
                                  "type": "array",
                                  "items": {
                                    "type": "object",
                                    "additionalProperties": false,
                                    "properties": {
                                      "vim-volume-id": {
                                        "type": "string",
                                        "pattern": "",
                                        "description": ""
                                      },
                                      "name": {
                                        "type": "string",
                                        "pattern": "",
                                        "description": ""
                                      }
                                    }
                                  },
                                  "additionalProperties": false
                                },
                                "id": {
                                  "type": "string",
                                  "pattern": "",
                                  "description": ""
                                }
                              }
                            },
                            "additionalProperties": false
                          },
                          "vimAccountId": {
                            "type": "string",
                            "pattern": "",
                            "description": ""
                          }
                        }
                      },
                      "additionalProperties": false
                    },
                    "vimAccountId": {
                      "type": "string",
                      "pattern": "",
                      "description": ""
                    },
                    "vld": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "additionalProperties": false,
                        "properties": {
                          "vim-network-name": {
                            "type": "string",
                            "pattern": "",
                            "description": ""
                          },
                          "name": {
                            "type": "string",
                            "pattern": "",
                            "description": ""
                          },
                          "vnfd-connection-point-ref": {
                            "type": "array",
                            "items": {
                              "type": "object",
                              "additionalProperties": false,
                              "properties": {
                                "ip-address": {
                                  "description": "",
                                  "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                    }
                                  ]
                                },
                                "member-vnf-index-ref": {
                                  "type": "string",
                                  "description": ""
                                },
                                "vnfd-connection-point-ref": {
                                  "type": "string",
                                  "description": ""
                                }
                              }
                            },
                            "additionalProperties": false
                          },
                          "ip-profile": {
                            "type": "object",
                            "additionalProperties": false,
                            "properties": {
                              "dhcp-params": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                  "enabled": {
                                    "type": "boolean",
                                    "description": ""
                                  },
                                  "count": {
                                    "type": "number",
                                    "description": ""
                                  },
                                  "start-address": {
                                    "description": "",
                                    "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                      }
                                    ]
                                  }
                                }
                              },
                              "dns-server": {
                                "type": "array",
                                "items": {
                                  "type": "object",
                                  "additionalProperties": false,
                                  "properties": {
                                    "address": {
                                      "description": "",
                                      "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                        }
                                      ]
                                    }
                                  }
                                },
                                "additionalProperties": false
                              },
                              "subnet-address": {
                                "description": "",
                                "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(/.+)"
                                  }
                                ]
                              },
                              "gateway-address": {
                                "description": "",
                                "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                  }
                                ]
                              },
                              "ip-version": {
                                "description": "",
                                "properties": {
                                  "type": {
                                    "enum": [
                                      "unknown",
                                      "ipv4",
                                      "ipv6"
                                    ]
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "additionalProperties": false
                    }
                  }
                }
              }
            },
            "additionalProperties": false
          },
          "netslicefgd": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "properties": {
                "description": {
                  "type": "string",
                  "pattern": "",
                  "description": "Description of the FGD."
                },
                "version": {
                  "type": "string",
                  "pattern": "",
                  "description": "Version of the FGD"
                },
                "id": {
                  "type": "string",
                  "pattern": "",
                  "description": "Identifier for the FGD."
                },
                "classifier": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "match-attributes": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "destination-ip-address": {
                              "description": "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                }
                              ]
                            },
                            "ip-proto": {
                              "type": "number",
                              "description": "IP Protocol."
                            },
                            "id": {
                              "type": "string",
                              "pattern": "",
                              "description": "Identifier for the classifier match attribute rule."
                            },
                            "source-ip-address": {
                              "description": "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}(([^:]+:[^:]+)|(.*\\..*)))|((([^:]+:)*[^:]+)?::(([^:]+:)*[^:]+)?)(%.+)?"
                                }
                              ]
                            },
                            "destination-port": {
                              "type": "number",
                              "description": "Destination port number."
                            },
                            "source-port": {
                              "type": "number",
                              "description": "Source port number."
                            }
                          }
                        },
                        "additionalProperties": false
                      },
                      "rsp-id-ref": {
                        "type": "string",
                        "description": "A reference to the RSP."
                      },
                      "name": {
                        "type": "string",
                        "pattern": "",
                        "description": "Name of the classifier."
                      },
                      "id": {
                        "type": "string",
                        "pattern": "",
                        "description": "Identifier for the classifier rule."
                      },
                      "nsd-ref": {
                        "type": "string",
                        "description": ""
                      },
                      "nsd-connection-point-ref": {
                        "type": "string",
                        "description": ""
                      }
                    }
                  },
                  "additionalProperties": false
                },
                "name": {
                  "type": "string",
                  "pattern": "",
                  "description": "FGD name."
                },
                "short-name": {
                  "type": "string",
                  "pattern": "",
                  "description": "Short name to appear as label in the UI"
                },
                "vendor": {
                  "type": "string",
                  "pattern": "",
                  "description": "Provider of the FGD."
                },
                "rsp": {
                  "type": "array",
                  "items": {
                    "type": "object",
                    "additionalProperties": false,
                    "properties": {
                      "nsd-connection-point-ref": {
                        "type": "array",
                        "items": {
                          "type": "object",
                          "additionalProperties": false,
                          "properties": {
                            "nsd-connection-point-ref": {
                              "type": "string",
                              "description": ""
                            },
                            "nsd-ref": {
                              "type": "string",
                              "description": "Reference to member-vnf within constituent-vnfds"
                            },
                            "order": {
                              "type": "number",
                              "description": "A number that denotes the order of a NSD in a chain"
                            }
                          }
                        },
                        "additionalProperties": false
                      },
                      "name": {
                        "type": "string",
                        "pattern": "",
                        "description": "RSP name."
                      },
                      "id": {
                        "type": "string",
                        "pattern": "",
                        "description": "Identifier for the RSP."
                      }
                    }
                  },
                  "additionalProperties": false
                }
              }
            },
            "additionalProperties": false
          }
        }
      },
      "additionalProperties": false
    }
  }
}