{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "type": "object",
    "properties": {
        "vnfdId": {
            "type": "string"
        },
        "vnfProvider": {
            "type": "string"
        },
        "vnfProductName": {
            "type": "string"
        },
        "vnfSoftwareVersion": {
            "type": "string"
        },
        "vnfdVersion": {
            "type": "string"
        },
        "vdu": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "vduId": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "name": {
                        "type": "string"
                    },
                    "intCpd": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "cpdId": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "layerProtocol": {
                                    "type": "string"
                                },
                                "cpRole": {
                                    "type": "string"
                                },
                                "intVirtualLinkDesc": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                }
                            }
                        }
                    }
                }
            }
        },
        "intVirtualLinkDesc": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "virtualLinkDescId": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "virtualLinkDescFlavour": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "flavourId": {
                                    "type": "string"
                                },
                                "bitrateRequirements": {
                                    "type": "object",
                                    "properties": {
                                        "root": {
                                            "type": "integer"
                                        },
                                        "leaf": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "qos": {
                                    "type": "object",
                                    "properties": {
                                        "latency": {
                                            "type": "integer"
                                        },
                                        "packetDelayVariation": {
                                            "type": "integer"
                                        },
                                        "packetLossRatio": {
                                            "type": "integer"
                                        },
                                        "priority": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "connectivityType": {
                                    "type": "object",
                                    "properties": {
                                        "layerProtocol": {
                                            "type": "string"
                                        },
                                        "flowPattern": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "testAccess": {
                                    "type": "string"
                                },
                                "description": {
                                    "type": "string"
                                },
                                "monitoringParameter": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "performanceMetric": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "connectivityType": {
                        "type": "object",
                        "properties": {
                            "layerProtocol": {
                                "type": "string"
                            },
                            "flowPattern": {
                                "type": "string"
                            }
                        }
                    }
                }
            }
        },
        "vnfExtCpd": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "cpdId": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "layerProtocol": {
                        "type": "string"
                    },
                    "cpRole": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "intVirtualLinkDesc": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                }
            }
        },
        "deploymentFlavour": {
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "flavourId": {
                        "type": "string"
                    },
                    "description": {
                        "type": "string"
                    },
                    "vduProfile": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "vduId": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "minNumberOfInstances": {
                                    "type": "integer"
                                },
                                "maxNumberOfInstances": {
                                    "type": "integer"
                                },
                                "localAffinityOrAntiAffinityRule": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "type": {
                                                "type": "string"
                                            },
                                            "scope": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                },
                                "affinityOrAntiAffinityGroupId": {
                                    "type": "array",
                                    "items": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    },
                    "virtualLinkProfile": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "vnfVirtualLinkDescId": {
                                    "type": [
                                        "string",
                                        "null"
                                    ]
                                },
                                "flavourId": {
                                    "type": "string"
                                },
                                "localAffinityOrAntiAffinityRule": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "type": {
                                                "type": "string"
                                            },
                                            "scope": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                },
                                "affinityOrAntiAffinityGroupId": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "instantiationLevel": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "levelId": {
                                    "type": "string"
                                },
                                "description": {
                                    "type": "string"
                                },
                                "vduLevel": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "vduId": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ]
                                            },
                                            "numberOfInstances": {
                                                "type": "integer"
                                            }
                                        }
                                    }
                                },
                                "scaleInfo": {
                                    "type": "object",
                                    "properties": {
                                        "aspectId": {
                                            "type": "string"
                                        },
                                        "scaleLevel": {
                                            "type": "integer"
                                        }
                                    }
                                }
                            }
                        }
                    },
                    "defaultInstantiationLevelId": {
                        "type": "string"
                    },
                    "supportedOperation": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "vnfLcmOperationsConfiguration": {
                        "type": "object",
                        "properties": {
                            "instantiateVnfOpConfig": {
                                "type": "object",
                                "properties": {
                                    "parameter": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            },
                            "scaleVnfOpConfig": {
                                "type": "object",
                                "properties": {
                                    "parameter": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "scalingByMoreThanOneStepSupported": {
                                        "type": "boolean"
                                    }
                                }
                            },
                            "scaleVnfToLevelOpConfig": {
                                "type": "object",
                                "properties": {
                                    "parameter": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "arbitraryTargetLevelsSupported": {
                                        "type": "boolean"
                                    }
                                }
                            },
                            "healVnfOpConfig": {
                                "type": "object",
                                "properties": {
                                    "parameter": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    },
                                    "cause": {
                                        "type": "array",
                                        "items": {
                                            "type": "string"
                                        }
                                    }
                                }
                            },
                            "terminateVnfOpConfig": {
                                "type": "object",
                                "properties": {
                                    "minGracefulTerminationTimeout": {
                                        "type": "integer"
                                    },
                                    "maxRecommendedGracefulTerminationtimeout": {
                                        "type": "integer"
                                    }
                                }
                            },
                            "operateVnfOpConfig": {
                                "type": "object",
                                "properties": {
                                    "minGracefulStopTimeout": {
                                        "type": "integer"
                                    },
                                    "maxRecommendedGracefulStopTimeout": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    },
                    "affinityOrAntiAffinityGroup": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "groupId": {
                                    "type": "string"
                                },
                                "type": {
                                    "type": "string"
                                },
                                "scope": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "monitoringParameter": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "string"
                                },
                                "name": {
                                    "type": "string"
                                },
                                "performanceMetric": {
                                    "type": "string"
                                }
                            }
                        }
                    },
                    "scalingAspect": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "properties": {
                                "id": {
                                    "type": "string"
                                },
                                "name": {
                                    "type": "string"
                                },
                                "description": {
                                    "type": "string"
                                },
                                "associatedGroup": {
                                    "type": "string"
                                },
                                "maxScaleLevel": {
                                    "type": "integer"
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}