etsi-nfv-vnf.yang 112 KB
Newer Older
             information element";
        }

        list vdu-level {
          key "vdu-id";
          min-elements 1;
          description
            "Sets the number of instances for the VDU in this
             instantiation level.";
          reference
            "GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
             information element";

          leaf vdu-id {
            type leafref {
              path "../../../../vdu/id";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            }
            description
              "Uniquely identifies a VDU.";
            reference
              "GS NFV IFA011: Section 7.1.8.9 VduLevel information
               element";
          leaf number-of-instances {
            type uint16;
            must ". <= ../../../../df/" +
                 "vdu-profile[id=current()/../vdu-id]/" +
                 "max-number-of-instances";
            must ". >= ../../../../df/" +
                 "vdu-profile[id=current()/../vdu-id]/" +
                 "min-number-of-instances";
            default 1;
            description
              "Number of instances of VNFC based on this VDU to
               deploy for this level.";
              "GS NFV IFA011: Section 7.1.8.9 VduLevel information
               element";
          }
        }
        list scaling-info {
          key "scaling-aspect-id";
          description
            "The InstantiationLevel information element describes a
             given level of resources to be instantiated within a
             DF in term of the number of VNFC instances to be
             created from each VDU.";
          reference
            "GS NFV IFA011: Section 7.1.8.7 InstantiationLevel
             information element";

          leaf scaling-aspect-id {
            type leafref {
              path "../../../scaling-aspect/id";
            description
              "Identifier of the scaling aspect.";
            reference
              "GS NFV IFA011: Section 7.1.8.8 ScaleInfo information
               element";
          }
          leaf scale-level {
            type uint32;
            description
              "The scale level, greater than or equal to 0.";
            reference
              "GS NFV IFA011: Section 7.1.8.8 ScaleInfo information
               element";
          }
        }
      }

      leaf default-instantiation-level {
        type leafref {
          path "../instantiation-level/id";
        }
        description
          "This attribute references the 'instantiationLevel'
           entry which defines the default instantiation level for
           this DF. It shall be present if there are multiple
           'instantiationLevel' entries.";
        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
           element";
      }

      leaf-list supported-operation {
        type identityref {
          base supported-operation;
        }
        description
          "Indicates which operations are available for this DF via
           the VNF LCM interface. Instantiate VNF, Query VNF and
           Terminate VNF are supported in all DF and therefore
           need not be included in this list.";
        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
           element";
      }

      container lcm-operations-configuration {
        description
          "This information element is a container for all
           attributes that affect the invocation of the VNF
           Lifecycle Management operations, structured by
           operation.";
        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
           element";

        container instantiate-vnf-op-config {
          list parameter {
            key "key";

            leaf key {
              type string;
            leaf value {
              type string;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            }
            description
              "Array of KVP requirements for VNF-specific parameters
               to be passed when invoking the InstantiateVnf
               operation.";
            reference
              "GS NFV IFA011: Section 7.1.5.3
               InstantiateVnfOpConfig information element";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
          }
          description
            "Configuration parameters for the InstantiateVnf
             operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";
        }
        container scale-vnf-op-config {
          description
            "Configuration parameters for the ScaleVnf operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";

          list parameter {
            key "key";

            leaf key {
              type string;
            }

            leaf value {
              type string;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            }
            description
              "Array of KVP requirements for VNFspecific parameters
               to be passed when invoking the ScaleVnf operation.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.4 ScaleVnfOpConfig
               information element";
          leaf scaling-by-more-than-one-step-supported {
            type boolean;
            default false;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            description
              "Signals whether passing a value larger than one in
               the numScalingSteps parameter of the ScaleVnf
               operation is supported by this VNF.
               Default is FALSE, i.e. 'not supported'.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.4
               ScaleVnfOpConfig information element";
        container scale-vnf-to-level-op-config {
          description
            "This information element defines attributes that
             affect the invocation of the ScaleVnfToLevel
             operation.";
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";
          list parameter {
            key "key";
            leaf key {
              type string;
            }
            leaf value {
              type string;
            }
            description
              "Array of KVP requirements for VNF-specific parameters
               to be passed when invoking the ScaleVnfToLevel
               operation.";
              "GS NFV IFA011: Section 7.1.5.5
               ScaleVnfToLevelOpConfig information element";
          leaf arbitrary-target-levels-supported {
            type boolean;
            default "false";
            description
              "Signals whether scaling according to the parameter
               'scaleInfo' is supported by this VNF.";
              "GS NFV IFA011: Section 7.1.5.5
               ScaleVnfToLevelOpConfig information element";
        container heal-vnf-op-config {
          description
            "This information element defines attributes that
             affect the invocation of the HealVnf operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";

          list parameter {
            key "key";

            leaf key {
              type string;
            }

            leaf value {
              type string;
            }
            description
              "Array of KVP requirements for VNF-specific parameters
               to be passed when invoking the HealVnf operation.";
              "GS NFV IFA011: Section 7.1.5.6 HealVnfOpConfig
               information element";
          leaf-list cause {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            type string;
            description
              "Supported 'cause' parameter values.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.6 HealVnfOpConfig
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
               information element";
          }
        container terminate-vnf-op-config {
          description
            "This information element defines attributes that
             affect the invocation of the TerminateVnf operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";

          leaf min-graceful-termination {
            type yang:timeticks;
            default "1";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            description
              "Minimum timeout value for graceful termination of
               a VNF instance.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.7
               TerminateVnfOpConfig information element";
          leaf max-recommended-graceful-termination {
            type yang:timeticks;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            description
              "Maximum recommended timeout value that can be needed
               to gracefully terminate a VNF instance of a
               particular type under certain conditions, such as
               maximum load condition. This is provided by VNF
               provider as information for the operator
               facilitating the selection of optimal timeout value.
               This value is not used as constraint.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.7
               TerminateVnfOpConfig information element";
          list parameter {
            key "key";
            leaf key {
              type string;
            }
            leaf value {
              type string;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            }
            description
              "Array of KVP requirements for VNF-specific parameters
               to be passed when invoking the TerminateVnf
               operation.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.7
               TerminateVnfOpConfig information element";
        container operate-vnf-op-config {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
          description
            "This information element defines attributes that
             affect the invocation of the OperateVnf operation.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";
          leaf min-graceful-stop-timeout {
            type yang:timeticks;
            default "1";
            description
              "Minimum timeout value for graceful stop of a VNF
               instance.";
            reference
              "GS NFV IFA011: Section 7.1.5.8
               OperateVnfOpConfig information element";
          }
          leaf max-recommended-graceful-stop-timeout {
            type yang:timeticks;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            description
              "Maximum recommended timeout value that can be
               needed to gracefully stop a VNF instance of a
               particular type under certain conditions, such as
               maximum load condition. This is provided by VNF
               provider as information for the operator facilitating
               the selection of optimal timeout value. This value
               is not used as constraint.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.8
               OperateVnfOpConfig information element";
          list parameter {
            key "key";
            leaf key {
              type string;
            }
            leaf value {
              type string;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            }
            description
              "Array of KVP requirements for VNF-specific parameters
               to be passed when invoking the OperateVnf
               operation.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
              "GS NFV IFA011: Section 7.1.5.8
               OperateVnfOpConfig information element";
        container change-vnf-flavour-op-config {
          list parameter {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            key "key";
            leaf key {
              type string;
            }
            leaf value {
              type string;
            }
            description
              "Array of KVP requirements for VNF-specific parameters
               to be passed when invoking the OperateVnf
               operation.";
            reference
              "GS NFV IFA011: Section 7.1.5.9
               ChangeVnfFlavour information element";
          }
          description
            "Configuration parameters for the ChangeVnfFlavour
             operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";
        }
        container change-ext-vnf-connectivity-op-config {
          list parameter {
            key "key";
            leaf key {
              type string;
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            leaf value {
              type string;
            }
            description
              "Array of KVP requirements for VNF-specific parameters
               to be passed when invoking the
               ChangeExtVnfConnectivity operation.";
            reference
              "GS NFV IFA011: Section 7.1.5.10
               ChangeExtVnfConnectivityOpConfig information
               element";
          description
            "Configuration parameters for the
             ChangeExtVnfConnectivity operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";
        }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        container create-snapshot-vnf-op-config {
          description
            "Configuration parameters for the Create VNF Snapshot
             operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            min-elements 1;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed

            leaf value {
              type string;
            }
            description
              "Array of KVP requirements for VNF-specific parameters
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
               to be passed when invoking the
               CreateSnapshotVnfOpConfig operation.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
              "GS NFV IFA011: Section 7.1.5.11
               CreateSnapshotVnfOpConfig information
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
        container revert-to-snapshot-vnf-op-config {
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            "Configuration parameters for the Revert-To VNF Snapshot
             operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
          list parameter {
            key "key";
            min-elements 1;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            leaf key {
              type string;
            }
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed

Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            leaf value {
              type string;
            }
            description
              "Array of KVP requirements for VNF-specific parameters
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
               to be passed when invoking the
               RevertToSnapshotVnfOpConfig operation.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
            reference
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
              "GS NFV IFA011: Section 7.1.5.12
               RevertToSnapshotVnfOpConfig information
               element";

        container change-current-vnf-package-op-config {
          description
            "Configuration parameters for the
             ChangeCurrentVnfPackageOpConfig operation.";
          reference
            "GS NFV IFA011: Section 7.1.5.2
             VnfLcmOperationsConfiguration information element";

          list parameter {
            key "key";

            leaf key {
              type string;
            }

            leaf value {
              type string;
            }
            description
              "Array of KVP  requirements for VNF-specific parameters
               to be passed when invoking the change current VNF
               Package operation.";
            reference
              "GS NFV IFA011: Section 7.1.5.13
               ChangeCurrentVnfPackageOpConfig information
               element";
          }
      }

      list affinity-or-anti-affinity-group {
        key "id";
        description
          "The AffinityOrAntiAffinityGroup describes the affinity
           or anti-affinity relationship applicable between the
           virtualization containers to be created based on
           different VDUs, or between internal VLs to be created
           based on different VnfVirtualLinkDesc(s).

           Per VNF, the affinity/anti-affinity rules defined using
           this information element, using the
           LocalAffinityOrAntiAffinityRule information element, and
           using the placement constraints in the
           GrantLifecycleOperation as defined in ETSI GS NFV-IFA
           007 [i.3] should be conflict-free. In case of conflicts,
           the placement constraints in the
           GrantLifecycleOperation shall take precedence.";

        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
           element";
        leaf id {
          type string;
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
          description
            "Identifier of this AffinityOrAntiAffinityGroup
             information element.";
Mahesh Jethanandani's avatar
Mahesh Jethanandani committed
          reference
            "GS NFV IFA011: Section 7.1.8.12
             AffinityOrAntiAffinityGroup information element";
        leaf type {
          mandatory true;
          type affinity-type;
          description
            "Specifies the type of relationship that the members of
             the group have: 'affinity' or 'anti-affinity'.";
          reference
            "GS NFV IFA011: Section 7.1.8.12
             AffinityOrAntiAffinityGroup information element";
        }
        leaf scope {
          mandatory true;
          type affinity-scope;
          description
            "Specifies the scope of the affinity or anti-affinity
             relationship. Possible values are 'NFVI-PoP', 'Zone',
             'ZoneGroup', 'NFVI-node' and 'network-link-and-node'.";
            "GS NFV IFA011: Section 7.1.8.12
             AffinityOrAntiAffinityGroup information element";
        }
      }
      list indicator {
        key "id";

        leaf id {
          type string;
          description
            "Unique identifier.";
          reference
            "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
             information element";
        leaf name {
          type string;
          description
            "The human readable name of the VnfIndicator.";
          reference
            "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
             information element";
        }

        leaf indicator-value {
          type string;
          description
            "Defines the allowed values or value ranges of this
             indicator.";
          reference
            "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
             information element";
        }
        leaf source {
          type enumeration {
            enum vnf;
            enum em;
            enum both;
          }
          description
            "Describe the source of the indicator. The possible
             values are:
             • VNF.
             • EM.
             • Both.

             This tells the consumer where to send the subscription
             request.";
            "GS NFV IFA011: Section 7.1.11.2 VnfIndicator
             information element";
        }

        description
          "Declares the VNF indicators that are supported by this
           VNF (specific to this DF).";
        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
      list supported-vnf-interfaces {
        key "name";

        leaf name {
          type enumeration {
            enum vnf-configuration;
            enum vnf-indicator;
          }
          description
            "Identifies an interface produced by the VNF. Valid
             values:
             - VNF_CONFIGURATION
          reference
            "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails
             information element";
        }

        leaf-list cpd-id {
          type leafref {
            path "../../../ext-cpd/id";
          description
            "References one or more CPDs from which to instantiate
             external CPs through which interface endpoints on the
             VNF side can be reached by the VNFM.";
          reference
            "GS NFV IFA011: Section 7.1.8.16 VnfInterfaceDetails
             information element";
        }

        list interface-details {
          key "key";

          leaf key {
            type string;
          }
        }

        description
          "Indicates which interfaces the VNF produces and provides
           additional details on how to access the interface
           endpoints.";
        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
             element";
      }

      list monitoring-parameter {
        key "id";

        description
          "Defines the virtualised resources monitoring parameters
           on VNF level.";
        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
           element";

        leaf id {
          type string;
          description
            "Unique identifier of the monitoring parameter.";
          reference
            "GS NFV IFA011: Section 7.1.11.3 MonitoringParameter
             information element";
        }
        uses monitoring-parameter;
      }

      list scaling-aspect {
        key "id";

        description
          "The scaling aspects supported by this DF of the VNF.
           scalingAspect shall be present if the VNF supports
           scaling.";
        reference
          "GS NFV IFA011: Section 7.1.8.2 VnfDf information
           element";

        leaf id {
          type string;
          description
            "Unique identifier of this aspect in the VNFD.";
          reference
            "GS NFV IFA011: Section 7.1.10.2 ScalingAspect
               information element";
        }

        leaf name {
          type string;
          description
            "Human readable name of the aspect.";
          reference
            "GS NFV IFA011: Section 7.1.10.2 ScalingAspect
             information element";
        }

        leaf description {
          type string;
          description
            "Human readable description of the aspect.";
          reference
            "GS NFV IFA011: Section 7.1.10.2 ScalingAspect
             information element";
        }

        leaf max-scale-level {
          type uint32 {
            range "1..max";
          description
            "The maximum scaleLevel for total number of scaling
             steps that can be applied w.r.t. this aspect. The
             value of this attribute corresponds to the number of
             scaling steps can be applied to this aspect when
             scaling it from the minimum scale level (i.e. 0) to the
             maximum scale level defined by this attribute.";
          reference
            "GS NFV IFA011: Section 7.1.10.2 ScalingAspect
             information element";
        }

        container aspect-delta-details {
          list deltas {
            key "id";
            min-elements 1;

            leaf id {
              type string;
              description
                "Identifier of this scaling delta.";
              reference
                "GS NFV IFA011: Section 7.1.10.4 ScalingDelta
                 information element";
            list vdu-delta {
                type leafref {
                  path "../../../../../../vdu/id";
                }
                  "Uniquely identifies a VDU.";
                  "GS NFV IFA011: Section 7.1.8.9 VduLevel
              leaf number-of-instances {
                type uint32 {
                  range "0..max";
                  "Number of instances of VNFC based on this VDU to
                   deploy for an instantiation level or for a
                   scaling delta. Shall be zero or greater.";
                  "GS NFV IFA011: Section 7.1.8.9 VduLevel
                   information element";
              }
              description
                "The number of VNFC instances based on particular
                 VDUs to be created or removed.";
              reference
                "GS NFV IFA011: Section 7.1.10.4 ScalingDelta
                 information element";
            }

            list virtual-link-bit-rate-delta {
              key "id";
              leaf id {
                type string;
                description
                  "Uniquely identifies a VnfVirtualLinkDesc.";
                reference
                  "GS NFV IFA011: Section 7.1.10.5
                   VirtualLinkBitRateLevel information element";
              }
              container bit-rate-requirements {
                leaf root {
                  type uint32;
                  units bits/sec;
                  mandatory true;
                    "Throughput requirement of the link (e.g.
                     bitrate of E-Line, root bitrate of E-Tree,
                     aggregate capacity of E-LAN).";
                    "GS NFV IFA011: Section 7.1.8.6
                     LinkBitrateRequirements information element";
                leaf leaf {
                  type uint32;
                  units bits/sec;
                    "Throughput requirement of leaf connections to
                     the link when applicable to the connectivity
                     type (e.g. for E-Tree and E-LAN branches).";
                    "GS NFV IFA011: Section 7.1.8.6
                     LinkBitrateRequirements information element";
                  "Bitrate requirements for an instantiation level
                   or bitrate delta for a scaling step.";
                  "GS NFV IFA011: Section 7.1.10.5
                   VirtualLinkBitRateLevel information element";
                "The bitrate to be added or removed to virtual links
                 created from particular virtual link descriptors.";
                "GS NFV IFA011: Section 7.1.10.4 ScalingDelta
                 information element";
            }
            description
              "Declares different scaling deltas, each of which is
               applied for one or more scaling steps of this
               aspect.";
            reference
              "GS NFV IFA011: Section 7.1.10.3 AspectDeltaDetails
               information element";
          }
          leaf step-deltas {
            type leafref {
              path "../deltas/id";
              "Identifiers of the individual scaling deltas to be
               applied for the subsequent scaling steps of this
               aspect. The first entry in the array shall correspond
               to the first scaling step (between scale levels 0 to
               1) and the last entry in the array shall correspond
               to the last scaling step (between maxScaleLevel-1
               and maxScaleLevel).

               Each referenced scaling delta shall be declared in
               the 'deltas' attribute.";
              "GS NFV IFA011: Section 7.1.10.3 AspectDeltaDetails
               information element";
          }
          description
            "A specification of the deltas in terms of number of
             instances of VNFCs and virtual link bit rates that
             correspond to the scaling steps of this aspect. A
             cardinality of zero indicates that this mapping has to
             be specified in a lifecycle management script or be
             otherwise known to the VNFM. The information in this
             attribute, if provided, shall be consistent with the
             information provided in the 'InstantiationLevel'
             information element. If this attribute is provided, it
             shall be provided for all scaling aspects.";
          reference
            "GS NFV IFA011: Section 7.1.10.2 ScalingAspect
             information element";
    }

    container configurable-properties {
      description
        "Describes the configurable properties of the VNF
         (e.g. related to auto scaling and auto healing).";
      reference
        "GS NFV IFA011: Section 7.1.2 VNFD information element";
      leaf is-auto-scalable-enabled {
        type boolean;
        description
          "It permits to enable (TRUE) / disable (FALSE) the
           auto-scaling functionality.";
          "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
           information element";
      }
      leaf is-auto-heal-enabled {
        type boolean;
        description
          "It permits to enable (TRUE) / disable (FALSE) the
           auto-healing functionality.";
        reference
          "GS NFV IFA011: Section 7.1.12 VnfConfigurableProperties
           information element";
      }
      container vnfm-interface-info {
        leaf interface-name {
          type string {
            pattern 'vnf-[lcm|pm|fm]';
          }
          description
            "Identifies an interface produced by the VNFM.";
        }

        container details {
          container uri-components {
            leaf scheme {
              description
                "Corresponds to the scheme component of a URI, as
                 per IETF RFC 3986.";
              reference
                "RFC 3986: URI Generic Syntax.";
            }

            container authority {
              leaf userinfo {
                type string;
                description
                  "Corresponds to the userinfo field of the authority
                   component of a URI, as per IETF RFC 3986.

                   For HTTP and HTTPS URIs, the provisions in
                   sections 2.7.1 and 2.7.2 of IETF RFC 7230 apply,
                   respectively.";
                reference
                  "RFC 3986: URI Generic Syntax.";
              }

              leaf host {
                description
                  "Corresponds to the host field of the authority
                   component of a URI, as per IETF RFC 3986.";
                reference
                  "RFC 3986: URI Generic Syntax.";
              }

              leaf port {
                type inet:port-number;
                description
                  "Corresponds to the port field of the authority
                   component of a URI, as per IETF RFC 3986.";
                reference
                  "RFC 3986: URI Generic Syntax.";
              }
              description
                "Corresponds to the authority component of a URI,
                 as per IETF RFC 3986.";
              reference
                "RFC 3986: URI Generic Syntax.";
            }

            leaf path {
              type string;
              description
                "Corresponds to the path component of a URI, as per
                 IETF RFC 3986.";
              reference
                "RFC 3986: URI Generic Syntax.";
            }

            leaf query {
              type string;
              description
                "Corresponds to the query component of a URI, as per
                 IETF RFC 3986.";
              reference
                "RFC 3986: URI Generic Syntax.";
            }

            leaf fragment {
              type string;
              description
                "Corresponds to the fragment component of a URI, as per
                 IETF RFC 3986.";
              reference
                "RFC 3986: URI Generic Syntax.";
            }
            description
              "Provides components to build a Uniform Resource