module etsi-nfv-descriptors {
  yang-version 1.1;
  namespace "urn:etsi:nfv:yang:etsi-nfv-descriptors";
  prefix nfv;

  include etsi-nfv-common;
  include etsi-nfv-ns;
  include etsi-nfv-vnf;
  include etsi-nfv-pnf;

  organization
    "European Telecommunications Standards Institute (ETSI)";

  description
    "Network Function Virtualization Descriptors";

  revision 2019-04-25 {
    description
      "Initial revision.
       NSD and PNFD according to ETSI GS NFV-IFA 014 Ed261v252
       VNFD according to ETSI GS NFV-IFA 011 Ed261v254";
  }

  container nfv {
    list vnfd {
      key "id";
      description
        "A VNF Descriptor (VNFD) is a deployment template which
         describes a VNF in terms of deployment and operational
         behaviour requirements. It also contains connectivity,
         interface and virtualised resource requirements";
      reference
        "GS NFV-IFA011: Section 7.1.2, VNFD information element";

      uses vnfd;
    }

    list nsd {
      key "id";

      description
        "The NSD information element is a deployment template whose
         instances are used by the NFVO for the lifecycle
         management of NSs.";
      reference
        "GS NFV-IFA014: Section 6.2.2, Network Service Descriptor
         information element.";

      uses nsd;
    }

    list pnfd {
      key "id";

      description
	"The Pnfd information element is a deployment template
         enabling on-boarding PNFs and referencing them from an
         NSD. It focuses on connectivity aspects only.";
      reference
        "GS NFV-IFA014: Section 6.6.2, Pnfd information element.";

      uses pnfd;
    }
  }
}
