option name = "att-workflow-driver";
option app_label = "att-workflow-driver";

message AttWorkflowDriverService (Service){
    option verbose_name = "AttWorkflowDriver Service";
    option kind = "control";
}

message AttWorkflowDriverServiceInstance (ServiceInstance){
    option owner_class_name = "AttWorkflowDriverService";
    option verbose_name = "AttWorkflowDriver Service Instance";

    required string serial_number = 2 [max_length = 254, db_index = False, tosca_key=True, unique = True];
    required string authentication_state = 3 [default = "AWAITING", choices = "(('AWAITING', 'Awaiting'), ('STARTED', 'Started'), ('REQUESTED', 'Requested'), ('APPROVED', 'Approved'), ('DENIED', 'Denied'), )", max_length = 50, db_index = False];
    required string of_dpid = 4 [max_length = 254, db_index = False];
    required int32 uni_port_id = 5 [db_index = False];
    required string onu_state = 6 [max_length = 254, db_index = False, default = "AWAITING", choices = "(('AWAITING', 'Awaiting'), ('ENABLED', 'Enabled'), ('DISABLED', 'Disabled'))"];
    optional string status_message = 7 [max_length = 254, db_index = False, default = ""];
    optional string dhcp_state = 8 [max_length = 254, db_index = False, default = "AWAITING", choices = "(('AWAITING', 'Awaiting'), ('DHCPDISCOVER', 'DHCPDISCOVER'), ('DHCPACK', 'DHCPACK'), ('DHCPREQUEST', 'DHCPREQUEST'))"];
    optional string ip_address = 9 [max_length = 20, db_index = False];
    optional string mac_address = 10 [max_length = 20, db_index = False];
}

message AttWorkflowDriverWhiteListEntry (XOSBase) {
    option verbose_name = "ONU Whitelist";
    option plural = "attworkflowdriverwhitelistentries";

    required manytoone owner->AttWorkflowDriverService:whitelist_entries = 1:1001 [db_index = True, tosca_key=True];
    required string serial_number = 2 [max_length = 254, db_index = False, tosca_key=True, unique_with = "owner"];
    required int32 pon_port_id = 3 [db_index = False, help_text = "PON Port on which this ONU is expected to show up"];
    required string device_id = 4 [max_length = 54, db_index = False, help_text = "OLT Device (logical device id) on which this ONU is expected to show up"];
}
