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 [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"];
}
