module: etsi-nfv-vnfd
  +--rw vnfd!
     +--rw id?                              string
     +--rw provider                         string
     +--rw product-name                     string
     +--rw software-version                 string
     +--rw version                          string
     +--rw product-info-name?               string
     +--rw product-info-description?        string
     +--rw vnfm-info*                       string
     +--rw localization-language?           string
     +--rw default-localization-language?   string
     +--rw vdu* [id]
     |  +--rw id                                              string
     |  +--rw name                                            string
     |  +--rw description?                                    string
     |  +--rw int-cpd* [id]
     |  |  +--rw int-virtual-link-desc?                    -> ../../../int-virtual-link-desc/id
     |  |  +--rw bitrate-requirement?                      uint64
     |  |  +--rw virtual-network-interface-requirement* [name]
     |  |  |  +--rw name                              string
     |  |  |  +--rw description?                      string
     |  |  |  +--rw support-mandatory?                boolean
     |  |  |  +--rw network-interface-requirements* [key]
     |  |  |  |  +--rw key      string
     |  |  |  |  +--rw value?   string
     |  |  |  +--rw epa:vif-quota
     |  |  |  |  +--rw epa:limit?     uint64
     |  |  |  |  +--rw epa:reserve?   uint64
     |  |  |  |  +--rw epa:shares?    uint64
     |  |  |  +--rw interface:position?               uint32
     |  |  |  +--rw interface:ip-address?             inet:ip-address
     |  |  |  +--rw interface:mac-address?            string
     |  |  |  +--rw interface:virtual-interface
     |  |  |     +--rw interface:type?        enumeration
     |  |  |     +--rw interface:vpci?        string
     |  |  |     +--rw interface:bandwidth?   uint64
     |  |  +--rw nicio-requirements?                       -> ../../../virtual-compute-desc/id
     |  |  +--rw order*                                    uint32
     |  |  +--rw id                                        string
     |  |  +--rw layer-protocol*                           identityref
     |  |  +--rw role?                                     identityref
     |  |  +--rw description?                              string
     |  |  +--rw protocol* [associated-layer-protocol]
     |  |  |  +--rw associated-layer-protocol    identityref
     |  |  |  +--rw address-data* [type]
     |  |  |     +--rw type               identityref
     |  |  |     +--rw l2-address-data
     |  |  |     |  +--rw mac-address-assignment    boolean
     |  |  |     +--rw l3-address-data
     |  |  |        +--rw ip-address-assignment     boolean
     |  |  |        +--rw floating-ip-activated     boolean
     |  |  |        +--rw ip-address-type?          enumeration
     |  |  |        +--rw number-of-ip-addresses?   uint32
     |  |  +--rw trunk-mode?                               boolean
     |  |  +--rw security-group-rule-id?                   -> ../../../security-group-rule/id
     |  |  +--rw various:port-security-enabled?            boolean
     |  |  +--rw various:port-security-disable-strategy?   enumeration
     |  +--rw virtual-compute-desc?                           -> ../../virtual-compute-desc/id
     |  +--rw virtual-storage-desc*                           -> ../../virtual-storage-desc/id
     |  +--rw boot-order* [key]
     |  |  +--rw key      uint32
     |  |  +--rw value?   -> ../../virtual-storage-desc
     |  +--rw sw-image-desc?                                  -> ../../sw-image-desc/id
     |  +--rw nfvi-constraint*                                string
     |  +--rw monitoring-parameter* [id]
     |  |  +--rw id                    string
     |  |  +--rw name?                 string
     |  |  +--rw performance-metric?   string
     |  |  +--rw collection-period?    uint64
     |  +--rw configurable-properties* [key]
     |  |  +--rw key      string
     |  |  +--rw value?   string
     |  +--rw boot-data?                                      string
     |  +--rw alarm:alarm* [alarm-id]
     |  |  +--rw alarm:alarm-id                    string
     |  |  +--rw alarm:vnf-monitoring-param-ref?   -> /vnfd:vnfd/df/monitoring-parameter/id
     |  |  +--rw alarm:name?                       string
     |  |  +--rw alarm:description?                string
     |  |  +--rw alarm:vdur-id?                    string
     |  |  +--rw alarm:actions
     |  |  |  +--rw alarm:ok* [url]
     |  |  |  |  +--rw alarm:url    string
     |  |  |  +--rw alarm:insufficient-data* [url]
     |  |  |  |  +--rw alarm:url    string
     |  |  |  +--rw alarm:alarm* [url]
     |  |  |     +--rw alarm:url    string
     |  |  +--rw alarm:repeat?                     boolean
     |  |  +--rw alarm:enabled?                    boolean
     |  |  +--rw alarm:severity?                   alarm-severity-type
     |  |  +--rw alarm:statistic?                  alarm-statistic-type
     |  |  +--rw alarm:operation?                  relational-operation-type
     |  |  +--rw alarm:value?                      decimal64
     |  |  +--rw alarm:period?                     uint32
     |  |  +--rw alarm:evaluations?                uint32
     |  +--rw alternative-images:alternative-sw-image-desc*   -> /vnfd:vnfd/sw-image-desc/id
     |  +--rw (cloud-init:cloud-init-input)?
     |  |  +--:(cloud-init:inline)
     |  |  |  +--rw cloud-init:cloud-init?                    string
     |  |  +--:(cloud-init:filename)
     |  |     +--rw cloud-init:cloud-init-file?               string
     |  +--rw various:pdu-type?                               string
     |  +--rw various:supplemental-boot-data
     |     +--rw various:boot-data-drive?   boolean
     +--rw virtual-compute-desc* [id]
     |  +--rw id                               string
     |  +--rw logical-node* [id]
     |  |  +--rw id                    string
     |  |  +--rw requirement-detail* [key]
     |  |     +--rw key      string
     |  |     +--rw value?   string
     |  +--rw request-additional-capability* [name]
     |  |  +--rw name                             string
     |  |  +--rw support-mandatory?               boolean
     |  |  +--rw min-version?                     string
     |  |  +--rw preferred-version?               string
     |  |  +--rw target-performance-parameters* [key]
     |  |     +--rw key      string
     |  |     +--rw value?   string
     |  +--rw compute-requirements?            string
     |  +--rw virtual-memory
     |  |  +--rw size?                       decimal64
     |  |  +--rw over-subscription-policy?   string
     |  |  +--rw vdu-mem-requirements* [key]
     |  |  |  +--rw key      string
     |  |  |  +--rw value?   string
     |  |  +--rw numa-enabled?               boolean
     |  |  +--rw epa:numa-node-policy
     |  |  |  +--rw epa:node-cnt?     uint16
     |  |  |  +--rw epa:mem-policy?   enumeration
     |  |  |  +--rw epa:node* [id]
     |  |  |     +--rw epa:id                      uint64
     |  |  |     +--rw epa:vcpu* [id]
     |  |  |     |  +--rw epa:id    uint64
     |  |  |     +--rw epa:memory-mb?              uint64
     |  |  |     +--rw (epa:om-numa-type)?
     |  |  |        +--:(epa:cores)
     |  |  |        |  +--rw epa:num-cores?        uint8
     |  |  |        +--:(epa:paired-threads)
     |  |  |        |  +--rw epa:paired-threads
     |  |  |        |     +--rw epa:num-paired-threads?   uint8
     |  |  |        |     +--rw epa:paired-thread-ids* [thread-a]
     |  |  |        |        +--rw epa:thread-a    uint8
     |  |  |        |        +--rw epa:thread-b?   uint8
     |  |  |        +--:(epa:threads)
     |  |  |           +--rw epa:num-threads?      uint8
     |  |  +--rw epa:mempage-size?           enumeration
     |  |  +--rw epa:mem-quota
     |  |     +--rw epa:limit?     uint64
     |  |     +--rw epa:reserve?   uint64
     |  |     +--rw epa:shares?    uint64
     |  +--rw virtual-cpu
     |     +--rw cpu-architecture?          string
     |     +--rw num-virtual-cpu?           uint16
     |     +--rw clock?                     uint32
     |     +--rw oversubscription-policy?   string
     |     +--rw vdu-cpu-requirements* [key]
     |     |  +--rw key      string
     |     |  +--rw value?   string
     |     +--rw pinning!
     |     |  +--rw policy?              enumeration
     |     |  +--rw rule* [key]
     |     |  |  +--rw key      string
     |     |  |  +--rw value?   string
     |     |  +--rw epa:thread-policy?   enumeration
     |     +--rw epa:cpu-quota
     |        +--rw epa:limit?     uint64
     |        +--rw epa:reserve?   uint64
     |        +--rw epa:shares?    uint64
     +--rw virtual-storage-desc* [id]
     |  +--rw id                             string
     |  +--rw type-of-storage?               identityref
     |  +--rw size-of-storage?               uint64
     |  +--rw vdu-storage-requirements* [key]
     |  |  +--rw key      string
     |  |  +--rw value?   string
     |  +--rw rdma-enabled?                  boolean
     |  +--rw sw-image-desc?                 -> ../../sw-image-desc/id
     |  +--rw additional-info:description?   string
     |  +--rw epa:disk-io-quota
     |  |  +--rw epa:limit?     uint64
     |  |  +--rw epa:reserve?   uint64
     |  |  +--rw epa:shares?    uint64
     |  +--rw various:device-bus?            enumeration
     +--rw sw-image-desc* [id]
     |  +--rw id                                      string
     |  +--rw name                                    string
     |  +--rw version                                 string
     |  +--rw checksum
     |  |  +--rw algorithm    identityref
     |  |  +--rw hash         string
     |  +--rw container-format?                       enumeration
     |  +--rw disk-format?                            enumeration
     |  +--rw min-disk                                uint64
     |  +--rw min-ram?                                decimal64
     |  +--rw size                                    uint64
     |  +--rw image?                                  inet:uri
     |  +--rw operating-system?                       string
     |  +--rw supported-virtualization-environment*   string
     |  +--rw alternative-images:vim-type?            string
     +--rw int-virtual-link-desc* [id]
     |  +--rw id                          string
     |  +--rw flavour* [id]
     |  |  +--rw id     string
     |  |  +--rw qos!
     |  |     +--rw latency                   uint32
     |  |     +--rw packet-delay-variation    uint32
     |  |     +--rw packet-loss-ratio?        decimal64
     |  +--rw connectivity-type
     |  |  +--rw layer-protocol*   identityref
     |  |  +--rw flow-pattern?     flow-pattern
     |  +--rw test-access*                string
     |  +--rw description?                string
     |  +--rw monitoring-parameters* [id]
     |  |  +--rw id                    string
     |  |  +--rw name?                 string
     |  |  +--rw performance-metric?   string
     |  |  +--rw collection-period?    uint64
     |  +--rw various:provider-network
     |     +--rw various:physical-network?   string
     |     +--rw various:segmentation_id?    uint32
     +--rw security-group-rule* [id]
     |  +--rw id                string
     |  +--rw description?      string
     |  +--rw direction?        enumeration
     |  +--rw ether-type?       enumeration
     |  +--rw protocol?         enumeration
     |  +--rw port-range-min?   uint16
     |  +--rw port-range-max?   uint16
     +--rw ext-cpd* [id]
     |  +--rw (cp-connection)?
     |  |  +--:(int-virtual-link-desc)
     |  |  |  +--rw int-virtual-link-desc?              -> ../../int-virtual-link-desc/id
     |  |  +--:(int-cpd)
     |  |  |  +--rw int-cpd
     |  |  |     +--rw vdu-id?   -> ../../../vdu/id
     |  |  |     +--rw cpd?      -> deref(../vdu-id)/../int-cpd/id
     |  |  +--:(kdu:k8s-cluster-net)
     |  |     +--rw kdu:k8s-cluster-net?                -> /vnfd:vnfd/kdu:k8s-cluster/nets/id
     |  +--rw virtual-network-interface-requirement* [name]
     |  |  +--rw name                              string
     |  |  +--rw description?                      string
     |  |  +--rw support-mandatory?                boolean
     |  |  +--rw network-interface-requirements* [key]
     |  |     +--rw key      string
     |  |     +--rw value?   string
     |  +--rw nicio-requirements?                       -> ../../virtual-compute-desc/id
     |  +--rw id                                        string
     |  +--rw layer-protocol*                           identityref
     |  +--rw role?                                     identityref
     |  +--rw description?                              string
     |  +--rw protocol* [associated-layer-protocol]
     |  |  +--rw associated-layer-protocol    identityref
     |  |  +--rw address-data* [type]
     |  |     +--rw type               identityref
     |  |     +--rw l2-address-data
     |  |     |  +--rw mac-address-assignment    boolean
     |  |     +--rw l3-address-data
     |  |        +--rw ip-address-assignment     boolean
     |  |        +--rw floating-ip-activated     boolean
     |  |        +--rw ip-address-type?          enumeration
     |  |        +--rw number-of-ip-addresses?   uint32
     |  +--rw trunk-mode?                               boolean
     |  +--rw security-group-rule-id?                   -> ../../security-group-rule/id
     |  +--rw various:port-security-enabled?            boolean
     |  +--rw various:port-security-disable-strategy?   enumeration
     +--rw df* [id]
     |  +--rw id                                 string
     |  +--rw description?                       string
     |  +--rw vdu-profile* [id]
     |  |  +--rw id                                      -> ../../../vdu/id
     |  |  +--rw min-number-of-instances?                uint16
     |  |  +--rw max-number-of-instances?                uint16
     |  |  +--rw local-affinity-or-anti-affinity-rule* [affinity-type affinity-scope]
     |  |  |  +--rw affinity-type     affinity-type
     |  |  |  +--rw affinity-scope    affinity-scope
     |  |  +--rw affinity-or-anti-affinity-group* [id]
     |  |     +--rw id    -> ../../../affinity-or-anti-affinity-group/id
     |  +--rw virtual-link-profile* [id flavour]
     |  |  +--rw id                                      -> ../../../int-virtual-link-desc/id
     |  |  +--rw flavour                                 -> deref(../../../ext-cpd/int-virtual-link-desc)/../flavour/id
     |  |  +--rw local-affinity-or-anti-affinity-rule* [affinity-type affinity-scope]
     |  |  |  +--rw affinity-type     affinity-type
     |  |  |  +--rw affinity-scope    affinity-scope
     |  |  +--rw affinity-or-anti-affinity-group* [id]
     |  |  |  +--rw id    -> ../../../affinity-or-anti-affinity-group/id
     |  |  +--rw max-bit-rate-requirements
     |  |  |  +--rw root    uint32
     |  |  |  +--rw leaf?   uint32
     |  |  +--rw min-bit-rate-requirements
     |  |  |  +--rw root    uint32
     |  |  |  +--rw leaf?   uint32
     |  |  +--rw virtual-link-protocol-data
     |  |     +--rw associated-layer-protocol?   identityref
     |  |     +--rw l2-protocol-data
     |  |     |  +--rw name?               string
     |  |     |  +--rw network-type?       enumeration
     |  |     |  +--rw vlan-transparent?   boolean
     |  |     |  +--rw mtu?                uint16
     |  |     +--rw l3-protocol-data
     |  |        +--rw name?                          string
     |  |        +--rw ip-version?                    enumeration
     |  |        +--rw cidr?                          string
     |  |        +--rw ip-allocation-pools*           string
     |  |        +--rw gateway-ip?                    inet:ip-address
     |  |        +--rw dhcp-enabled?                  boolean
     |  |        +--rw ipv6-address-mode?             enumeration
     |  |        +--rw additional-info:description?   string
     |  |        +--rw various:security-group?        string
     |  +--rw instantiation-level* [id]
     |  |  +--rw id              string
     |  |  +--rw description?    string
     |  |  +--rw vdu-level* [vdu-id]
     |  |  |  +--rw vdu-id                 -> ../../../../vdu/id
     |  |  |  +--rw number-of-instances?   uint16
     |  |  +--rw scaling-info* [scaling-aspect-id]
     |  |     +--rw scaling-aspect-id    -> ../../../scaling-aspect/id
     |  |     +--rw scale-level?         uint32
     |  +--rw default-instantiation-level?       -> ../instantiation-level/id
     |  +--rw supported-operation*               identityref
     |  +--rw lcm-operations-configuration
     |  |  +--rw instantiate-vnf-op-config
     |  |  |  +--rw parameter* [key]
     |  |  |     +--rw key      string
     |  |  |     +--rw value?   string
     |  |  +--rw scale-vnf-op-config
     |  |  |  +--rw parameter* [key]
     |  |  |  |  +--rw key      string
     |  |  |  |  +--rw value?   string
     |  |  |  +--rw scaling-by-more-than-one-step-supported?   boolean
     |  |  +--rw scale-vnf-to-level-op-config
     |  |  |  +--rw parameter* [key]
     |  |  |  |  +--rw key      string
     |  |  |  |  +--rw value?   string
     |  |  |  +--rw arbitrary-target-levels-supported?   boolean
     |  |  +--rw heal-vnf-op-config
     |  |  |  +--rw parameter* [key]
     |  |  |  |  +--rw key      string
     |  |  |  |  +--rw value?   string
     |  |  |  +--rw cause*       string
     |  |  +--rw terminate-vnf-op-config
     |  |  |  +--rw min-graceful-termination?               yang:timeticks
     |  |  |  +--rw max-recommended-graceful-termination?   yang:timeticks
     |  |  |  +--rw parameter* [key]
     |  |  |     +--rw key      string
     |  |  |     +--rw value?   string
     |  |  +--rw operate-vnf-op-config
     |  |  |  +--rw min-graceful-stop-timeout?               yang:timeticks
     |  |  |  +--rw max-recommended-graceful-stop-timeout?   yang:timeticks
     |  |  |  +--rw parameter* [key]
     |  |  |  |  +--rw key      string
     |  |  |  |  +--rw value?   string
     |  |  |  +--rw day1-2:day1-2* [id]
     |  |  |     +--rw day1-2:id                                  string
     |  |  |     +--rw (day1-2:config-method)?
     |  |  |     |  +--:(day1-2:script)
     |  |  |     |  |  +--rw day1-2:script
     |  |  |     |  |     +--rw day1-2:script-type?   enumeration
     |  |  |     |  +--:(day1-2:juju)
     |  |  |     |  |  +--rw day1-2:juju
     |  |  |     |  |     +--rw day1-2:charm?   string
     |  |  |     |  |     +--rw day1-2:proxy?   boolean
     |  |  |     |  |     +--rw day1-2:cloud?   enumeration
     |  |  |     |  +--:(day1-2:execution-environment-list)
     |  |  |     |     +--rw day1-2:execution-environment-list* [id]
     |  |  |     |        +--rw day1-2:id                               string
     |  |  |     |        +--rw (day1-2:execution-environment-model)?
     |  |  |     |        |  +--:(day1-2:juju)
     |  |  |     |        |  |  +--rw day1-2:juju
     |  |  |     |        |  |     +--rw day1-2:charm?   string
     |  |  |     |        |  |     +--rw day1-2:proxy?   boolean
     |  |  |     |        |  |     +--rw day1-2:cloud?   enumeration
     |  |  |     |        |  +--:(day1-2:helm-chart)
     |  |  |     |        |     +--rw day1-2:helm-chart?                string
     |  |  |     |        |     +--rw day1-2:helm-version?              enumeration
     |  |  |     |        +--rw day1-2:metric-service?                  string
     |  |  |     |        +--rw day1-2:external-connection-point-ref?   string
     |  |  |     +--rw day1-2:config-primitive* [name]
     |  |  |     |  +--rw day1-2:name                               string
     |  |  |     |  +--rw day1-2:execution-environment-ref?         -> ../../execution-environment-list/id
     |  |  |     |  +--rw day1-2:execution-environment-primitive?   string
     |  |  |     |  +--rw day1-2:parameter* [name]
     |  |  |     |  |  +--rw day1-2:name              string
     |  |  |     |  |  +--rw day1-2:data-type?        common:parameter-data-type
     |  |  |     |  |  +--rw day1-2:mandatory?        boolean
     |  |  |     |  |  +--rw day1-2:default-value?    string
     |  |  |     |  |  +--rw day1-2:parameter-pool?   string
     |  |  |     |  |  +--rw day1-2:read-only?        boolean
     |  |  |     |  |  +--rw day1-2:hidden?           boolean
     |  |  |     |  +--rw day1-2:user-defined-script?               string
     |  |  |     +--rw day1-2:initial-config-primitive* [seq]
     |  |  |     |  +--rw day1-2:seq                                uint64
     |  |  |     |  +--rw (day1-2:primitive-type)?
     |  |  |     |     +--:(day1-2:primitive-definition)
     |  |  |     |        +--rw day1-2:name?                        string
     |  |  |     |        +--rw day1-2:execution-environment-ref?   -> ../../execution-environment-list/id
     |  |  |     |        +--rw day1-2:parameter* [name]
     |  |  |     |        |  +--rw day1-2:name         string
     |  |  |     |        |  +--rw day1-2:data-type?   common:parameter-data-type
     |  |  |     |        |  +--rw day1-2:value?       string
     |  |  |     |        +--rw day1-2:user-defined-script?         string
     |  |  |     +--rw day1-2:terminate-config-primitive* [seq]
     |  |  |     |  +--rw day1-2:seq                          uint64
     |  |  |     |  +--rw day1-2:name?                        string
     |  |  |     |  +--rw day1-2:execution-environment-ref?   -> ../../execution-environment-list/id
     |  |  |     |  +--rw day1-2:parameter* [name]
     |  |  |     |  |  +--rw day1-2:name         string
     |  |  |     |  |  +--rw day1-2:data-type?   common:parameter-data-type
     |  |  |     |  |  +--rw day1-2:value?       string
     |  |  |     |  +--rw day1-2:user-defined-script?         string
     |  |  |     +--rw day1-2:metrics* [name]
     |  |  |     |  +--rw day1-2:name    string
     |  |  |     +--rw day1-2:relation* [name]
     |  |  |     |  +--rw day1-2:name        string
     |  |  |     |  +--rw day1-2:entities* [id]
     |  |  |     |     +--rw day1-2:id          string
     |  |  |     |     +--rw day1-2:endpoint?   string
     |  |  |     +--rw day1-2:config-access
     |  |  |     |  +--rw day1-2:ssh-access
     |  |  |     |     +--rw day1-2:required?       boolean
     |  |  |     |     +--rw day1-2:default-user?   string
     |  |  |     +--rw day1-2:blacklist-config-primitive*         enumeration
     |  |  +--rw change-vnf-flavour-op-config
     |  |  |  +--rw parameter* [key]
     |  |  |     +--rw key      string
     |  |  |     +--rw value?   string
     |  |  +--rw change-ext-vnf-connectivity-op-config
     |  |     +--rw parameter* [key]
     |  |        +--rw key      string
     |  |        +--rw value?   string
     |  +--rw affinity-or-anti-affinity-group* [id]
     |  |  +--rw id       string
     |  |  +--rw type     affinity-type
     |  |  +--rw scope    affinity-scope
     |  +--rw indicator* [id]
     |  |  +--rw id                 string
     |  |  +--rw name?              string
     |  |  +--rw indicator-value?   string
     |  |  +--rw source?            enumeration
     |  +--rw supported-vnf-interfaces* [name]
     |  |  +--rw name                 enumeration
     |  |  +--rw cpd-id*              -> ../../../ext-cpd/id
     |  |  +--rw interface-details* [key]
     |  |     +--rw key      string
     |  |     +--rw value?   string
     |  +--rw monitoring-parameter* [id]
     |  |  +--rw id                    string
     |  |  +--rw name?                 string
     |  |  +--rw performance-metric?   string
     |  |  +--rw collection-period?    uint64
     |  +--rw scaling-aspect* [id]
     |     +--rw id                               string
     |     +--rw name?                            string
     |     +--rw description?                     string
     |     +--rw max-scale-level?                 uint32
     |     +--rw aspect-delta-details
     |     |  +--rw deltas* [id]
     |     |  |  +--rw id                             string
     |     |  |  +--rw vdu-delta* [id]
     |     |  |  |  +--rw id                     -> ../../../../../../vdu/id
     |     |  |  |  +--rw number-of-instances?   uint32
     |     |  |  +--rw virtual-link-bit-rate-delta* [id]
     |     |  |     +--rw id                       string
     |     |  |     +--rw bit-rate-requirements
     |     |  |        +--rw root    uint32
     |     |  |        +--rw leaf?   uint32
     |     |  +--rw step-deltas?   -> ../deltas/id
     |     +--rw scaling:scaling-policy* [name]
     |     |  +--rw scaling:name                        string
     |     |  +--rw scaling:scaling-type?               common:scaling-policy-type
     |     |  +--rw scaling:enabled?                    boolean
     |     |  +--rw scaling:scale-in-operation-type?    common:scaling-criteria-operation
     |     |  +--rw scaling:scale-out-operation-type?   common:scaling-criteria-operation
     |     |  +--rw scaling:threshold-time              uint32
     |     |  +--rw scaling:cooldown-time               uint32
     |     |  +--rw scaling:scaling-criteria* [name]
     |     |     +--rw scaling:name                              string
     |     |     +--rw scaling:scale-in-threshold?               decimal64
     |     |     +--rw scaling:scale-in-relational-operation?    common:relational-operation-type
     |     |     +--rw scaling:scale-out-threshold?              decimal64
     |     |     +--rw scaling:scale-out-relational-operation?   common:relational-operation-type
     |     |     +--rw scaling:vnf-monitoring-param-ref?         string
     |     +--rw scaling:scaling-config-action* [trigger]
     |        +--rw scaling:trigger                          common:scaling-trigger
     |        +--rw scaling:vnf-config-primitive-name-ref?   -> /vnfd:vnfd/df/lcm-operations-configuration/operate-vnf-op-config/day1-2:day1-2/config-primitive/name
     +--rw configurable-properties
     |  +--rw is-auto-scalable-enabled?           boolean
     |  +--rw is-auto-heal-enabled?               boolean
     |  +--rw additional-configurable-property* [key]
     |     +--rw key      string
     |     +--rw value?   string
     +--rw modifiable-attributes
     |  +--rw extension*   string
     |  +--rw metadata*    string
     +--rw lifecycle-management-script* [id]
     |  +--rw id                      string
     |  +--rw event*                  internal-lifecycle-management-script-event
     |  +--rw lcm-transition-event*   string
     |  +--rw script?                 string
     |  +--rw script-dsl?             string
     |  +--rw script-input* [key]
     |     +--rw key      string
     |     +--rw value?   string
     +--rw element-group* [id]
     |  +--rw id                   string
     |  +--rw description?         string
     |  +--rw vdu*                 -> ../../vdu/id
     |  +--rw virtual-link-desc*   -> ../../int-virtual-link-desc/id
     +--rw indicator* [id]
     |  +--rw id                 string
     |  +--rw name?              string
     |  +--rw indicator-value*   string
     |  +--rw source?            enumeration
     +--rw auto-scale*                      string
     +--rw additional-info:description?     string
     +--rw kdu:kdu* [name]
     |  +--rw kdu:name                  string
     |  +--rw kdu:description?          string
     |  +--rw (kdu:kdu-model)?
     |     +--:(kdu:helm-chart)
     |     |  +--rw kdu:helm-chart?     string
     |     |  +--rw kdu:helm-version?   enumeration
     |     +--:(kdu:juju-bundle)
     |        +--rw kdu:juju-bundle?    string
     +--rw kdu:k8s-cluster
     |  +--rw kdu:version*   string
     |  +--rw kdu:cni*       enumeration
     |  +--rw kdu:nets* [id]
     |     +--rw kdu:id    string
     +--rw kdu:service* [name]
     |  +--rw kdu:name                             string
     |  +--rw kdu:mgmt-service?                    boolean
     |  +--rw kdu:external-connection-point-ref?   string
     +--rw mgmt-interface:mgmt-cp?          -> /vnfd:vnfd/ext-cpd/id
     +--rw vip:vip* [name]
        +--rw vip:name                 string
        +--rw vip:paired-interfaces* [vdu-id-ref]
           +--rw vip:vdu-id-ref       -> /vnfd:vnfd/vdu/id
           +--rw vip:interface-ref?   -> /vnfd:vnfd/vdu/int-cpd/virtual-network-interface-requirement/name

module: ip-profiles

  augment /nsd:nsd/nsd:nsd/nsd:df/nsd:virtual-link-profile:
    +--rw virtual-link-protocol-data
       +--rw associated-layer-protocol?   identityref
       +--rw l2-protocol-data
       |  +--rw name?               string
       |  +--rw network-type?       enumeration
       |  +--rw vlan-transparent?   boolean
       |  +--rw mtu?                uint16
       +--rw l3-protocol-data
          +--rw name?                        string
          +--rw ip-version?                  enumeration
          +--rw cidr?                        string
          +--rw ip-allocation-pools*         string
          +--rw gateway-ip?                  inet:ip-address
          +--rw dhcp-enabled?                boolean
          +--rw ipv6-address-mode?           enumeration
          +--rw ns-various:security-group?   string

module: ns-configuration

  augment /nsd:nsd/nsd:nsd:
    +--rw ns-configuration
       +--rw (config-method)?
       |  +--:(script)
       |  |  +--rw script
       |  |     +--rw script-type?   enumeration
       |  +--:(juju)
       |  |  +--rw juju
       |  |     +--rw charm?   string
       |  |     +--rw proxy?   boolean
       |  |     +--rw cloud?   enumeration
       |  +--:(execution-environment-list)
       |     +--rw execution-environment-list* [id]
       |        +--rw id                               string
       |        +--rw (execution-environment-model)?
       |        |  +--:(juju)
       |        |  |  +--rw juju
       |        |  |     +--rw charm?   string
       |        |  |     +--rw proxy?   boolean
       |        |  |     +--rw cloud?   enumeration
       |        |  +--:(helm-chart)
       |        |     +--rw helm-chart?                string
       |        |     +--rw helm-version?              enumeration
       |        +--rw metric-service?                  string
       |        +--rw external-connection-point-ref?   string
       +--rw config-primitive* [name]
       |  +--rw name                               string
       |  +--rw execution-environment-ref?         -> ../../execution-environment-list/id
       |  +--rw execution-environment-primitive?   string
       |  +--rw parameter* [name]
       |  |  +--rw name              string
       |  |  +--rw data-type?        common:parameter-data-type
       |  |  +--rw mandatory?        boolean
       |  |  +--rw default-value?    string
       |  |  +--rw parameter-pool?   string
       |  |  +--rw read-only?        boolean
       |  |  +--rw hidden?           boolean
       |  +--rw user-defined-script?               string
       +--rw initial-config-primitive* [seq]
       |  +--rw seq                                uint64
       |  +--rw (primitive-type)?
       |     +--:(primitive-definition)
       |        +--rw name?                        string
       |        +--rw execution-environment-ref?   -> ../../execution-environment-list/id
       |        +--rw parameter* [name]
       |        |  +--rw name         string
       |        |  +--rw data-type?   common:parameter-data-type
       |        |  +--rw value?       string
       |        +--rw user-defined-script?         string
       +--rw terminate-config-primitive* [seq]
       |  +--rw seq                          uint64
       |  +--rw name?                        string
       |  +--rw execution-environment-ref?   -> ../../execution-environment-list/id
       |  +--rw parameter* [name]
       |  |  +--rw name         string
       |  |  +--rw data-type?   common:parameter-data-type
       |  |  +--rw value?       string
       |  +--rw user-defined-script?         string
       +--rw metrics* [name]
       |  +--rw name    string
       +--rw relation* [name]
          +--rw name        string
          +--rw entities* [id]
             +--rw id          string
             +--rw endpoint?   string

module: ns-various

  augment /nsd:nsd/nsd:nsd:
    +--rw description?   string
  augment /nsd:nsd/nsd:nsd/nsd:sapd:
    +--rw floating-ip-required?   boolean

module: ns-vld

  augment /nsd:nsd/nsd:nsd/nsd:virtual-link-desc:
    +--rw provider-network
    |  +--rw physical-network?   string
    |  +--rw segmentation_id?    uint32
    +--rw mgmt-network?       boolean
    +--rw vim-network-name?   string
  augment /nsd:nsd/nsd:nsd/nsd:df/nsd:vnf-profile/nsd:virtual-link-connectivity:
    +--rw constituent-cpd-id* [constituent-base-element-id constituent-cpd-id]
       +--rw constituent-base-element-id    -> ../../../nsd:id
       +--rw constituent-cpd-id             -> deref(../../../nsd:vnfd-id)/../ext-cpd/id
       +--rw ip-address?                    inet:ip-address

