model package

Submodules

model.base_model module

class model.base_model.BaseModel

Bases: pydantic.main.BaseModel

class Config

Bases: object

allow_population_by_field_name = True
json_dict(**kwargs)

Parse dict so that it can be json serialized by Python’s json module

model.client_model module

class model.client_model.Client(*, id: str = None, name: str, workspaceId: str, archived: bool = False)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'id_': 'id', 'workspace_id': 'workspaceId'}
archived: bool
id_: str
name: str
workspace_id: str
class model.client_model.ClientGetParams(*, archived: bool = None, name: str = None, page: int = 1, page_size: int = 50, sort_column: Literal['NAME'] = None, sort_order: Literal['ASCENDING', 'DESCENDING'] = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'page_size': 'page-size', 'sort_column': 'sort-column', 'sort_order': 'sort-order'}
archived: bool
name: str
page: int
page_size: int
sort_column: Literal['NAME']
sort_order: Literal['ASCENDING', 'DESCENDING']
class model.client_model.ClientUpdateParams

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'archive_projects': 'archive-projects'}

model.project_model module

class model.project_model.Estimate(*, estimate: str = None, type: str = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'estimate': 'estimate', 'type': 'type'}
estimate: Optional[str]
type: Optional[str]
class model.project_model.HourlyRate(*, amount: str = None, currency: str = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'ammount': 'amount', 'amount': 'amount'}
amount: Optional[str]
currency: Optional[str]
class model.project_model.MemberShip(*, userId: str = None, hourlyRate: str = None, costRate: str = None, targetId: str = None, membershipType: str = None, membershipStatus: str = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'cost_rate': 'costRate', 'hourly_rate': 'hourlyRate', 'membership_Status': 'membershipStatus', 'membership_Type': 'membershipType', 'target_Id': 'targetId', 'user_Id': 'userId'}
cost_rate: Optional[str]
hourly_rate: Optional[str]
membership_Status: Optional[str]
membership_Type: Optional[str]
target_Id: Optional[str]
user_Id: Optional[str]
class model.project_model.Project(*, name: str, workspaceId: str, id: str = None, hourlyRate: model.project_model.HourlyRate = None, clientId: str = None, billable: bool = None, memberships: List[model.project_model.MemberShip] = None, color: str = None, estimate: model.project_model.Estimate = None, archived: bool = None, duration: str = None, clientName: str = None, note: str = None, costRate: str = None, timeEstimate: model.project_model.TimeEstimate = None, budgetEstimate: str = None, template: bool = None, public: bool = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'archived': 'archived', 'billable': 'billable', 'budget_estimate': 'budgetEstimate', 'client_id': 'clientId', 'client_name': 'clientName', 'color': 'color', 'cost_rate': 'costRate', 'duration': 'duration', 'estimate': 'estimate', 'hourly_rate': 'hourlyRate', 'id_': 'id', 'memberships': 'memberships', 'name': 'name', 'note': 'note', 'public_': 'public', 'template': 'template', 'time_estimate': 'timeEstimate', 'workspace_id': 'workspaceId'}
archived: Optional[bool]
billable: Optional[bool]
budget_estimate: Optional[str]
client_id: Optional[str]
client_name: Optional[str]
color: Optional[str]
cost_rate: Optional[str]
duration: Optional[str]
estimate: Optional[model.project_model.Estimate]
hourly_rate: Optional[model.project_model.HourlyRate]
id_: Optional[str]
memberships: Optional[List[model.project_model.MemberShip]]
name: str
note: Optional[str]
public_: Optional[bool]
template: Optional[bool]
time_estimate: Optional[model.project_model.TimeEstimate]
workspace_id: str
class model.project_model.ProjectGetParams(*, hydrated: bool = None, archived: bool = None, name: str = None, page: int = 1, page_size: int = 50, billable: bool = None, clients: List[str] = None, contains_client: bool = None, client_status: Literal['ACTIVE', 'ARCHIVED'] = None, users: List[str] = None, contains_users: bool = None, user_status: Literal['ACTIVE', 'ARCHIVED'] = None, is_template: bool = None, sort_column: Literal['NAME', 'CLIENT_NAME', 'DURATION'] = None, sort_order: Literal['ASCENDING', 'DESCENDING'] = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'client_status': 'client-status', 'contains_client': 'contains-client', 'contains_users': 'contains-users', 'is_template': 'is-template', 'page_size': 'page-size', 'sort_column': 'sort-column', 'sort_order': 'sort-order', 'user_status': 'user-status'}
archived: Optional[bool]
billable: Optional[bool]
client_status: Optional[Literal['ACTIVE', 'ARCHIVED']]
clients: Optional[List[str]]
contains_client: Optional[bool]
contains_users: Optional[bool]
hydrated: Optional[bool]
is_template: Optional[bool]
name: Optional[str]
page: int
page_size: int
sort_column: Optional[Literal['NAME', 'CLIENT_NAME', 'DURATION']]
sort_order: Optional[Literal['ASCENDING', 'DESCENDING']]
user_status: Optional[Literal['ACTIVE', 'ARCHIVED']]
users: Optional[List[str]]
class model.project_model.TimeEstimate(*, estimate: str = None, type: str = None, resetOption: str = None, active: bool = None, includeNonBillable: bool = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'active': 'active', 'estimate': 'estimate', 'include_non_billable': 'includeNonBillable', 'reset_option': 'resetOption', 'type': 'type'}
active: Optional[bool]
estimate: Optional[str]
include_non_billable: Optional[bool]
reset_option: Optional[str]
type: Optional[str]

model.tag_model module

class model.tag_model.Tag(*, id: str = None, name: str, workspaceId: str, archived: bool = False)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'id_': 'id', 'workspace_id': 'workspaceId'}
archived: bool
id_: str
name: str
workspace_id: str
class model.tag_model.TagGetParams(*, name: str = None, archived: bool = None, page: int = 1, page_size: int = 50)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'page_size': 'page-size'}
archived: Optional[bool]
name: Optional[str]
page: int
page_size: int

model.task_model module

class model.task_model.CostRate_HourlyRate(*, amount: int, currency: str)

Bases: clockify.model.base_model.BaseModel

amount: int
currency: str
class model.task_model.Task(*, id: str = None, name: str, projectId: str, assigneIds: List[str] = [], estimate: str = None, billable: bool = None, hourlyRate: model.task_model.CostRate_HourlyRate = None, costRate: model.task_model.CostRate_HourlyRate = None, status: Literal['ACTIVE', 'Done'] = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'assignee_ids': 'assigneIds', 'cost_rate': 'costRate', 'hourly_rate': 'hourlyRate', 'id_': 'id', 'project_id': 'projectId'}
assignee_ids: List[str]
billable: bool
cost_rate: model.task_model.CostRate_HourlyRate
estimate: str
hourly_rate: model.task_model.CostRate_HourlyRate
id_: str
name: str
project_id: str
status: Literal['ACTIVE', 'Done']
class model.task_model.TaskGetParams(*, is_active: bool = None, name: str = None, page: int = 1, page_size: int = 50, strict_name_search: bool = None, sort_column: Literal['ID', 'NAME'] = None, sort_order: Literal['ASCENDING', 'DESCENDING'] = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'is_active': 'is-active', 'page_size': 'page-size', 'sort_column': 'sort-column', 'sort_order': 'sort-order', 'strict_name_search': 'strict-name-search'}
is_active: Optional[bool]
name: Optional[str]
page: int
page_size: int
sort_column: Optional[Literal['ID', 'NAME']]
sort_order: Optional[Literal['ASCENDING', 'DESCENDING']]

model.time_entry_model module

class model.time_entry_model.CreateTimeEntryDTO(*, start: datetime.datetime, end: datetime.datetime, billable: bool = True, description: str, projectId: str = None, taskId: str = None, tagIds: List[str] = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'project_id': 'projectId', 'tag_ids': 'tagIds', 'task_id': 'taskId'}
billable: bool
description: str
end: datetime.datetime
project_id: Optional[str]
start: datetime.datetime
tag_ids: Optional[List[str]]
task_id: Optional[str]
class model.time_entry_model.HourlyRate(*, amount: float = None, currency: str = None)

Bases: clockify.model.base_model.BaseModel

amount: Optional[float]
currency: Optional[str]
class model.time_entry_model.TimeEntry(*, id: str = None, description: str, tags: List[clockify.model.tag_model.Tag] = None, tagIds: List[str] = None, user: clockify.model.user_model.User = None, userId: str = None, billable: bool = None, task: clockify.model.task_model.Task = None, taskId: str = None, project: clockify.model.project_model.Project = None, projectId: str = None, timeInterval: model.time_entry_model.TimeInterval = None, workspaceId: str = None, hourlyRate: model.time_entry_model.HourlyRate = None, customFieldValues: List[Any], isLocked: bool = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'custom_field_values': 'customFieldValues', 'hourly_rate': 'hourlyRate', 'id_': 'id', 'is_locked': 'isLocked', 'project_id': 'projectId', 'tag_ids': 'tagIds', 'task_id': 'taskId', 'time_interval': 'timeInterval', 'user_id': 'userId', 'workspace_id': 'workspaceId'}
billable: Optional[bool]
custom_field_values: List[Any]
description: str
hourly_rate: Optional[model.time_entry_model.HourlyRate]
id_: Optional[str]
is_locked: Optional[bool]
project: Optional[clockify.model.project_model.Project]
project_id: Optional[str]
tag_ids: Optional[List[str]]
tags: Optional[List[clockify.model.tag_model.Tag]]
task: Optional[clockify.model.task_model.Task]
task_id: Optional[str]
time_interval: Optional[model.time_entry_model.TimeInterval]
user: Optional[clockify.model.user_model.User]
user_id: Optional[str]
workspace_id: Optional[str]
class model.time_entry_model.TimeEntryGetParams(*, description: str = None, start: str = None, end: str = None, project: str = None, task: str = None, tags: List[str] = None, project_required: bool = None, task_required: bool = None, hydrated: bool = None, in_progress: bool = None, page: int = 1, page_size: int = 50)

Bases: clockify.model.base_model.BaseModel

description: Optional[str]
end: Optional[str]
hydrated: Optional[bool]
in_progress: Optional[bool]
page: Optional[int]
page_size: Optional[int]
project: Optional[str]
project_required: Optional[bool]
start: Optional[str]
tags: Optional[List[str]]
task: Optional[str]
task_required: Optional[bool]
class model.time_entry_model.TimeInterval(*, start: str = None, end: str = None, duration: str = None)

Bases: clockify.model.base_model.BaseModel

duration: Optional[str]
end: Optional[str]
start: Optional[str]

model.user_model module

class model.user_model.Membership(*, userId: str = None, hourlyRate: float = None, costRate: float = None, targetId: str = None, membershipType: str = None, membershipStatus: str = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'cost_rate': 'costRate', 'hourly_rate': 'hourlyRate', 'membership_status': 'membershipStatus', 'membership_type': 'membershipType', 'target_id': 'targetId', 'user_id': 'userId'}
cost_rate: Optional[float]
hourly_rate: Optional[float]
membership_status: Optional[str]
membership_type: Optional[str]
target_id: Optional[str]
user_id: Optional[str]
class model.user_model.Settings(*, weekStart: Literal['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'] = None, timeZone: str = None, timeFormat: str = None, dateFormat: str = None, sendNewsletter: str = None, weeklyUpdates: str = None, longRunning: str = None, scheduledReports: str = None, approval: str = None, pto: str = None, alerts: str = None, reminders: str = None, timeTrackingManual: str = None, summaryReportSettings: model.user_model.SummaryReportSettings = None, isCompactViewOn: str = None, dashboardSelection: str = None, dashboardViewType: str = None, dashboardPinToTop: str = None, projectListCollapse: str = None, collapseAllProjectLists: str = None, groupSimilarEntriesDisabled: str = None, myStartOfDay: str = None, projectPickerTaskFilter: str = None, lang: str = None, multiFactorEnabled: str = None, theme: str = None, scheduling: str = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'alerts': 'alerts', 'approval': 'approval', 'collapse_all_project_lists': 'collapseAllProjectLists', 'dashboard_pin_to_top': 'dashboardPinToTop', 'dashboard_selection': 'dashboardSelection', 'dashboard_view_type': 'dashboardViewType', 'date_format': 'dateFormat', 'group_similar_entries_disabled': 'groupSimilarEntriesDisabled', 'is_compact_view_on': 'isCompactViewOn', 'lang': 'lang', 'long_running': 'longRunning', 'multi_factor_enabled': 'multiFactorEnabled', 'my_start_of_day': 'myStartOfDay', 'project_list_collapse': 'projectListCollapse', 'project_picker_task_filter': 'projectPickerTaskFilter', 'pto': 'pto', 'reminders': 'reminders', 'scheduled_reports': 'scheduledReports', 'scheduling': 'scheduling', 'send_newsletter': 'sendNewsletter', 'summary_report_settings': 'summaryReportSettings', 'theme': 'theme', 'time_format': 'timeFormat', 'time_tracking_manual': 'timeTrackingManual', 'time_zone': 'timeZone', 'week_start': 'weekStart', 'weekly_updates': 'weeklyUpdates'}
alerts: Optional[str]
approval: Optional[str]
collapse_all_project_lists: Optional[str]
dashboard_pin_to_top: Optional[str]
dashboard_selection: Optional[str]
dashboard_view_type: Optional[str]
date_format: Optional[str]
group_similar_entries_disabled: Optional[str]
is_compact_view_on: Optional[str]
lang: Optional[str]
long_running: Optional[str]
multi_factor_enabled: Optional[str]
my_start_of_day: Optional[str]
project_list_collapse: Optional[str]
project_picker_task_filter: Optional[str]
pto: Optional[str]
reminders: Optional[str]
scheduled_reports: Optional[str]
scheduling: Optional[str]
send_newsletter: Optional[str]
summary_report_settings: Optional[model.user_model.SummaryReportSettings]
theme: Optional[str]
time_format: Optional[str]
time_tracking_manual: Optional[str]
time_zone: Optional[str]
week_start: Optional[Literal['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY']]
weekly_updates: Optional[str]
class model.user_model.SummaryReportSettings(*, group: str = None, subgroup: str = None)

Bases: clockify.model.base_model.BaseModel

group: Optional[str]
subgroup: Optional[str]
class model.user_model.User(*, id: str = None, email: str = None, name: str, memberships: List[model.user_model.Membership] = None, profilePicture: str = None, activeWorkspace: str = None, defaultWorkspace: str = None, settings: model.user_model.Settings = None, status: str = None)

Bases: clockify.model.base_model.BaseModel

class Config

Bases: object

fields = {'active_workspace': 'activeWorkspace', 'default_workspace': 'defaultWorkspace', 'email': 'email', 'id_': 'id', 'memberships': 'memberships', 'name': 'name', 'profile_picture': 'profilePicture', 'settings': 'settings', 'status': 'status'}
active_workspace: Optional[str]
default_workspace: Optional[str]
email: Optional[str]
id_: Optional[str]
memberships: Optional[List[model.user_model.Membership]]
name: str
profile_picture: Optional[str]
settings: Optional[model.user_model.Settings]
status: Optional[str]

Module contents