class Person(Resource): """Basecamp Person class """ _resource_type = 'person' id = IntegerAttribute('id') first_name = StringAttribute('first_name') last_name = StringAttribute('last_name') title = StringAttribute('title') email_address = StringAttribute('email_address') im_handle = StringAttribute('im_handle') im_service = StringAttribute('im_service') phone_number_office = StringAttribute('phone_number_office') phone_number_office_ext = StringAttribute('phone_number_office_ext') phone_number_mobile = StringAttribute('phone_number_mobile') phone_number_home = StringAttribute('phone_number_home') phone_number_fax = StringAttribute('phone_number_fax') last_login = DatetimeAttribute('last_login') client_id = IntegerAttribute('client_id') user_name = StringAttribute('user_name') password = StringAttribute('password') token = StringAttribute('token') administrator = BooleanAttribute('administrator') deleted = BooleanAttribute('deleted') has_access_to_new_projects = BooleanAttribute('has_access_to_new_projects')
class Category(Resource): """Basecamp Category class """ _resource_type = 'category' id = IntegerAttribute('id') name = StringAttribute('name') last_name = StringAttribute('last_name') project_id = IntegerAttribute('project_id') elements_count = IntegerAttribute('elements_count') type = StringAttribute('type')
class TimeEntry(Resource): """Basecamp TimeEntry class """ _resource_type = 'time-entry' id = IntegerAttribute('id') project_id = IntegerAttribute('project_id') person_id = IntegerAttribute('person_id') date = DateAttribute('date') hours = StringAttribute('hours') description = StringAttribute('description') todo_item_id = IntegerAttribute('todo_item_id')
class TodoList(Resource): """Basecamp TodoList class """ _resource_type = 'todo-list' id = IntegerAttribute('id') name = StringAttribute('name') description = StringAttribute('description') project_id = IntegerAttribute('project_id') milestone_id = IntegerAttribute('milestone_id') position = IntegerAttribute('position') private = BooleanAttribute('private') tracked = BooleanAttribute('tracked') todo_items = ArrayAttribute('todo_items', TodoItem)
class TodoItem(Resource): """Basecamp TodoItem class """ _resource_type = 'todo-item' id = IntegerAttribute('id') content = StringAttribute('content') position = IntegerAttribute('position') created_on = DatetimeAttribute('created_on') creator_id = IntegerAttribute('creator_id') completed = BooleanAttribute('completed') responsible_party_type = StringAttribute('responsible_party_type') responsible_party_id = IntegerAttribute('responsible_party_id') completed_on = DatetimeAttribute('completed_on') completer_id = IntegerAttribute('completer_id')
class Project(Resource): """Basecamp Project class """ _resource_type = 'project' id = IntegerAttribute('id') name = StringAttribute('name') created_on = DateAttribute('created_on') status = StringAttribute('status') last_changed_on = DatetimeAttribute('last_changed_on') company = ResourceAttribute('company', Company) announcement = StringAttribute('announcement') start_page = StringAttribute('start_page') show_writeboards = BooleanAttribute('show_writeboards') show_announcement = BooleanAttribute('show_announcement')
class Company(Resource): """Basecamp Company class """ _resource_type = 'company' id = IntegerAttribute('id') name = StringAttribute('name') address_one = StringAttribute('address_one') address_two = StringAttribute('address_two') city = StringAttribute('city') state = StringAttribute('state') zip = StringAttribute('zip') country = StringAttribute('country') web_address = StringAttribute('web_address') phone_number_office = StringAttribute('phone_number_office') phone_number_fax = StringAttribute('phone_number_fax') time_zone_id = StringAttribute('time_zone_id') can_see_private = BooleanAttribute('can_see_private') url_name = StringAttribute('url_name') uuid = StringAttribute('uuid')