Models and APIs

Reference for the Nephio models and APIs

Overview

Nephio APIs primarily consist of a collection of Go API objects, CRDs and other KRM types, specified and maintained in the Nephio API repository. This page aims to give a high level overview of the objects that are available and their relationships, and is based on an original document developed by Tal Liron.

The aim is to keep these diagrams as simple as possible for now and only convey the important aspects of the modelled entities. As such they are intended to give a high-level overview of the entities and relationships that can be accessed and modified via the Nephio API, and provide reference to detailed documentation, generated from the code, where available.

Topology and Network APIs

This is a high-level overview of the Nephio models and their relationships, with links to the relevant API documentation where available, and to the source code where not.

flowchart TD
    %% Topology constructs
    NFTopology-- 1 .. n -->NFInstance
    NFInstance -. refers .-> NFTemplate
    NFTemplate -- 1..n --> NFInterface
    NFInterface -. "refers (by name)" .-> NetworkInstance
    NFTemplate-.refers..->Capacity
    NFTemplate -. "refers (by name)" .-> NFClass
    NFClass -. refers .-> PackageRevisionReference
    style NFTopology fill:#00CC00
    click NFTopology "https://doc.crds.dev/github.com/nephio-project/api/topology.nephio.org/NFTopology/v1alpha1@v2.0.0" "NFTopology"
    style NFInstance fill:#00CC00
    click NFInstance "https://github.com/nephio-project/api/blob/main/nf_topology/v1alpha1/nf_topology_types.go#L59" "NFInstance"
    style NFTemplate fill:#00CC00
    click NFTemplate "https://github.com/nephio-project/api/blob/main/nf_topology/v1alpha1/nf_topology_types.go#L45" "NFTemplate"
    style NFInterface fill:#00CC00
    click NFInterface "https://github.com/nephio-project/api/blob/main/nf_topology/v1alpha1/nf_topology_types.go#L35" "NFInterface"
    style Capacity fill:#00CC00
    click Capacity "https://doc.crds.dev/github.com/nephio-project/api/req.nephio.org/Capacity/v1alpha1@v2.0.0" "Capacity"
    style NFClass fill:#00CC00
    click NFClass "https://doc.crds.dev/github.com/nephio-project/api/req.nephio.org/NFClass/v1alpha1@v2.0.0" "NFClass"
    style PackageRevisionReference fill:#00CC00
    click PackageRevisionReference "https://github.com/nephio-project/api/blob/main/nf_topology/v1alpha1/nf_class_types.go#L25" "PackageRevisionReference"
   
   %% Workload constructs

    DataNetwork -- 1..n --> Pool
    DataNetwork -. refers .-> NetworkInstance
    NFDeployment -. refers .-> Provider
    NFDeployment -. refers .-> Capacity
    NFDeployment -- 1..n --> InterfaceConfig
    NFDeployment -- 1..n --> NetworkInstance
    NFDeployment -. refers .-> ParametersRefs
    style DataNetwork fill:#CCCCFF
    click DataNetwork "https://doc.crds.dev/github.com/nephio-project/api/req.nephio.org/DataNetwork/v1alpha1@v2.0.0" "DataNetwork"
    style NetworkInstance fill:#CCCCFF
    click NetworkInstance "https://doc.crds.dev/github.com/nephio-project/api/req.nephio.org/NetworkInstance/v1alpha1@v2.0.0" "NetworkInstance"
    style Pool fill:#CCCCFF
    click Pool "https://github.com/nephio-project/api/blob/main/workload/v1alpha1/nf_deployment_types.go#L165" "Pool"

The detailed API description is here

Porch

The detailed API description of Porch is here


Package Orchestration API Specifications

Reference for the Nephio Porch APIs

Topology and Networking API Specifications

Reference for the Nephio Topology and Networking APIs