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

module security-profile {
  namespace "http://opennetworking.org/aether/security-profile";
  prefix sec;

  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 "2021-05-10" {
    description "An Aether Security Profile. Contains keys and other security items associated with devices. Configured by the operator.";
    reference "RFC 6087";
  }

  typedef security-profile-id {
        type string {
            length 1..32;
        }
    description "The typedef for security-profile-id";
  }

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

    list security-profile {
      key "id";
      description
        "List of security profiles";

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

      leaf display-name {
        type string {
            length 1..80;
        }
        description "display name to use in GUI or CLI";
      }

      leaf imsi-range-from {
        type uint64;
        description "Starting IMSI in range to apply this security profile to";
      }

      leaf imsi-range-to {
        type uint64;
        description "Ending IMSI in range to apply this security profile to";
      }

      leaf key {
        type string {
          length 1..32;
        }
        description "Secret key for USIM";
      }

      leaf opc {
        type string {
          length 1..32;
        }
        description "Secret key for Operator";
      }

      leaf sqn {
        type uint32;
        description "sequence number";
      }

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