interface and abstract class for rest resource available