// SPDX-FileCopyrightText: 2021 Open Networking Foundation
//
// SPDX-License-Identifier: Apache-2.0

module up-profile {
  namespace "http://opennetworking.org/aether/user-plane-profile";
  prefix pro;

  organization "Open Networking Foundation.";
  contact "Scott Baker";
  description "To generate JSON from this use command
    pyang -f jtoxx test1.yang | python3 -m json.tool > test1.json
    Copied from YangUIComponents project";

  revision "2020-08-18" {
    description "An Aether user plane Profile";
    reference "RFC 6087";
  }

  // TODO: Think more on whether this should be a UUID or
  // simply a unique name. If it's a UUID, could fix the
  // string length.
  typedef up-profile-id {
        type string {
            length 1..32;
        }
    description "The typedef for up-profile-id";
  }

  container up-profile {
    description "The top level container";

    list up-profile {
      key "id";
      description
        "List of user plane profiles";

      leaf id {
        type up-profile-id;
        description "ID for this user plane profile.";
      }

      leaf user-plane {
        type string {
          length 1..255;
        }
        description "user plane name";
      }

      leaf access-control {
        type string {
          length 1..32;
        }
        description "access control policy";
      }

      leaf description {
        type string {
          length 1..100;
        }
        description "description of this profile";
      }
    }
  }
}
