option name = "rcord";
option app_label = "rcord";
option legacy="True";

message RCORDService (Service) {
    option verbose_name = "RCORD Service";
    option description = "Service that manages residential subscribers";

    required string access = 11 [
        help_text = "Name of service that is managing the Access Network",
        default = "voltha", choices = "(('voltha', 'VOLTHA'), ('unknown', 'Unknown'))",
        max_length = 30];
}

message BandwidthProfile(XOSBase) {
    option verbose_name = "Bandwidth Profile";
    option description = "The Bandwidth Profile assinged to a residential subscriber";

    // TODO add help_text
    required string name = 3 [
        help_text = "Name of bandwidth profile",
        max_length = 256];
    required int32 cir = 4;
    required int32 cbs = 5;
    required int32 eir = 6;
    required int32 ebs = 7;
    required int32 air = 8;
}

message RCORDSubscriber (ServiceInstance) {
    option kind = "RCORDSubscriber";
    option verbose_name = "RCORD Subscriber";
    option owner_class_name = "RCORDService";
    option description = "A residential subscriber";

    // vsg related configurations
    optional manytoone creator->User:created_rcord_subscribers = 15 [
        help_text = "User who created this RCORDSubscriber object",
        db_index = True];
    optional string status = 11 [
        help_text = "Status of subscriber provisioning and authentication",
        content_type = "stripped",
        default = "enabled",
        choices = "(('enabled', 'Enabled'), ('disabled', 'Disabled'), ('pre-provisioned', 'Pre Provisioned'), ('awaiting-auth', 'Awaiting Authentication'), ('auth-failed', 'Authentication Failed'))",
        max_length = 30];

    // parameters for r-cord lite
    optional int32 c_tag = 12 [
        help_text = "Customer VLAN Tag, one half of the double-tag that identifies this subscriber's traffic",
        min_value = 0,
        max_value = 4096];
    optional int32 s_tag = 19 [
        help_text = "Service VLAN Tag, one half of the double-tag that identifies this subscriber's traffic",
        min_value = 0,
        max_value = 4096];
    required string onu_device = 13 [
        help_text = "ONUDevice serial number",
        max_length = 256];
    optional string mac_address = 18 [
        help_text = "Subscriber MAC Address",
        max_length = 256];

    // operator specific fields
    optional string nas_port_id = 20 [
        help_text = "NAS Port ID used in Radius to identify physical interface used to authenticate subscriber",
        max_length = 256];
    optional string circuit_id = 21 [
        help_text = "Option 82 Circuit ID for DHCP relay agent",
        max_length = 256];
    optional string remote_id = 22 [
        help_text = "Option 82 Remote ID for DHCP relay agent",
        max_length = 256];

    required manytoone upstream_bps->BandwidthProfile:us_subscriber = 31:1001 [
        help_text = "The subscriber the IP address belongs to"];
    required manytoone downstream_bps->BandwidthProfile:ds_subscriber = 32:1002 [
        help_text = "The subscriber the IP address belongs to"];
}

message RCORDIpAddress(XOSBase) {
    option verbose_name = "IP address";
    option description = "An IP Address assinged to a residential subscriber";

    required manytoone subscriber->RCORDSubscriber:ips = 1:1001 [
        help_text = "The subscriber the IP address belongs to",
        db_index = True];
    required string ip = 2 [
        help_text = "The unique IP address (either IPv4 or IPv6 / netmask)",
        max_length = 52,
        unique_with = "subscriber"];
    optional string description = 3 [
        help_text = "A short description of the IP address",
        text = True];
}
