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

submodule onf-device {
  belongs-to onf-enterprise { prefix ent; }

  import onf-aether-types { prefix at; }
  include onf-sim-card;

  organization "Open Networking Foundation.";
    contact "Scott Baker";
    description
      "A Aether Device...";

  revision "2022-01-19" {
    description "An Aether Device";
    reference "RFC 6087";
  }

  typedef device-id {
    type at:aether-identifier;
    description "The typedef for device-id";
  }

  grouping device {
    description "The top level container";

    list device {
      key "device-id";
      unique "imei";
      description
        "List of devices";

      leaf device-id {
        type device-id;
        description "ID for this device.";
      }

      uses at:desc-display-name;

      leaf imei {
        type at:imei;
        description
           "IMEI for this device";
      }

      // TODO: Device Type

      leaf sim-card {
        type leafref {
            path "../../sim-card/sim-id";
        }
        description
          "Link to simcard";
      }
    }
  }
}
