@knpkv/clockify-api-client 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -27,12 +27,12 @@ export type AuthorizationSourceDtoV1 = { readonly "id"?: string, readonly "type"
27
27
  export const AuthorizationSourceDtoV1 = Schema.Struct({ "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents authorization source identifier across the system." })), "type": Schema.optionalKey(Schema.Literal("USER_GROUP").annotate({ "description": "Represents a valid authorization source type." })) }).annotate({ "description": "Represents an authorization data transfer object." })
28
28
  export type AutomaticAccrualDto = { readonly "amount"?: number, readonly "period"?: "MONTH" | "YEAR", readonly "timeUnit"?: "DAYS" | "HOURS" }
29
29
  export const AutomaticAccrualDto = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents automatic accrual's amount", "format": "double" }).check(Schema.isFinite())), "period": Schema.optionalKey(Schema.Literals(["MONTH", "YEAR"]).annotate({ "description": "Represents automatic accrual's period" })), "timeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Represents automatic accrual's time unit" })) }).annotate({ "description": "Represents automatic approval settings." })
30
- export type AutomaticAccrualRequest = { readonly "amount": number, readonly "period"?: "MONTH" | "YEAR", readonly "timeUnit"?: "DAYS" | "HOURS" }
31
- export const AutomaticAccrualRequest = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents amount of automatic accrual.", "format": "double" }).check(Schema.isFinite()).check(Schema.isGreaterThanOrEqualTo(0)), "period": Schema.optionalKey(Schema.Literals(["MONTH", "YEAR"]).annotate({ "description": "Represents automatic accrual period." })), "timeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Represents automatic accrual time unit." })) }).annotate({ "description": "Provide automatic accrual settings." })
30
+ export type AutomaticAccrualRequest = { readonly "amount": number, readonly "period"?: "MONTH" | "YEAR" }
31
+ export const AutomaticAccrualRequest = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents amount of automatic accrual.", "format": "double" }).check(Schema.isFinite()).check(Schema.isGreaterThanOrEqualTo(0)), "period": Schema.optionalKey(Schema.Literals(["MONTH", "YEAR"]).annotate({ "description": "Represents automatic accrual period." })) }).annotate({ "description": "Provide automatic accrual settings." })
32
32
  export type AutomaticLockDtoV1 = { readonly "changeDay"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "dayOfMonth"?: number, readonly "firstDay"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "olderThanPeriod"?: "DAYS" | "WEEKS" | "MONTHS", readonly "olderThanValue"?: number, readonly "type"?: "WEEKLY" | "MONTHLY" | "OLDER_THAN" }
33
33
  export const AutomaticLockDtoV1 = Schema.Struct({ "changeDay": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a day of the week." })), "dayOfMonth": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a day of month as integer.", "format": "int32" }).check(Schema.isInt())), "firstDay": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a day of the week." })), "olderThanPeriod": Schema.optionalKey(Schema.Literals(["DAYS", "WEEKS", "MONTHS"]).annotate({ "description": "Represents a time entry automatic lock period enum." })), "olderThanValue": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an integer as the criteria for locking time entries.", "format": "int32" }).check(Schema.isInt())), "type": Schema.optionalKey(Schema.Literals(["WEEKLY", "MONTHLY", "OLDER_THAN"]).annotate({ "description": "Represents a time entry automatic lock type enum." })) }).annotate({ "description": "Represents an automatic lock object." })
34
- export type BalanceDtoV1 = { readonly "balance"?: number, readonly "id"?: string, readonly "negativeBalanceAmount"?: number, readonly "negativeBalanceLimit"?: boolean, readonly "policyArchived"?: boolean, readonly "policyId"?: string, readonly "policyName"?: string, readonly "policyTimeUnit"?: "DAYS" | "HOURS", readonly "total"?: number, readonly "used"?: number, readonly "userId"?: string, readonly "userName"?: string, readonly "workspaceId"?: string }
35
- export const BalanceDtoV1 = Schema.Struct({ "balance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the balance amount of the time unit", "format": "double" }).check(Schema.isFinite())), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represent balance identifier across the system." })), "negativeBalanceAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represent negative balance amount.", "format": "double" }).check(Schema.isFinite())), "negativeBalanceLimit": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the negative balance limit is allowed." })), "policyArchived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy is archived." })), "policyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represent policy identifier across the system." })), "policyName": Schema.optionalKey(Schema.String.annotate({ "description": "Represent policy name." })), "policyTimeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Represent policy time unit." })), "total": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the total amount", "format": "double" }).check(Schema.isFinite())), "used": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the balance used amount", "format": "double" }).check(Schema.isFinite())), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represent user identifier across the system." })), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represent user's username." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represent workspace identifier across the system." })) }).annotate({ "description": "Represent the list of balances." })
34
+ export type BalanceDtoV1 = { readonly "balance"?: number, readonly "id"?: string, readonly "negativeBalanceAmount"?: number, readonly "negativeBalanceLimit"?: boolean, readonly "negativeBalanceUsed"?: number, readonly "policyArchived"?: boolean, readonly "policyId"?: string, readonly "policyName"?: string, readonly "policyTimeUnit"?: "DAYS" | "HOURS", readonly "total"?: number, readonly "used"?: number, readonly "userId"?: string, readonly "userName"?: string, readonly "workspaceId"?: string }
35
+ export const BalanceDtoV1 = Schema.Struct({ "balance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the balance amount of the time unit", "format": "double" }).check(Schema.isFinite())), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represent balance identifier across the system." })), "negativeBalanceAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represent negative balance amount.", "format": "double" }).check(Schema.isFinite())), "negativeBalanceLimit": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the negative balance limit is allowed." })), "negativeBalanceUsed": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the amount of balance used outside of existing balance and validity period", "format": "double" }).check(Schema.isFinite())), "policyArchived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy is archived." })), "policyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represent policy identifier across the system." })), "policyName": Schema.optionalKey(Schema.String.annotate({ "description": "Represent policy name." })), "policyTimeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Represent policy time unit." })), "total": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the total amount", "format": "double" }).check(Schema.isFinite())), "used": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the balance used amount", "format": "double" }).check(Schema.isFinite())), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represent user identifier across the system." })), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represent user's username." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represent workspace identifier across the system." })) }).annotate({ "description": "Represent the list of balances." })
36
36
  export type BaseFilterRequest = { readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN" | "CONTAINS_ONLY", readonly "ids"?: ReadonlyArray<string> }
37
37
  export const BaseFilterRequest = Schema.Struct({ "contains": Schema.optionalKey(Schema.Literals(["CONTAINS", "DOES_NOT_CONTAIN", "CONTAINS_ONLY"]).annotate({ "description": "Filter type." })), "ids": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of filter identifiers." })).annotate({ "description": "Represents a list of filter identifiers." }).check(Schema.isUnique())) }).annotate({ "description": "Represents a company filter object. If provided, you'll get a filtered list of invoices that matches the specified company filter." })
38
38
  export type CalculationType = never
@@ -61,8 +61,10 @@ export type CostRateRequest = { readonly "amount"?: number, readonly "since"?: s
61
61
  export const CostRateRequest = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(0))), "since": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a datetime in yyyy-MM-ddThh:mm:ssZ format." })), "sinceAsInstant": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })) }).annotate({ "description": "Represents a cost rate request object." })
62
62
  export type CostRateRequestV1 = { readonly "amount": number, readonly "since"?: string }
63
63
  export const CostRateRequestV1 = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(0)), "since": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date and time in yyyy-MM-ddThh:mm:ssZ format." })) })
64
- export type CreateApprovalRequest = { readonly "period"?: "WEEKLY" | "SEMI_MONTHLY" | "MONTHLY", readonly "periodStart": string }
65
- export const CreateApprovalRequest = Schema.Struct({ "period": Schema.optionalKey(Schema.Literals(["WEEKLY", "SEMI_MONTHLY", "MONTHLY"]).annotate({ "description": "Specifies the approval period. It has to match the workspace approval period setting." })), "periodStart": Schema.String.annotate({ "description": "Specifies an approval period start date in yyyy-MM-ddThh:mm:ssZ format." }).check(Schema.isMinLength(1)) })
64
+ export type CreateApprovalRequest = { readonly "period"?: "WEEKLY" | "SEMI_MONTHLY" | "MONTHLY", readonly "periodStart": string, readonly "type"?: string }
65
+ export const CreateApprovalRequest = Schema.Struct({ "period": Schema.optionalKey(Schema.Literals(["WEEKLY", "SEMI_MONTHLY", "MONTHLY"]).annotate({ "description": "Specifies the approval period. It has to match the workspace approval period setting." })), "periodStart": Schema.String.annotate({ "description": "Specifies an approval period start date in yyyy-MM-ddThh:mm:ssZ format." }).check(Schema.isMinLength(1)), "type": Schema.optionalKey(Schema.String.check(Schema.isPattern(new RegExp("TIMESHEET|EXPENSE")))) })
66
+ export type CreateApprovalRequestNoType = { readonly "period"?: "WEEKLY" | "SEMI_MONTHLY" | "MONTHLY", readonly "periodStart": string }
67
+ export const CreateApprovalRequestNoType = Schema.Struct({ "period": Schema.optionalKey(Schema.Literals(["WEEKLY", "SEMI_MONTHLY", "MONTHLY"]).annotate({ "description": "Specifies the approval period. It has to match the workspace approval period setting." })), "periodStart": Schema.String.annotate({ "description": "Specifies an approval period start date in yyyy-MM-ddThh:mm:ssZ format." }).check(Schema.isMinLength(1)) })
66
68
  export type CreateClientRequestV1 = { readonly "address"?: string, readonly "email"?: string, readonly "name"?: string, readonly "note"?: string }
67
69
  export const CreateClientRequestV1 = Schema.Struct({ "address": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client's address." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3000))), "email": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client email.", "format": "email" })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client name." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(100))), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents additional notes for the client." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3000))) })
68
70
  export type CreateCustomAttributeRequest = { readonly "name": string, readonly "namespace": string, readonly "value": string }
@@ -79,8 +81,6 @@ export type CreateInvoiceRequest = { readonly "clientId": string, readonly "curr
79
81
  export const CreateInvoiceRequest = Schema.Struct({ "clientId": Schema.String.annotate({ "description": "Represents a client identifier across the system." }).check(Schema.isMinLength(1)), "currency": Schema.String.annotate({ "description": "Represents the currency used by the invoice." }).check(Schema.isMinLength(1)), "dueDate": Schema.String.annotate({ "description": "Represents an invoice due date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }), "issuedDate": Schema.String.annotate({ "description": "Represents an invoice issued date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }), "number": Schema.String.annotate({ "description": "Represents an invoice number." }).check(Schema.isMinLength(1)), "timeViewMode": Schema.optionalKey(Schema.Literals(["TIME_SENSITIVE_VIEW", "AGGREGATED_TIME_VIEW"])) })
80
82
  export type CreateProjectFromTemplateV1 = { readonly "clientId"?: string, readonly "color"?: string, readonly "isPublic"?: boolean, readonly "name": string, readonly "templateProjectId": string }
81
83
  export const CreateProjectFromTemplateV1 = Schema.Struct({ "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client identifier across the system." })), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Color format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." }).check(Schema.isPattern(new RegExp("^#(?:[0-9a-fA-F]{6}){1}$")))), "isPublic": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the project is public or not." })), "name": Schema.String.annotate({ "description": "Represents a project name." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(250)), "templateProjectId": Schema.String.annotate({ "description": "Represents a project identifier across the system." }).check(Schema.isMinLength(1)) })
82
- export type CreateRecurringAssignmentRequestV1 = { readonly "repeat"?: boolean, readonly "weeks": number }
83
- export const CreateRecurringAssignmentRequestV1 = Schema.Struct({ "repeat": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is recurring or not." })), "weeks": Schema.Number.annotate({ "description": "Indicates number of weeks for assignment.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(99)) }).annotate({ "description": "Represents a recurring assignment object. This parameter is optional." })
84
84
  export type CreateWebhookRequestV1 = { readonly "name"?: string, readonly "triggerSource": ReadonlyArray<string>, readonly "triggerSourceType": "PROJECT_ID" | "USER_ID" | "TAG_ID" | "TASK_ID" | "WORKSPACE_ID" | "ASSIGNMENT_ID" | "EXPENSE_ID", readonly "url": string, readonly "webhookEvent": "NEW_PROJECT" | "NEW_TASK" | "NEW_CLIENT" | "NEW_TIMER_STARTED" | "TIMER_STOPPED" | "TIME_ENTRY_UPDATED" | "TIME_ENTRY_DELETED" | "TIME_ENTRY_SPLIT" | "NEW_TIME_ENTRY" | "TIME_ENTRY_RESTORED" | "NEW_TAG" | "USER_DELETED_FROM_WORKSPACE" | "USER_JOINED_WORKSPACE" | "USER_DEACTIVATED_ON_WORKSPACE" | "USER_ACTIVATED_ON_WORKSPACE" | "USER_EMAIL_CHANGED" | "USER_UPDATED" | "NEW_INVOICE" | "INVOICE_UPDATED" | "NEW_APPROVAL_REQUEST" | "APPROVAL_REQUEST_STATUS_UPDATED" | "TIME_OFF_REQUESTED" | "TIME_OFF_REQUEST_UPDATED" | "TIME_OFF_REQUEST_APPROVED" | "TIME_OFF_REQUEST_REJECTED" | "TIME_OFF_REQUEST_STARTED" | "TIME_OFF_REQUEST_WITHDRAWN" | "BALANCE_UPDATED" | "TAG_UPDATED" | "TAG_DELETED" | "TASK_UPDATED" | "CLIENT_UPDATED" | "TASK_DELETED" | "CLIENT_DELETED" | "EXPENSE_RESTORED" | "ASSIGNMENT_CREATED" | "ASSIGNMENT_DELETED" | "ASSIGNMENT_PUBLISHED" | "ASSIGNMENT_UPDATED" | "EXPENSE_CREATED" | "EXPENSE_DELETED" | "EXPENSE_UPDATED" | "PROJECT_UPDATED" | "PROJECT_DELETED" | "USER_GROUP_CREATED" | "USER_GROUP_UPDATED" | "USER_GROUP_DELETED" | "USERS_INVITED_TO_WORKSPACE" | "LIMITED_USERS_ADDED_TO_WORKSPACE" | "COST_RATE_UPDATED" | "BILLABLE_RATE_UPDATED" }
85
85
  export const CreateWebhookRequestV1 = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a webhook name." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(30))), "triggerSource": Schema.Array(Schema.String.annotate({ "description": "Represents a list of trigger sources." })).annotate({ "description": "Represents a list of trigger sources." }), "triggerSourceType": Schema.Literals(["PROJECT_ID", "USER_ID", "TAG_ID", "TASK_ID", "WORKSPACE_ID", "ASSIGNMENT_ID", "EXPENSE_ID"]).annotate({ "description": "Represents a webhook event trigger source type." }), "url": Schema.String.annotate({ "description": "Represents a webhook target url." }).check(Schema.isMinLength(1)), "webhookEvent": Schema.Literals(["NEW_PROJECT", "NEW_TASK", "NEW_CLIENT", "NEW_TIMER_STARTED", "TIMER_STOPPED", "TIME_ENTRY_UPDATED", "TIME_ENTRY_DELETED", "TIME_ENTRY_SPLIT", "NEW_TIME_ENTRY", "TIME_ENTRY_RESTORED", "NEW_TAG", "USER_DELETED_FROM_WORKSPACE", "USER_JOINED_WORKSPACE", "USER_DEACTIVATED_ON_WORKSPACE", "USER_ACTIVATED_ON_WORKSPACE", "USER_EMAIL_CHANGED", "USER_UPDATED", "NEW_INVOICE", "INVOICE_UPDATED", "NEW_APPROVAL_REQUEST", "APPROVAL_REQUEST_STATUS_UPDATED", "TIME_OFF_REQUESTED", "TIME_OFF_REQUEST_UPDATED", "TIME_OFF_REQUEST_APPROVED", "TIME_OFF_REQUEST_REJECTED", "TIME_OFF_REQUEST_STARTED", "TIME_OFF_REQUEST_WITHDRAWN", "BALANCE_UPDATED", "TAG_UPDATED", "TAG_DELETED", "TASK_UPDATED", "CLIENT_UPDATED", "TASK_DELETED", "CLIENT_DELETED", "EXPENSE_RESTORED", "ASSIGNMENT_CREATED", "ASSIGNMENT_DELETED", "ASSIGNMENT_PUBLISHED", "ASSIGNMENT_UPDATED", "EXPENSE_CREATED", "EXPENSE_DELETED", "EXPENSE_UPDATED", "PROJECT_UPDATED", "PROJECT_DELETED", "USER_GROUP_CREATED", "USER_GROUP_UPDATED", "USER_GROUP_DELETED", "USERS_INVITED_TO_WORKSPACE", "LIMITED_USERS_ADDED_TO_WORKSPACE", "COST_RATE_UPDATED", "BILLABLE_RATE_UPDATED"]).annotate({ "description": "Represents a webhook event type." }) })
86
86
  export type CreateWorkspaceRequestV1 = { readonly "name"?: string, readonly "organizationId"?: string }
@@ -103,12 +103,18 @@ export type DatePeriod = { readonly "endDate"?: string, readonly "startDate"?: s
103
103
  export const DatePeriod = Schema.Struct({ "endDate": Schema.optionalKey(Schema.String.annotate({ "format": "date" })), "startDate": Schema.optionalKey(Schema.String.annotate({ "format": "date" })) }).annotate({ "description": "Represents startDate and endDate of the holiday. Date is in format yyyy-mm-dd" })
104
104
  export type DatePeriodRequest = { readonly "endDate": string, readonly "startDate": string }
105
105
  export const DatePeriodRequest = Schema.Struct({ "endDate": Schema.String.annotate({ "description": "yyyy-MM-dd format date" }).check(Schema.isMinLength(1)), "startDate": Schema.String.annotate({ "description": "yyyy-MM-dd format date" }).check(Schema.isMinLength(1)) }).annotate({ "description": "Provide startDate and endDate for the holiday." })
106
+ export type DateRange = { readonly "end"?: string, readonly "start"?: string }
107
+ export const DateRange = Schema.Struct({ "end": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "start": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })) })
106
108
  export type DateRangeDto = { readonly "end"?: string, readonly "start"?: string }
107
109
  export const DateRangeDto = Schema.Struct({ "end": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "start": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })) }).annotate({ "description": "Represents date range object." })
110
+ export type DateRangeV1Request = { readonly "end"?: string, readonly "start"?: string }
111
+ export const DateRangeV1Request = Schema.Struct({ "end": Schema.optionalKey(Schema.String.annotate({ "description": "Provide end date in YYYY-MM-DD format." })), "start": Schema.optionalKey(Schema.String.annotate({ "description": "Provide start date in YYYY-MM-DD format." })) }).annotate({ "description": "Represents the date range when the new balance will be usable. If null, this will default to the current day until the same day next year." })
108
112
  export type DefaultEntitiesDto = { readonly "projectId"?: string, readonly "taskId"?: string }
109
113
  export const DefaultEntitiesDto = Schema.Struct({ "projectId": Schema.optionalKey(Schema.String), "taskId": Schema.optionalKey(Schema.String) })
110
114
  export type DefaultEntitiesRequest = { readonly "projectId"?: string, readonly "taskId"?: string }
111
115
  export const DefaultEntitiesRequest = Schema.Struct({ "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Default project for automatically created time entries" })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Default task for automatically created time entries" })) }).annotate({ "description": "Provides information about default project and task for automatically created time entries." })
116
+ export type DeleteBalanceAssignmentV1Request = { readonly "note": string }
117
+ export const DeleteBalanceAssignmentV1Request = Schema.Struct({ "note": Schema.String.annotate({ "description": "Represents a note explaining balance deletion" }).check(Schema.isMinLength(1)) })
112
118
  export type EntityCreationPermission = never
113
119
  export const EntityCreationPermission = Schema.Never
114
120
  export type EntityIdNameDto = { readonly "id"?: string, readonly "name"?: string }
@@ -143,6 +149,8 @@ export type Feature = never
143
149
  export const Feature = Schema.Never
144
150
  export type FeaturePlan = never
145
151
  export const FeaturePlan = Schema.Never
152
+ export type GetTimeEntriesByIdsRequest = { readonly "hydrated"?: boolean, readonly "timeEntryIds": ReadonlyArray<string> }
153
+ export const GetTimeEntriesByIdsRequest = Schema.Struct({ "hydrated": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether to include additional information of time entries or not." })), "timeEntryIds": Schema.Array(Schema.String.annotate({ "description": "Represents time entry identifiers across the system." })).annotate({ "description": "Represents time entry identifiers across the system." }).check(Schema.isMinLength(1)) })
146
154
  export type GetTimeOffRequestsV1Request = { readonly "end"?: string, readonly "page"?: number, readonly "pageSize"?: number, readonly "start"?: string, readonly "statuses"?: ReadonlyArray<"PENDING" | "APPROVED" | "REJECTED" | "ALL">, readonly "userGroups"?: ReadonlyArray<string>, readonly "users"?: ReadonlyArray<string> }
147
155
  export const GetTimeOffRequestsV1Request = Schema.Struct({ "end": Schema.optionalKey(Schema.String.annotate({ "description": "Provide the end of the filtering period. Used with `start` to filter for time-off requests periods that occur (fully or partially) within this range. Both parameters must be provided for filtering to take effect. Provide end in format YYYY-MM-DDTHH:MM:SS.ssssssZ", "format": "date-time" })), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt()).check(Schema.isLessThanOrEqualTo(1000))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(200))), "start": Schema.optionalKey(Schema.String.annotate({ "description": "Provide the beginning of the filtering period. Used with `end` to filter for time-off requests periods that occur (fully or partially) within this range. Both parameters must be provided for filtering to take effect. Provide start in format YYYY-MM-DDTHH:MM:SS.ssssssZ", "format": "date-time" })), "statuses": Schema.optionalKey(Schema.Array(Schema.Literals(["PENDING", "APPROVED", "REJECTED", "ALL"]).annotate({ "description": "Filters time off requests by status." })).annotate({ "description": "Filters time off requests by status." }).check(Schema.isUnique())), "userGroups": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Provide the user group ids of time off requests." })).annotate({ "description": "Provide the user group ids of time off requests." }).check(Schema.isUnique())), "users": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Provide the user ids of time off requests. If empty, will return time off requests of all users (with a maximum of 5000 users)." })).annotate({ "description": "Provide the user ids of time off requests. If empty, will return time off requests of all users (with a maximum of 5000 users)." }).check(Schema.isUnique())) })
148
156
  export type GetUsersRequestV1 = { readonly "accountStatuses"?: ReadonlyArray<string>, readonly "email"?: string, readonly "includeRoles"?: boolean, readonly "memberships"?: "ALL" | "NONE" | "WORKSPACE" | "PROJECT" | "USERGROUP", readonly "name"?: string, readonly "page"?: number, readonly "pageSize"?: number, readonly "projectId"?: string, readonly "roles"?: ReadonlyArray<"WORKSPACE_ADMIN" | "OWNER" | "TEAM_MANAGER" | "PROJECT_MANAGER">, readonly "sortColumn"?: "ID" | "EMAIL" | "NAME" | "NAME_LOWERCASE" | "ACCESS" | "HOURLYRATE" | "COSTRATE", readonly "sortOrder"?: "ASCENDING" | "DESCENDING", readonly "status"?: "PENDING" | "ACTIVE" | "DECLINED" | "INACTIVE" | "ALL", readonly "userGroups"?: ReadonlyArray<string> }
@@ -173,6 +181,8 @@ export type LogBinDocumentDto = { readonly "deletedAt"?: string, readonly "docum
173
181
  export const LogBinDocumentDto = Schema.Struct({ "deletedAt": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "document": Schema.optionalKey(Schema.Struct({ })), "documentCode": Schema.optionalKey(Schema.String), "id": Schema.optionalKey(Schema.String) })
174
182
  export type MilestoneDto = { readonly "date"?: string, readonly "id"?: string, readonly "name"?: string, readonly "projectId"?: string, readonly "workspaceId"?: string }
175
183
  export const MilestoneDto = Schema.Struct({ "date": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents milestone identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents milestone name." })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "description": "Represents a list of milestone objects." })
184
+ export type MonthlyRecurringType = never
185
+ export const MonthlyRecurringType = Schema.Never
176
186
  export type NegativeBalanceDto = { readonly "amount"?: number, readonly "period"?: string, readonly "shouldReset"?: boolean, readonly "timeUnit"?: string }
177
187
  export const NegativeBalanceDto = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "format": "double" }).check(Schema.isFinite())), "period": Schema.optionalKey(Schema.String), "shouldReset": Schema.optionalKey(Schema.Boolean), "timeUnit": Schema.optionalKey(Schema.String) }).annotate({ "description": "Represents the data about negative balance including amount, time unit and period." })
178
188
  export type NegativeBalanceRequest = { readonly "amount": number, readonly "period"?: "MONTH" | "YEAR", readonly "shouldReset"?: boolean }
@@ -199,10 +209,10 @@ export type RateDtoV1 = { readonly "amount"?: number, readonly "currency"?: stri
199
209
  export const RateDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt())), "currency": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a currency." })) }).annotate({ "description": "Represents cost rate object." })
200
210
  export type RateWithCurrencyRequestV1 = { readonly "amount": number, readonly "currency": string, readonly "since"?: string }
201
211
  export const RateWithCurrencyRequestV1 = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(0)), "currency": Schema.String.annotate({ "description": "Represents a currency." }).check(Schema.isMinLength(1)).check(Schema.isMaxLength(100)), "since": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date and time in yyyy-MM-ddThh:mm:ssZ format." })) })
202
- export type RecurringAssignmentDto = { readonly "repeat"?: boolean, readonly "seriesId"?: string, readonly "weeks"?: number }
203
- export const RecurringAssignmentDto = Schema.Struct({ "repeat": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is recurring or not." })), "seriesId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents series identifier." })), "weeks": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents number of weeks for thhis assignment.", "format": "int32" }).check(Schema.isInt())) }).annotate({ "description": "Represents recurring assignment object." })
204
- export type RecurringAssignmentRequestV1 = { readonly "repeat"?: boolean, readonly "weeks": number }
205
- export const RecurringAssignmentRequestV1 = Schema.Struct({ "repeat": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is recurring or not." })), "weeks": Schema.Number.annotate({ "description": "Indicates number of weeks for assignment.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(99)) })
212
+ export type RecurringEndType = never
213
+ export const RecurringEndType = Schema.Never
214
+ export type RecurringFrequency = never
215
+ export const RecurringFrequency = Schema.Never
206
216
  export type RoleRequestV1 = { readonly "entityId": string, readonly "role": "WORKSPACE_ADMIN" | "TEAM_MANAGER" | "PROJECT_MANAGER", readonly "sourceType"?: "USER_GROUP" }
207
217
  export const RoleRequestV1 = Schema.Struct({ "entityId": Schema.String.annotate({ "description": "Represents an entity identifier across the system." }).check(Schema.isMinLength(1)), "role": Schema.Literals(["WORKSPACE_ADMIN", "TEAM_MANAGER", "PROJECT_MANAGER"]).annotate({ "description": "Represents a valid role." }), "sourceType": Schema.optionalKey(Schema.Literal("USER_GROUP").annotate({ "description": "Optional field used to indicate that the target of the operation is a\nuser group, in which case the value USER_GROUP should be used, alongside a valid user group\nID for the entityId field. If omitted, a user ID should be used for the entityId field.\n" })) })
208
218
  export type RoundDto = { readonly "minutes"?: string, readonly "round"?: string }
@@ -251,8 +261,6 @@ export type TotalsPerDayDto = { readonly "date"?: string, readonly "totalHours"?
251
261
  export const TotalsPerDayDto = Schema.Struct({ "date": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "totalHours": Schema.optionalKey(Schema.Number.annotate({ "format": "double" }).check(Schema.isFinite())) }).annotate({ "description": "Represents total hours per day object." })
252
262
  export type UpdateApprovalRequest = { readonly "note"?: string, readonly "state": "PENDING" | "APPROVED" | "WITHDRAWN_SUBMISSION" | "WITHDRAWN_APPROVAL" | "REJECTED" }
253
263
  export const UpdateApprovalRequest = Schema.Struct({ "note": Schema.optionalKey(Schema.String.annotate({ "description": "Additional notes for the approval request." })), "state": Schema.Literals(["PENDING", "APPROVED", "WITHDRAWN_SUBMISSION", "WITHDRAWN_APPROVAL", "REJECTED"]).annotate({ "description": "Specifies the approval state to set." }) })
254
- export type UpdateBalanceRequestV1 = { readonly "note"?: string, readonly "userIds": ReadonlyArray<string>, readonly "value": number }
255
- export const UpdateBalanceRequestV1 = Schema.Struct({ "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a new balance note value." })), "userIds": Schema.Array(Schema.String.annotate({ "description": "Represents the list of users' identifiers whose balance is to be updated." })).annotate({ "description": "Represents the list of users' identifiers whose balance is to be updated." }).check(Schema.isMinLength(1)).check(Schema.isUnique()), "value": Schema.Number.annotate({ "description": "Represents a new balance value.", "format": "double" }).check(Schema.isFinite()).check(Schema.isGreaterThanOrEqualTo(-10000)).check(Schema.isLessThanOrEqualTo(10000)) })
256
264
  export type UpdateClientRequestV1 = { readonly "address"?: string, readonly "archived"?: boolean, readonly "ccEmails"?: ReadonlyArray<string>, readonly "currencyId"?: string, readonly "email"?: string, readonly "name"?: string, readonly "note"?: string }
257
265
  export const UpdateClientRequestV1 = Schema.Struct({ "address": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client's address." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3000))), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates if client will be archived or not." })), "ccEmails": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "format": "email" })).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3))), "currencyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a currency identifier across the system." })), "email": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client email.", "format": "email" })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client name." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(100))), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents additional notes for the client." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3000))) })
258
266
  export type UpdateCustomFieldRequest = { readonly "customFieldId": string, readonly "sourceType"?: "WORKSPACE" | "PROJECT" | "TIMEENTRY", readonly "value"?: { } }
@@ -371,18 +379,22 @@ export type GetUserTotalsRequestV1 = { readonly "end": string, readonly "page"?:
371
379
  export const GetUserTotalsRequestV1 = Schema.Struct({ "end": Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt())), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isLessThanOrEqualTo(200))), "search": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the keyword for searching users by name or email." })), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }), "statusFilter": Schema.optionalKey(Schema.Literals(["PUBLISHED", "UNPUBLISHED", "ALL"]).annotate({ "description": "Filters assignments by status." })), "userFilter": Schema.optionalKey(ContainsUsersFilterRequestV1), "userGroupFilter": Schema.optionalKey(ContainsUserGroupFilterRequestV1) })
372
380
  export type PublishAssignmentsRequestV1 = { readonly "end": string, readonly "notifyUsers"?: boolean, readonly "search"?: string, readonly "start": string, readonly "userFilter"?: ContainsUsersFilterRequestV1, readonly "userGroupFilter"?: ContainsUserGroupFilterRequestV1, readonly "viewType"?: "PROJECTS" | "TEAM" | "ALL" }
373
381
  export const PublishAssignmentsRequestV1 = Schema.Struct({ "end": Schema.String.annotate({ "description": "Represents end date in yyyy-MM-ddThh:mm:ssZ format." }), "notifyUsers": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to notify users when assignment is published." })), "search": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a search string." })), "start": Schema.String.annotate({ "description": "Represents start date in yyyy-MM-ddThh:mm:ssZ format." }), "userFilter": Schema.optionalKey(ContainsUsersFilterRequestV1), "userGroupFilter": Schema.optionalKey(ContainsUserGroupFilterRequestV1), "viewType": Schema.optionalKey(Schema.Literals(["PROJECTS", "TEAM", "ALL"]).annotate({ "description": "Represents view type." })) })
374
- export type AssignmentCreateRequestV1 = { readonly "billable"?: boolean, readonly "end": string, readonly "hoursPerDay": number, readonly "includeNonWorkingDays"?: boolean, readonly "note"?: string, readonly "projectId": string, readonly "recurringAssignment"?: CreateRecurringAssignmentRequestV1, readonly "start": string, readonly "startTime"?: string, readonly "taskId"?: string, readonly "userId": string }
375
- export const AssignmentCreateRequestV1 = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is billable or not." })), "end": Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format." }), "hoursPerDay": Schema.Number.annotate({ "description": "Represents assignment total hours per day.", "format": "double" }).check(Schema.isFinite()), "includeNonWorkingDays": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to include non-working days or not." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an assignment note." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(100))), "projectId": Schema.String.annotate({ "description": "Represents a project identifier across the system." }).check(Schema.isMinLength(1)), "recurringAssignment": Schema.optionalKey(CreateRecurringAssignmentRequestV1), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }), "startTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a start time in the hh:mm:ss format." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task identifier across the system." })), "userId": Schema.String.annotate({ "description": "Represents a user identifier across the system." }).check(Schema.isMinLength(1)) })
376
382
  export type CustomFieldDtoV1 = { readonly "allowedValues"?: ReadonlyArray<string>, readonly "description"?: string, readonly "entityType"?: string, readonly "id"?: string, readonly "name"?: string, readonly "onlyAdminCanEdit"?: boolean, readonly "placeholder"?: string, readonly "projectDefaultValues"?: ReadonlyArray<CustomFieldDefaultValuesDtoV1>, readonly "required"?: boolean, readonly "status"?: string, readonly "type"?: string, readonly "workspaceDefaultValue"?: { }, readonly "workspaceId"?: string }
377
383
  export const CustomFieldDtoV1 = Schema.Struct({ "allowedValues": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of custom field's allowed values." })).annotate({ "description": "Represents a list of custom field's allowed values." })), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field description." })), "entityType": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field entity type" })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field name." })), "onlyAdminCanEdit": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether custom field is modifiable only by admin users." })), "placeholder": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field placeholder value." })), "projectDefaultValues": Schema.optionalKey(Schema.Array(CustomFieldDefaultValuesDtoV1).annotate({ "description": "Represents a list of custom field default values data transfer objects." })), "required": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether custom field is mandatory or not." })), "status": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field status" })), "type": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field type." })), "workspaceDefaultValue": Schema.optionalKey(Schema.Struct({ }).annotate({ "description": "Represents a custom field's default value in the workspace." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
378
384
  export type UserCustomFieldValueDtoV1 = { readonly "customFieldId"?: string, readonly "customFieldName"?: string, readonly "customFieldType"?: CustomFieldType, readonly "userId"?: string, readonly "value"?: { } }
379
385
  export const UserCustomFieldValueDtoV1 = Schema.Struct({ "customFieldId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field identifier across the system." })), "customFieldName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field name." })), "customFieldType": Schema.optionalKey(CustomFieldType), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "value": Schema.optionalKey(Schema.Struct({ }).annotate({ "description": "Represents custom field value." })) }).annotate({ "description": "Represents a list of value objects for user’s custom fields." })
380
386
  export type HolidayDtoV1 = { readonly "automaticTimeEntryCreation"?: boolean, readonly "datePeriod"?: DatePeriod, readonly "everyoneIncludingNew"?: boolean, readonly "id"?: string, readonly "name"?: string, readonly "occursAnnually"?: boolean, readonly "projectId"?: string, readonly "taskId"?: string, readonly "userGroupIds"?: ReadonlyArray<string>, readonly "userIds"?: ReadonlyArray<string>, readonly "workspaceId"?: string }
381
387
  export const HolidayDtoV1 = Schema.Struct({ "automaticTimeEntryCreation": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates that time entries will be automatically created for this holiday." })), "datePeriod": Schema.optionalKey(DatePeriod), "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday is shown to new users." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents holiday identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the name of the holiday." })), "occursAnnually": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday occurs annually." })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents projectId for automatic time entry creation." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents taskId for automatic time entry creation." })), "userGroupIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Indicates which user groups are included." })).annotate({ "description": "Indicates which user groups are included." }).check(Schema.isUnique())), "userIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Indicates which users are included." })).annotate({ "description": "Indicates which users are included." }).check(Schema.isUnique())), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
382
- export type ApprovalRequestDtoV1 = { readonly "creator"?: ApprovalRequestCreatorDtoV1, readonly "dateRange"?: DateRangeDto, readonly "id"?: string, readonly "owner"?: ApprovalRequestOwnerDtoV1, readonly "status"?: ApprovalRequestStatusDtoV1, readonly "workspaceId"?: string }
383
- export const ApprovalRequestDtoV1 = Schema.Struct({ "creator": Schema.optionalKey(ApprovalRequestCreatorDtoV1), "dateRange": Schema.optionalKey(DateRangeDto), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents approval request identifier across the workspace." })), "owner": Schema.optionalKey(ApprovalRequestOwnerDtoV1), "status": Schema.optionalKey(ApprovalRequestStatusDtoV1), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "description": "Represents a valid approval request data transfer object." })
388
+ export type ApprovalRequestDtoV1 = { readonly "creator"?: ApprovalRequestCreatorDtoV1, readonly "dateRange"?: DateRangeDto, readonly "id"?: string, readonly "owner"?: ApprovalRequestOwnerDtoV1, readonly "status"?: ApprovalRequestStatusDtoV1, readonly "type"?: string, readonly "workspaceId"?: string }
389
+ export const ApprovalRequestDtoV1 = Schema.Struct({ "creator": Schema.optionalKey(ApprovalRequestCreatorDtoV1), "dateRange": Schema.optionalKey(DateRangeDto), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents approval request identifier across the workspace." })), "owner": Schema.optionalKey(ApprovalRequestOwnerDtoV1), "status": Schema.optionalKey(ApprovalRequestStatusDtoV1), "type": Schema.optionalKey(Schema.String.annotate({ "description": "Represents approval request type." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "description": "Represents a valid approval request data transfer object." })
384
390
  export type AssignmentHydratedDtoV1 = { readonly "billable"?: boolean, readonly "clientId"?: string, readonly "clientName"?: string, readonly "hoursPerDay"?: number, readonly "id"?: string, readonly "note"?: string, readonly "period"?: DateRangeDto, readonly "projectArchived"?: boolean, readonly "projectBillable"?: boolean, readonly "projectColor"?: string, readonly "projectId"?: string, readonly "projectName"?: string, readonly "startTime"?: string, readonly "taskId"?: string, readonly "taskName"?: string, readonly "userId"?: string, readonly "userName"?: string, readonly "workspaceId"?: string }
385
391
  export const AssignmentHydratedDtoV1 = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is billable or not." })), "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client identifier across the system." })), "clientName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project name." })), "hoursPerDay": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents number of hours per day as double.", "format": "double" }).check(Schema.isFinite())), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents assignment identifier across the system." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents assignment note." })), "period": Schema.optionalKey(DateRangeDto), "projectArchived": Schema.optionalKey(Schema.Boolean), "projectBillable": Schema.optionalKey(Schema.Boolean), "projectColor": Schema.optionalKey(Schema.String.annotate({ "description": "Color format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "projectName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project name." })), "startTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents start time in hh:mm:ss format." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task identifier across the system." })), "taskName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task name." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user name." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
392
+ export type CreateBalanceAssignmentV1Request = { readonly "balance": number, readonly "dateRange"?: DateRangeV1Request, readonly "note"?: string, readonly "policyId": string, readonly "userIds": ReadonlyArray<string> }
393
+ export const CreateBalanceAssignmentV1Request = Schema.Struct({ "balance": Schema.Number.annotate({ "description": "Represents the amount of balance to be created", "format": "double" }).check(Schema.isFinite()).check(Schema.isLessThanOrEqualTo(10000)), "dateRange": Schema.optionalKey(DateRangeV1Request), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents note attached to updating balance." })), "policyId": Schema.String.annotate({ "description": "Represents the identifier of the policy where the balance assignment will be created" }).check(Schema.isMinLength(1)), "userIds": Schema.Array(Schema.String.annotate({ "description": "Represents list of users' identifiers whose balance is to be updated." })).annotate({ "description": "Represents list of users' identifiers whose balance is to be updated." }).check(Schema.isMinLength(1)).check(Schema.isUnique()) })
394
+ export type UpdateBalanceAssignmentV1Request = { readonly "balanceChange": number, readonly "dateRange"?: DateRangeV1Request, readonly "note"?: string }
395
+ export const UpdateBalanceAssignmentV1Request = Schema.Struct({ "balanceChange": Schema.Number.annotate({ "description": "Represents the change in balance of the balance assignment", "format": "double" }).check(Schema.isFinite()).check(Schema.isGreaterThanOrEqualTo(-10000)).check(Schema.isLessThanOrEqualTo(10000)), "dateRange": Schema.optionalKey(DateRangeV1Request), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents note attached to updating balance." })) })
396
+ export type UpdateBalanceRequestV1 = { readonly "dateRange"?: DateRangeV1Request, readonly "note"?: string, readonly "sync"?: boolean, readonly "userIds": ReadonlyArray<string>, readonly "value": number }
397
+ export const UpdateBalanceRequestV1 = Schema.Struct({ "dateRange": Schema.optionalKey(DateRangeV1Request), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a new balance note value." })), "sync": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the call should be executed synchronously. By default, call is done asynchronously" })), "userIds": Schema.Array(Schema.String.annotate({ "description": "Represents the list of users' identifiers whose balance is to be updated." })).annotate({ "description": "Represents the list of users' identifiers whose balance is to be updated." }).check(Schema.isMinLength(1)).check(Schema.isUnique()), "value": Schema.Number.annotate({ "description": "Represents the change in balance value.", "format": "double" }).check(Schema.isFinite()).check(Schema.isGreaterThanOrEqualTo(-10000)).check(Schema.isLessThanOrEqualTo(10000)) })
386
398
  export type AutomaticTimeEntryCreationDto = { readonly "defaultEntities"?: DefaultEntitiesDto, readonly "enabled"?: boolean }
387
399
  export const AutomaticTimeEntryCreationDto = Schema.Struct({ "defaultEntities": Schema.optionalKey(DefaultEntitiesDto), "enabled": Schema.optionalKey(Schema.Boolean) }).annotate({ "description": "Represents automatic time entry creation settings." })
388
400
  export type AutomaticTimeEntryCreationRequest = { readonly "defaultEntities": DefaultEntitiesRequest, readonly "enabled"?: boolean }
@@ -417,8 +429,12 @@ export type TemplateRequest = { readonly "name": string, readonly "projectsAndTa
417
429
  export const TemplateRequest = Schema.Struct({ "name": Schema.String.annotate({ "description": "Represents a template name." }).check(Schema.isMinLength(1)), "projectsAndTasks": Schema.Array(ProjectTaskTupleRequest).annotate({ "description": "Represents a list of template's projects and tasks." }), "timeEntryIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a set of template time entry ids." })).annotate({ "description": "Represents a set of template time entry ids." }).check(Schema.isUnique())), "weekStart": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date of the starting day of the week in the yyyy-MM-dd format.", "format": "date" })) })
418
430
  export type MembershipDtoV1 = { readonly "costRate"?: RateDtoV1, readonly "hourlyRate"?: HourlyRateDtoV1, readonly "membershipStatus"?: "PENDING" | "ACTIVE" | "DECLINED" | "INACTIVE" | "ALL", readonly "membershipType"?: "WORKSPACE" | "PROJECT" | "USERGROUP", readonly "targetId"?: string, readonly "userId"?: string }
419
431
  export const MembershipDtoV1 = Schema.Struct({ "costRate": Schema.optionalKey(RateDtoV1), "hourlyRate": Schema.optionalKey(HourlyRateDtoV1), "membershipStatus": Schema.optionalKey(Schema.Literals(["PENDING", "ACTIVE", "DECLINED", "INACTIVE", "ALL"]).annotate({ "description": "Represents a membership status enum." })), "membershipType": Schema.optionalKey(Schema.Literals(["WORKSPACE", "PROJECT", "USERGROUP"]).annotate({ "description": "Represents membership type enum." })), "targetId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents target identifier across the system." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })) }).annotate({ "description": "Represents a list of membership objects." })
420
- export type AssignmentDtoV1 = { readonly "billable"?: boolean, readonly "excludeDays"?: ReadonlyArray<SchedulingExcludeDay>, readonly "hoursPerDay"?: number, readonly "id"?: string, readonly "includeNonWorkingDays"?: boolean, readonly "note"?: string, readonly "period"?: DateRangeDto, readonly "projectId"?: string, readonly "published"?: boolean, readonly "recurring"?: RecurringAssignmentDto, readonly "startTime"?: string, readonly "taskId"?: string, readonly "userId"?: string, readonly "workspaceId"?: string }
421
- export const AssignmentDtoV1 = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is billable or not." })), "excludeDays": Schema.optionalKey(Schema.Array(SchedulingExcludeDay).annotate({ "description": "Represents a list of excluded days objects" }).check(Schema.isUnique())), "hoursPerDay": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents assignment total hours per day.", "format": "double" }).check(Schema.isFinite())), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents assignment identifier across the system." })), "includeNonWorkingDays": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment should include non-working days or not." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents assignment note." })), "period": Schema.optionalKey(DateRangeDto), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "published": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is published or not." })), "recurring": Schema.optionalKey(RecurringAssignmentDto), "startTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents start time in hh:mm:ss format." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task identifier across the system." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
432
+ export type CreateRecurringAssignmentRequestV1 = { readonly "frequency"?: RecurringFrequency, readonly "interval"?: number, readonly "monthlyRecurringType"?: MonthlyRecurringType, readonly "occurrences"?: number, readonly "recurringEndType"?: RecurringEndType, readonly "repeat"?: boolean, readonly "until"?: string, readonly "weeks"?: number }
433
+ export const CreateRecurringAssignmentRequestV1 = Schema.Struct({ "frequency": Schema.optionalKey(RecurringFrequency), "interval": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents interval for recurring (1 - every week/month, 2 - biweekly).", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(2))), "monthlyRecurringType": Schema.optionalKey(MonthlyRecurringType), "occurrences": Schema.optionalKey(Schema.Number.annotate({ "description": "Indicates number of occurrences for assignment.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(99))), "recurringEndType": Schema.optionalKey(RecurringEndType), "repeat": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the assignment is recurring. This field is deprecated in favor of a more flexible recurrence model. To define recurrence, use the following fields instead: `frequency`, `interval`, `monthlyRecurringType`, `recurringEndType`, `until`, and `occurrences`." })), "until": Schema.optionalKey(Schema.String.annotate({ "description": "Date by which recurring assignments will be created", "format": "date-time" })), "weeks": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents number of weeks for this assignment. This field is deprecated in favor of a more flexible recurrence model. To define recurrence, use the following fields instead: `frequency`, `interval`, `monthlyRecurringType`, `recurringEndType`, `until`, and `occurrences`.", "format": "int32" }).check(Schema.isInt())) })
434
+ export type RecurringAssignmentDtoV1 = { readonly "frequency": RecurringFrequency, readonly "interval"?: number, readonly "monthlyRecurringType"?: MonthlyRecurringType, readonly "occurrences"?: number, readonly "repeat"?: boolean, readonly "seriesId"?: string, readonly "until"?: string, readonly "weeks"?: number }
435
+ export const RecurringAssignmentDtoV1 = Schema.Struct({ "frequency": RecurringFrequency, "interval": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents interval for recurring (1 - every week/month, 2 - biweekly).", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(2))), "monthlyRecurringType": Schema.optionalKey(MonthlyRecurringType), "occurrences": Schema.optionalKey(Schema.Number.annotate({ "description": "Number of occurrences", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(99))), "repeat": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the assignment is recurring. This field is deprecated in favor of a more flexible recurrence model. To define recurrence, use the following fields instead: `frequency`, `interval`, `monthlyRecurringType`, `until`, and `occurrences`." })), "seriesId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents series identifier." })), "until": Schema.optionalKey(Schema.String.annotate({ "description": "Date by which recurring assignments will be created", "format": "date-time" })), "weeks": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents number of weeks for this assignment. This field is deprecated in favor of a more flexible recurrence model. To define recurrence, use the following fields instead: `frequency`, `interval`, `monthlyRecurringType`, `until`, and `occurrences`.", "format": "int32" }).check(Schema.isInt())) }).annotate({ "description": "Represents recurring assignment object." })
436
+ export type RecurringAssignmentRequestV1 = { readonly "frequency"?: RecurringFrequency, readonly "interval"?: number, readonly "monthlyRecurringType"?: MonthlyRecurringType, readonly "occurrences"?: number, readonly "recurringEndType"?: RecurringEndType, readonly "repeat"?: boolean, readonly "until"?: string, readonly "weeks"?: number }
437
+ export const RecurringAssignmentRequestV1 = Schema.Struct({ "frequency": Schema.optionalKey(RecurringFrequency), "interval": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents interval for recurring (1 - every week/month, 2 - biweekly).", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(2))), "monthlyRecurringType": Schema.optionalKey(MonthlyRecurringType), "occurrences": Schema.optionalKey(Schema.Number.annotate({ "description": "Indicates number of occurrences for assignment.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(99))), "recurringEndType": Schema.optionalKey(RecurringEndType), "repeat": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the assignment is recurring. This field is deprecated in favor of a more flexible recurrence model. To define recurrence, use the following fields instead: `frequency`, `interval`, `monthlyRecurringType`, `recurringEndType`, `until`, and `occurrences`." })), "until": Schema.optionalKey(Schema.String.annotate({ "description": "Date by which recurring assignments will be created", "format": "date-time" })), "weeks": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents number of weeks for this assignment. This field is deprecated in favor of a more flexible recurrence model. To define recurrence, use the following fields instead: `frequency`, `interval`, `monthlyRecurringType`, `recurringEndType`, `until`, and `occurrences`.", "format": "int32" }).check(Schema.isInt())) })
422
438
  export type UserSettingsDtoV1 = { readonly "alerts"?: boolean, readonly "approval"?: boolean, readonly "collapseAllProjectLists"?: boolean, readonly "dashboardPinToTop"?: boolean, readonly "dashboardSelection"?: "ME" | "TEAM", readonly "dashboardViewType"?: "PROJECT" | "BILLABILITY", readonly "dateFormat": string, readonly "groupSimilarEntriesDisabled"?: boolean, readonly "invoiceReminders"?: boolean, readonly "isCompactViewOn"?: boolean, readonly "lang"?: string, readonly "longRunning"?: boolean, readonly "multiFactorEnabled"?: boolean, readonly "myStartOfDay"?: string, readonly "onboarding"?: boolean, readonly "projectListCollapse"?: number, readonly "projectPickerTaskFilter"?: boolean, readonly "pto"?: boolean, readonly "reminders"?: boolean, readonly "scheduledReports"?: boolean, readonly "scheduling"?: boolean, readonly "sendNewsletter"?: boolean, readonly "showOnlyWorkingDays"?: boolean, readonly "summaryReportSettings"?: SummaryReportSettingsDtoV1, readonly "theme"?: "DARK" | "DEFAULT", readonly "timeFormat": "HOUR12" | "HOUR24", readonly "timeTrackingManual"?: boolean, readonly "timeZone": string, readonly "weekStart"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "weeklyUpdates"?: boolean }
423
439
  export const UserSettingsDtoV1 = Schema.Struct({ "alerts": Schema.optionalKey(Schema.Boolean), "approval": Schema.optionalKey(Schema.Boolean), "collapseAllProjectLists": Schema.optionalKey(Schema.Boolean), "dashboardPinToTop": Schema.optionalKey(Schema.Boolean), "dashboardSelection": Schema.optionalKey(Schema.Literals(["ME", "TEAM"])), "dashboardViewType": Schema.optionalKey(Schema.Literals(["PROJECT", "BILLABILITY"])), "dateFormat": Schema.String.annotate({ "description": "Represents a date format." }).check(Schema.isMinLength(1)), "groupSimilarEntriesDisabled": Schema.optionalKey(Schema.Boolean), "invoiceReminders": Schema.optionalKey(Schema.Boolean), "isCompactViewOn": Schema.optionalKey(Schema.Boolean), "lang": Schema.optionalKey(Schema.String), "longRunning": Schema.optionalKey(Schema.Boolean), "multiFactorEnabled": Schema.optionalKey(Schema.Boolean), "myStartOfDay": Schema.optionalKey(Schema.String), "onboarding": Schema.optionalKey(Schema.Boolean), "projectListCollapse": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())), "projectPickerTaskFilter": Schema.optionalKey(Schema.Boolean), "pto": Schema.optionalKey(Schema.Boolean), "reminders": Schema.optionalKey(Schema.Boolean), "scheduledReports": Schema.optionalKey(Schema.Boolean), "scheduling": Schema.optionalKey(Schema.Boolean), "sendNewsletter": Schema.optionalKey(Schema.Boolean), "showOnlyWorkingDays": Schema.optionalKey(Schema.Boolean), "summaryReportSettings": Schema.optionalKey(SummaryReportSettingsDtoV1), "theme": Schema.optionalKey(Schema.Literals(["DARK", "DEFAULT"])), "timeFormat": Schema.Literals(["HOUR12", "HOUR24"]).annotate({ "description": "Represents a time format enum." }), "timeTrackingManual": Schema.optionalKey(Schema.Boolean), "timeZone": Schema.String.annotate({ "description": "Represents a valid timezone ID" }).check(Schema.isMinLength(1)), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a day of the week." })), "weeklyUpdates": Schema.optionalKey(Schema.Boolean) }).annotate({ "description": "Represents user settings object." })
424
440
  export type ExpenseHydratedDto = { readonly "approvalRequestId"?: string, readonly "approvalStatus"?: "PENDING" | "APPROVED" | "UNSUBMITTED" | "REJECTED" | "WITHDRAWN_APPROVAL" | "WITHDRAWN_SUBMISSION", readonly "billable"?: boolean, readonly "category"?: ExpenseCategoryDto, readonly "currency"?: string, readonly "date"?: string, readonly "detailedApprovalStatus"?: "PENDING" | "APPROVED" | "UNSUBMITTED" | "REJECTED" | "WITHDRAWN_APPROVAL" | "WITHDRAWN_SUBMISSION", readonly "fileId"?: string, readonly "fileName"?: string, readonly "fileUrl"?: string, readonly "id"?: string, readonly "isLocked"?: boolean, readonly "locked"?: boolean, readonly "notes"?: string, readonly "project"?: ProjectInfoDto, readonly "quantity"?: number, readonly "task"?: TaskInfoDto, readonly "total"?: number, readonly "userId"?: string, readonly "workspaceId"?: string }
@@ -448,7 +464,7 @@ export const InvoiceFilterRequestV1 = Schema.Struct({ "clients": Schema.optional
448
464
  export type SchedulingUsersTotalsDtoV1 = { readonly "capacityPerDay"?: number, readonly "totalHoursPerDay"?: ReadonlyArray<TotalsPerDayDto>, readonly "userId"?: string, readonly "userImage"?: string, readonly "userName"?: string, readonly "userStatus"?: string, readonly "workingDays"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "workspaceId"?: string }
449
465
  export const SchedulingUsersTotalsDtoV1 = Schema.Struct({ "capacityPerDay": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents capacity per day in seconds. For a 7hr work day, value is 25200.", "format": "double" }).check(Schema.isFinite())), "totalHoursPerDay": Schema.optionalKey(Schema.Array(TotalsPerDayDto).annotate({ "description": "Represents total hours per day object." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "userImage": Schema.optionalKey(Schema.String.annotate({ "description": "Represents url path to user image." })), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user name." })), "userStatus": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user status." })), "workingDays": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents list of days of the week." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
450
466
  export type CreateTimeEntryRequest = { readonly "billable"?: boolean, readonly "customAttributes"?: ReadonlyArray<CreateCustomAttributeRequest>, readonly "customFields"?: ReadonlyArray<UpdateCustomFieldRequest>, readonly "description": string, readonly "end"?: string, readonly "projectId"?: string, readonly "start": string, readonly "tagIds"?: ReadonlyArray<string>, readonly "taskId"?: string, readonly "type"?: "REGULAR" | "BREAK" }
451
- export const CreateTimeEntryRequest = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether a time entry is billable or not." })), "customAttributes": Schema.optionalKey(Schema.Array(CreateCustomAttributeRequest).annotate({ "description": "Represents a list of create custom field request objects." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(10))), "customFields": Schema.optionalKey(Schema.Array(UpdateCustomFieldRequest).annotate({ "description": "Represents a list of value objects for user’s custom fields." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(50))), "description": Schema.String.annotate({ "description": "Represents time entry description." }).check(Schema.isMaxLength(3000)), "end": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an end date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project identifier across the system." })), "start": Schema.String.annotate({ "description": "Represents a start date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }), "tagIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of tag ids." })).annotate({ "description": "Represents a list of tag ids." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task identifier across the system." })), "type": Schema.optionalKey(Schema.Literals(["REGULAR", "BREAK"]).annotate({ "description": "Valid time entry type." })) })
467
+ export const CreateTimeEntryRequest = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether a time entry is billable or not." })), "customAttributes": Schema.optionalKey(Schema.Array(CreateCustomAttributeRequest).annotate({ "description": "Represents a list of create custom field request objects." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(10))), "customFields": Schema.optionalKey(Schema.Array(UpdateCustomFieldRequest).annotate({ "description": "Represents a list of values for time entry custom fields defined in the workspace settings." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(50))), "description": Schema.String.annotate({ "description": "Represents time entry description." }).check(Schema.isMaxLength(3000)), "end": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an end date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project identifier across the system." })), "start": Schema.String.annotate({ "description": "Represents a start date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }), "tagIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of tag ids." })).annotate({ "description": "Represents a list of tag ids." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task identifier across the system." })), "type": Schema.optionalKey(Schema.Literals(["REGULAR", "BREAK"]).annotate({ "description": "Valid time entry type." })) })
452
468
  export type UpdateTimeEntryBulkRequest = { readonly "billable"?: boolean, readonly "customFields"?: ReadonlyArray<UpdateCustomFieldRequest>, readonly "description"?: string, readonly "end"?: string, readonly "id": string, readonly "projectId"?: string, readonly "start"?: string, readonly "tagIds"?: ReadonlyArray<string>, readonly "taskId"?: string, readonly "type"?: "REGULAR" | "BREAK" }
453
469
  export const UpdateTimeEntryBulkRequest = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether a time entry is billable or not." })), "customFields": Schema.optionalKey(Schema.Array(UpdateCustomFieldRequest).check(Schema.isMinLength(0)).check(Schema.isMaxLength(50))), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time entry description." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3000))), "end": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "id": Schema.String.annotate({ "description": "Represents a time entry identifier across the system." }).check(Schema.isMinLength(1)), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project identifier across the system." })), "start": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "tagIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of tag ids." })).annotate({ "description": "Represents a list of tag ids." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task identifier across the system." })), "type": Schema.optionalKey(Schema.Literals(["REGULAR", "BREAK"])) })
454
470
  export type UpdateTimeEntryRequest = { readonly "billable"?: boolean, readonly "customFields"?: ReadonlyArray<UpdateCustomFieldRequest>, readonly "description"?: string, readonly "end"?: string, readonly "projectId"?: string, readonly "start": string, readonly "tagIds"?: ReadonlyArray<string>, readonly "taskId"?: string, readonly "type"?: "REGULAR" | "BREAK" }
@@ -491,16 +507,16 @@ export type UserCustomFieldValueFullDtoV1 = { readonly "customField"?: CustomFie
491
507
  export const UserCustomFieldValueFullDtoV1 = Schema.Struct({ "customField": Schema.optionalKey(CustomFieldDtoV1), "customFieldId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user custom field name." })), "sourceType": Schema.optionalKey(Schema.Literals(["WORKSPACE", "USER"]).annotate({ "description": "Represents user custom field source type." })), "type": Schema.optionalKey(Schema.Literals(["TXT", "NUMBER", "DROPDOWN_SINGLE", "DROPDOWN_MULTIPLE", "CHECKBOX", "LINK"]).annotate({ "description": "Represents custom field type." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "value": Schema.optionalKey(Schema.Struct({ }).annotate({ "description": "Represents user custom field value." })) }).annotate({ "description": "Represents a list of value objects for user’s custom fields." })
492
508
  export type HolidayDto = { readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationDto, readonly "color"?: string, readonly "datePeriod"?: DatePeriod, readonly "everyoneIncludingNew"?: boolean, readonly "id"?: string, readonly "name"?: string, readonly "occursAnnually"?: boolean, readonly "userGroupIds"?: ReadonlyArray<string>, readonly "userGroups"?: ReadonlyArray<EntityIdNameDto>, readonly "userIds"?: ReadonlyArray<string>, readonly "users"?: ReadonlyArray<EntityIdNameDto>, readonly "workspaceId"?: string }
493
509
  export const HolidayDto = Schema.Struct({ "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationDto), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Provide color in format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." })), "datePeriod": Schema.optionalKey(DatePeriod), "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday is shown to new users." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents holiday identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the name of the holiday." })), "occursAnnually": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday occurs annually." })), "userGroupIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Indicates which user groups are included." })).annotate({ "description": "Indicates which user groups are included." }).check(Schema.isUnique())), "userGroups": Schema.optionalKey(Schema.Array(EntityIdNameDto).annotate({ "description": "Contains names of user groups that are assigned to holiday." })), "userIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Indicates which users are included." })).annotate({ "description": "Indicates which users are included." }).check(Schema.isUnique())), "users": Schema.optionalKey(Schema.Array(EntityIdNameDto).annotate({ "description": "Contains names of users that are assigned to holiday." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
494
- export type PolicyDtoV1 = { readonly "allowHalfDay"?: boolean, readonly "allowNegativeBalance"?: boolean, readonly "approve"?: PolicyApprovalDto, readonly "archived"?: boolean, readonly "automaticAccrual"?: AutomaticAccrualDto, readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationDto, readonly "everyoneIncludingNew"?: boolean, readonly "id"?: string, readonly "name"?: string, readonly "negativeBalance"?: NegativeBalanceDto, readonly "projectId"?: string, readonly "timeUnit"?: "DAYS" | "HOURS", readonly "userGroupIds"?: ReadonlyArray<string>, readonly "userIds"?: ReadonlyArray<string>, readonly "workspaceId"?: string }
495
- export const PolicyDtoV1 = Schema.Struct({ "allowHalfDay": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the half day is allowed." })), "allowNegativeBalance": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the negative balance is allowed." })), "approve": Schema.optionalKey(PolicyApprovalDto), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy is archived." })), "automaticAccrual": Schema.optionalKey(AutomaticAccrualDto), "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationDto), "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy is applied to future new users." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents policy identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the name of the policy." })), "negativeBalance": Schema.optionalKey(NegativeBalanceDto), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "timeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Represents the time unit of the policy." })), "userGroupIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents user groups' identifiers across the system. Indicates which user groups are included in the policy." })).annotate({ "description": "Represents user groups' identifiers across the system. Indicates which user groups are included in the policy." }).check(Schema.isUnique())), "userIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents users' identifiers across the system. Indicates which users are included in the policy." })).annotate({ "description": "Represents users' identifiers across the system. Indicates which users are included in the policy." }).check(Schema.isUnique())), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
510
+ export type PolicyDtoV1 = { readonly "allowHalfDay"?: boolean, readonly "allowNegativeBalance"?: boolean, readonly "approve"?: PolicyApprovalDto, readonly "archived"?: boolean, readonly "automaticAccrual"?: AutomaticAccrualDto, readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationDto, readonly "color"?: string, readonly "everyoneIncludingNew"?: boolean, readonly "icon"?: "UMBRELLA" | "SNOWFLAKE" | "FAMILY" | "PLANE" | "STETHOSCOPE" | "HEALTH_METRICS" | "CHILDCARE" | "LUGGAGE" | "MONETIZATION" | "CALENDAR", readonly "id"?: string, readonly "name"?: string, readonly "negativeBalance"?: NegativeBalanceDto, readonly "projectId"?: string, readonly "timeUnit"?: "DAYS" | "HOURS", readonly "userGroupIds"?: ReadonlyArray<string>, readonly "userIds"?: ReadonlyArray<string>, readonly "workspaceId"?: string }
511
+ export const PolicyDtoV1 = Schema.Struct({ "allowHalfDay": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the half day is allowed." })), "allowNegativeBalance": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the negative balance is allowed." })), "approve": Schema.optionalKey(PolicyApprovalDto), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy is archived." })), "automaticAccrual": Schema.optionalKey(AutomaticAccrualDto), "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationDto), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the color assigned to the policy." })), "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy is applied to future new users." })), "icon": Schema.optionalKey(Schema.Literals(["UMBRELLA", "SNOWFLAKE", "FAMILY", "PLANE", "STETHOSCOPE", "HEALTH_METRICS", "CHILDCARE", "LUGGAGE", "MONETIZATION", "CALENDAR"]).annotate({ "description": "Represents the icon assigned to the policy." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents policy identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the name of the policy." })), "negativeBalance": Schema.optionalKey(NegativeBalanceDto), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "timeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Represents the time unit of the policy." })), "userGroupIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents user groups' identifiers across the system. Indicates which user groups are included in the policy." })).annotate({ "description": "Represents user groups' identifiers across the system. Indicates which user groups are included in the policy." }).check(Schema.isUnique())), "userIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents users' identifiers across the system. Indicates which users are included in the policy." })).annotate({ "description": "Represents users' identifiers across the system. Indicates which users are included in the policy." }).check(Schema.isUnique())), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
496
512
  export type CreateHolidayRequestV1 = { readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationRequest, readonly "color"?: string, readonly "datePeriod": DatePeriodRequest, readonly "everyoneIncludingNew"?: boolean, readonly "name": string, readonly "occursAnnually"?: boolean, readonly "userGroups"?: UserGroupIdsSchema, readonly "users"?: UserIdsSchema }
497
513
  export const CreateHolidayRequestV1 = Schema.Struct({ "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationRequest), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Provide color in format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." }).check(Schema.isPattern(new RegExp("^#(?:[0-9a-fA-F]{6}){1}$")))), "datePeriod": DatePeriodRequest, "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday is shown to new users." })), "name": Schema.String.annotate({ "description": "Provide the name of the holiday." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(100)), "occursAnnually": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday occurs annually." })), "userGroups": Schema.optionalKey(UserGroupIdsSchema), "users": Schema.optionalKey(UserIdsSchema) })
498
514
  export type CreatePolicyRequestV1 = { readonly "allowHalfDay"?: boolean, readonly "allowNegativeBalance"?: boolean, readonly "approve": PolicyApprovalDto, readonly "archived"?: boolean, readonly "automaticAccrual"?: AutomaticAccrualRequest, readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationRequest, readonly "color"?: string, readonly "everyoneIncludingNew"?: boolean, readonly "hasExpiration"?: boolean, readonly "icon"?: "UMBRELLA" | "SNOWFLAKE" | "FAMILY" | "PLANE" | "STETHOSCOPE" | "HEALTH_METRICS" | "CHILDCARE" | "LUGGAGE" | "MONETIZATION" | "CALENDAR", readonly "name": string, readonly "negativeBalance"?: NegativeBalanceRequest, readonly "timeUnit"?: "DAYS" | "HOURS", readonly "userGroups"?: UserGroupIdsSchema, readonly "users"?: UserIdsSchema }
499
515
  export const CreatePolicyRequestV1 = Schema.Struct({ "allowHalfDay": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether policy allows half days." })), "allowNegativeBalance": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether policy allows negative balances." })), "approve": PolicyApprovalDto, "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether policy is archived." })), "automaticAccrual": Schema.optionalKey(AutomaticAccrualRequest), "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationRequest), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Provide color in format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." }).check(Schema.isPattern(new RegExp("^#(?:[0-9a-fA-F]{6}){1}$")))), "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy is to be applied to future new users." })), "hasExpiration": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy balance should have expiration" })), "icon": Schema.optionalKey(Schema.Literals(["UMBRELLA", "SNOWFLAKE", "FAMILY", "PLANE", "STETHOSCOPE", "HEALTH_METRICS", "CHILDCARE", "LUGGAGE", "MONETIZATION", "CALENDAR"]).annotate({ "description": "Provide icon." })), "name": Schema.String.annotate({ "description": "Represents a name of new policy." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(100)), "negativeBalance": Schema.optionalKey(NegativeBalanceRequest), "timeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Indicates time unit of the policy. " })), "userGroups": Schema.optionalKey(UserGroupIdsSchema), "users": Schema.optionalKey(UserIdsSchema) })
500
516
  export type UpdateHolidayRequestV1 = { readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationRequest, readonly "color"?: string, readonly "datePeriod": DatePeriodRequest, readonly "everyoneIncludingNew"?: boolean, readonly "name": string, readonly "occursAnnually": boolean, readonly "userGroups"?: ContainsUserGroupFilterRequest, readonly "users"?: ContainsUsersFilterRequestForHoliday }
501
517
  export const UpdateHolidayRequestV1 = Schema.Struct({ "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationRequest), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Provide color in format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." }).check(Schema.isPattern(new RegExp("^#(?:[0-9a-fA-F]{6}){1}$")))), "datePeriod": DatePeriodRequest, "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday is shown to new users." })), "name": Schema.String.annotate({ "description": "Provide the name you would like to use for updating the holiday." }).check(Schema.isMinLength(1)), "occursAnnually": Schema.Boolean.annotate({ "description": "Indicates whether the holiday occurs annually." }), "userGroups": Schema.optionalKey(ContainsUserGroupFilterRequest), "users": Schema.optionalKey(ContainsUsersFilterRequestForHoliday) })
502
- export type UpdatePolicyRequestV1 = { readonly "allowHalfDay": boolean, readonly "allowNegativeBalance": boolean, readonly "approve": PolicyApprovalDto, readonly "archived": boolean, readonly "automaticAccrual"?: AutomaticAccrualRequest, readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationRequest, readonly "color"?: string, readonly "everyoneIncludingNew": boolean, readonly "hasExpiration": boolean, readonly "icon"?: "UMBRELLA" | "SNOWFLAKE" | "FAMILY" | "PLANE" | "STETHOSCOPE" | "HEALTH_METRICS" | "CHILDCARE" | "LUGGAGE" | "MONETIZATION" | "CALENDAR", readonly "name": string, readonly "negativeBalance"?: NegativeBalanceRequest, readonly "userGroups": UserGroupIdsSchema, readonly "users": UserIdsSchema }
503
- export const UpdatePolicyRequestV1 = Schema.Struct({ "allowHalfDay": Schema.Boolean.annotate({ "description": "Indicates whether policy allows half day." }), "allowNegativeBalance": Schema.Boolean.annotate({ "description": "Indicates whether policy allows negative balance." }), "approve": PolicyApprovalDto, "archived": Schema.Boolean.annotate({ "description": "Indicates whether policy is archived." }), "automaticAccrual": Schema.optionalKey(AutomaticAccrualRequest), "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationRequest), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Provide color in format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." }).check(Schema.isPattern(new RegExp("^#(?:[0-9a-fA-F]{6}){1}$")))), "everyoneIncludingNew": Schema.Boolean.annotate({ "description": "Indicates whether the policy is shown to new users." }), "hasExpiration": Schema.Boolean.annotate({ "description": "Indicates whether the policy has expiration." }), "icon": Schema.optionalKey(Schema.Literals(["UMBRELLA", "SNOWFLAKE", "FAMILY", "PLANE", "STETHOSCOPE", "HEALTH_METRICS", "CHILDCARE", "LUGGAGE", "MONETIZATION", "CALENDAR"]).annotate({ "description": "Provide icon." })), "name": Schema.String.annotate({ "description": "Provide the name you would like to use for updating the policy." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(100)), "negativeBalance": Schema.optionalKey(NegativeBalanceRequest), "userGroups": UserGroupIdsSchema, "users": UserIdsSchema })
518
+ export type UpdatePolicyRequestV1 = { readonly "allowHalfDay": boolean, readonly "allowNegativeBalance": boolean, readonly "approve": PolicyApprovalDto, readonly "archived": boolean, readonly "automaticAccrual"?: AutomaticAccrualRequest, readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationRequest, readonly "color"?: string, readonly "everyoneIncludingNew": boolean, readonly "hasExpiration": boolean, readonly "icon"?: "UMBRELLA" | "SNOWFLAKE" | "FAMILY" | "PLANE" | "STETHOSCOPE" | "HEALTH_METRICS" | "CHILDCARE" | "LUGGAGE" | "MONETIZATION" | "CALENDAR", readonly "name": string, readonly "negativeBalance"?: NegativeBalanceRequest, readonly "userGroups"?: UserGroupIdsSchema, readonly "users"?: UserIdsSchema }
519
+ export const UpdatePolicyRequestV1 = Schema.Struct({ "allowHalfDay": Schema.Boolean.annotate({ "description": "Indicates whether policy allows half day." }), "allowNegativeBalance": Schema.Boolean.annotate({ "description": "Indicates whether policy allows negative balance." }), "approve": PolicyApprovalDto, "archived": Schema.Boolean.annotate({ "description": "Indicates whether policy is archived." }), "automaticAccrual": Schema.optionalKey(AutomaticAccrualRequest), "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationRequest), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Provide color in format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." }).check(Schema.isPattern(new RegExp("^#(?:[0-9a-fA-F]{6}){1}$")))), "everyoneIncludingNew": Schema.Boolean.annotate({ "description": "Indicates whether the policy is shown to new users." }), "hasExpiration": Schema.Boolean.annotate({ "description": "Indicates whether the policy has expiration." }), "icon": Schema.optionalKey(Schema.Literals(["UMBRELLA", "SNOWFLAKE", "FAMILY", "PLANE", "STETHOSCOPE", "HEALTH_METRICS", "CHILDCARE", "LUGGAGE", "MONETIZATION", "CALENDAR"]).annotate({ "description": "Provide icon." })), "name": Schema.String.annotate({ "description": "Provide the name you would like to use for updating the policy." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(100)), "negativeBalance": Schema.optionalKey(NegativeBalanceRequest), "userGroups": Schema.optionalKey(UserGroupIdsSchema), "users": Schema.optionalKey(UserIdsSchema) })
504
520
  export type WorkspaceSettingsDtoV1 = { readonly "activeBillableHours"?: boolean, readonly "adminOnlyPages"?: "PROJECT" | "TEAM" | "REPORTS", readonly "automaticLock"?: AutomaticLockDtoV1, readonly "canSeeTimeSheet"?: boolean, readonly "canSeeTracker"?: boolean, readonly "currencyFormat"?: "CURRENCY_SPACE_VALUE" | "VALUE_SPACE_CURRENCY" | "CURRENCY_VALUE" | "VALUE_CURRENCY", readonly "defaultBillableProjects"?: boolean, readonly "durationFormat"?: "FULL" | "COMPACT" | "DECIMAL", readonly "entityCreationPermissions"?: EntityCreationPermissionsDtoV1, readonly "forceDescription"?: boolean, readonly "forceProjects"?: boolean, readonly "forceTags"?: boolean, readonly "forceTasks"?: boolean, readonly "isProjectPublicByDefault"?: boolean, readonly "lockTimeEntries"?: string, readonly "lockTimeZone"?: string, readonly "multiFactorEnabled"?: boolean, readonly "numberFormat"?: "COMMA_PERIOD" | "PERIOD_COMMA" | "QUOTATION_MARK_PERIOD" | "SPACE_COMMA", readonly "onlyAdminsCanChangeBillableStatus"?: boolean, readonly "onlyAdminsCreateProject"?: boolean, readonly "onlyAdminsCreateTag"?: boolean, readonly "onlyAdminsCreateTask"?: boolean, readonly "onlyAdminsSeeAllTimeEntries"?: boolean, readonly "onlyAdminsSeeBillableRates"?: boolean, readonly "onlyAdminsSeeDashboard"?: boolean, readonly "onlyAdminsSeePublicProjectsEntries"?: boolean, readonly "projectFavorites"?: boolean, readonly "projectGroupingLabel"?: string, readonly "projectLabel"?: string, readonly "projectPickerSpecialFilter"?: boolean, readonly "round"?: RoundDto, readonly "taskLabel"?: string, readonly "timeRoundingInReports"?: boolean, readonly "timeTrackingMode"?: "DEFAULT" | "STOPWATCH_ONLY", readonly "trackTimeDownToSecond"?: boolean, readonly "workingDays"?: ReadonlyArray<"MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY"> }
505
521
  export const WorkspaceSettingsDtoV1 = Schema.Struct({ "activeBillableHours": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether billable hours is active." })), "adminOnlyPages": Schema.optionalKey(Schema.Literals(["PROJECT", "TEAM", "REPORTS"]).annotate({ "description": "Represents a unique list of protected page enums." })), "automaticLock": Schema.optionalKey(AutomaticLockDtoV1), "canSeeTimeSheet": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether timesheets are visible or not." })), "canSeeTracker": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether time trackers are visible or not." })), "currencyFormat": Schema.optionalKey(Schema.Literals(["CURRENCY_SPACE_VALUE", "VALUE_SPACE_CURRENCY", "CURRENCY_VALUE", "VALUE_CURRENCY"]).annotate({ "description": "Represents a clockify currency format enum." })), "defaultBillableProjects": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether projects are billable by default." })), "durationFormat": Schema.optionalKey(Schema.Literals(["FULL", "COMPACT", "DECIMAL"]).annotate({ "description": "Represents a clockify duration format enum. Used to set Duration format instead of setting decimalFormat and trackTimeDownToSecond." })), "entityCreationPermissions": Schema.optionalKey(EntityCreationPermissionsDtoV1), "forceDescription": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether description are forced or not." })), "forceProjects": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether projects are forced or not." })), "forceTags": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether tags are forced or not." })), "forceTasks": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether tasks are forced or not." })), "isProjectPublicByDefault": Schema.optionalKey(Schema.Boolean), "lockTimeEntries": Schema.optionalKey(Schema.String), "lockTimeZone": Schema.optionalKey(Schema.String), "multiFactorEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether two-factor authentication is enabled or not." })), "numberFormat": Schema.optionalKey(Schema.Literals(["COMMA_PERIOD", "PERIOD_COMMA", "QUOTATION_MARK_PERIOD", "SPACE_COMMA"]).annotate({ "description": "Represents a clockify number format enum." })), "onlyAdminsCanChangeBillableStatus": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can change billable status." })), "onlyAdminsCreateProject": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can create projects." })), "onlyAdminsCreateTag": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can create tags." })), "onlyAdminsCreateTask": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can create task." })), "onlyAdminsSeeAllTimeEntries": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can see all time entries." })), "onlyAdminsSeeBillableRates": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can see billable rates." })), "onlyAdminsSeeDashboard": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can see dashboard." })), "onlyAdminsSeePublicProjectsEntries": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can see public project entries." })), "projectFavorites": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project favorites are allowed." })), "projectGroupingLabel": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project grouping label." })), "projectLabel": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project label." })), "projectPickerSpecialFilter": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project picker special filter is enabled." })), "round": Schema.optionalKey(RoundDto), "taskLabel": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task label." })), "timeRoundingInReports": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether time rounding is enabled in reports." })), "timeTrackingMode": Schema.optionalKey(Schema.Literals(["DEFAULT", "STOPWATCH_ONLY"]).annotate({ "description": "Represents a time tracking mode enum." })), "trackTimeDownToSecond": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether time tracking is seconds-accurate. This is now deprecated and durationFormat can now be used to manage Time Duration Format." })), "workingDays": Schema.optionalKey(Schema.Array(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a list of working days." })).annotate({ "description": "Represents a list of working days." }).check(Schema.isUnique())) }).annotate({ "description": "Workspace settings also include Time Duration Format settings.\n\nSetting Time Duration Format by changing the boolean fields\ndecimalFormat and trackTimeDownToSecond is now deprecated.\n\nTime Duration Format can be set by durationFormat enum field.\n\nThree different Time Duration modes will still map the boolean fields:\n\n 1. Full (hh:mm:ss) -> decimalFormat = false, trackTimeDownToSecond = true,\n\n 2. Compact (h:mm) -> decimalFormat = false, trackTimeDownToSecond = false,\n\n 3. Decimal (h:hh) -> decimalFormat = true, trackTimeDownToSecond = true\n\n" })
506
522
  export type ProjectRequest = { readonly "billable"?: boolean, readonly "clientId"?: string, readonly "color"?: string, readonly "costRate"?: CostRateRequestV1, readonly "estimate"?: EstimateRequest, readonly "hourlyRate"?: HourlyRateRequestV1, readonly "isPublic"?: boolean, readonly "memberships"?: ReadonlyArray<MembershipRequest>, readonly "name": string, readonly "note"?: string, readonly "tasks"?: ReadonlyArray<TaskRequest> }
@@ -517,6 +533,10 @@ export type ProjectDtoImplV1 = { readonly "archived"?: boolean, readonly "billab
517
533
  export const ProjectDtoImplV1 = Schema.Struct({ "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is archived or not." })), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is billable or not." })), "budgetEstimate": Schema.optionalKey(EstimateWithOptionsDto), "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client identifier across the system." })), "clientName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client name." })), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Color format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." })), "costRate": Schema.optionalKey(RateDtoV1), "duration": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project duration in milliseconds." })), "estimate": Schema.optionalKey(EstimateDtoV1), "estimateReset": Schema.optionalKey(EstimateResetDto), "hourlyRate": Schema.optionalKey(RateDtoV1), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "isPublic": Schema.optionalKey(Schema.Boolean.annotate({ "writeOnly": true })), "isTemplate": Schema.optionalKey(Schema.Boolean.annotate({ "writeOnly": true })), "memberships": Schema.optionalKey(Schema.Array(MembershipDtoV1).annotate({ "description": "Represents a list of membership objects." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project name." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project note." })), "public": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is public or not." })), "template": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is a template or not." })), "timeEstimate": Schema.optionalKey(TimeEstimateDto), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
518
534
  export type ProjectDtoV1 = { readonly "archived": boolean, readonly "billable": boolean, readonly "budgetEstimate"?: EstimateWithOptionsDto, readonly "color": string, readonly "costRate"?: RateDtoV1, readonly "duration"?: string, readonly "estimate"?: EstimateDtoV1, readonly "hourlyRate"?: RateDtoV1, readonly "id": string, readonly "memberships"?: ReadonlyArray<MembershipDtoV1>, readonly "name": string, readonly "note"?: string, readonly "public"?: boolean, readonly "template"?: boolean, readonly "timeEstimate"?: TimeEstimateDto, readonly "workspaceId": string }
519
535
  export const ProjectDtoV1 = Schema.Struct({ "archived": Schema.Boolean.annotate({ "description": "Indicates whether project is archived or not." }), "billable": Schema.Boolean.annotate({ "description": "Indicates whether project is billable or not." }), "budgetEstimate": Schema.optionalKey(EstimateWithOptionsDto), "color": Schema.String.annotate({ "description": "Color format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." }), "costRate": Schema.optionalKey(RateDtoV1), "duration": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project duration in milliseconds." })), "estimate": Schema.optionalKey(EstimateDtoV1), "hourlyRate": Schema.optionalKey(RateDtoV1), "id": Schema.String.annotate({ "description": "Represents project identifier across the system." }), "memberships": Schema.optionalKey(Schema.Array(MembershipDtoV1).annotate({ "description": "Represents a list of membership objects." })), "name": Schema.String, "note": Schema.optionalKey(Schema.String), "public": Schema.optionalKey(Schema.Boolean), "template": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is a template or not." })), "timeEstimate": Schema.optionalKey(TimeEstimateDto), "workspaceId": Schema.String })
536
+ export type AssignmentCreateRequestV1 = { readonly "billable"?: boolean, readonly "end": string, readonly "hoursPerDay": number, readonly "includeNonWorkingDays"?: boolean, readonly "note"?: string, readonly "projectId": string, readonly "recurringAssignment"?: CreateRecurringAssignmentRequestV1, readonly "start": string, readonly "startTime"?: string, readonly "taskId"?: string, readonly "userId": string }
537
+ export const AssignmentCreateRequestV1 = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is billable or not." })), "end": Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format." }), "hoursPerDay": Schema.Number.annotate({ "description": "Represents assignment total hours per day.", "format": "double" }).check(Schema.isFinite()), "includeNonWorkingDays": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to include non-working days or not." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an assignment note." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(100))), "projectId": Schema.String.annotate({ "description": "Represents a project identifier across the system." }).check(Schema.isMinLength(1)), "recurringAssignment": Schema.optionalKey(CreateRecurringAssignmentRequestV1), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }), "startTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a start time in the hh:mm:ss format." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task identifier across the system." })), "userId": Schema.String.annotate({ "description": "Represents a user identifier across the system." }).check(Schema.isMinLength(1)) })
538
+ export type AssignmentDtoV1 = { readonly "billable"?: boolean, readonly "excludeDays"?: ReadonlyArray<SchedulingExcludeDay>, readonly "hoursPerDay"?: number, readonly "id"?: string, readonly "includeNonWorkingDays"?: boolean, readonly "note"?: string, readonly "period"?: DateRangeDto, readonly "projectId"?: string, readonly "published"?: boolean, readonly "recurring"?: RecurringAssignmentDtoV1, readonly "startTime"?: string, readonly "taskId"?: string, readonly "userId"?: string, readonly "workspaceId"?: string }
539
+ export const AssignmentDtoV1 = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is billable or not." })), "excludeDays": Schema.optionalKey(Schema.Array(SchedulingExcludeDay).annotate({ "description": "Represents a list of excluded days objects" }).check(Schema.isUnique())), "hoursPerDay": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents assignment total hours per day.", "format": "double" }).check(Schema.isFinite())), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents assignment identifier across the system." })), "includeNonWorkingDays": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment should include non-working days or not." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents assignment note." })), "period": Schema.optionalKey(DateRangeDto), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "published": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is published or not." })), "recurring": Schema.optionalKey(RecurringAssignmentDtoV1), "startTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents start time in hh:mm:ss format." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task identifier across the system." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
520
540
  export type UserDtoV1 = { readonly "activeWorkspace"?: string, readonly "customFields"?: ReadonlyArray<UserCustomFieldValueDtoV1>, readonly "defaultWorkspace"?: string, readonly "email": string, readonly "id": string, readonly "memberships"?: ReadonlyArray<MembershipDtoV1>, readonly "name": string, readonly "profilePicture"?: string, readonly "settings"?: UserSettingsDtoV1, readonly "status"?: AccountStatus }
521
541
  export const UserDtoV1 = Schema.Struct({ "activeWorkspace": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user's active workspace identifier across the system." })), "customFields": Schema.optionalKey(Schema.Array(UserCustomFieldValueDtoV1).annotate({ "description": "Represents a list of value objects for user’s custom fields." })), "defaultWorkspace": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user default workspace identifier across the system." })), "email": Schema.String.annotate({ "description": "Represents email address of the user." }), "id": Schema.String.annotate({ "description": "Represents user identifier across the system." }), "memberships": Schema.optionalKey(Schema.Array(MembershipDtoV1).annotate({ "description": "Represents a list of membership objects." })), "name": Schema.String.annotate({ "description": "Represents name of the user." }), "profilePicture": Schema.optionalKey(Schema.String.annotate({ "description": "Represents profile image path of the user." })), "settings": Schema.optionalKey(UserSettingsDtoV1), "status": Schema.optionalKey(AccountStatus) })
522
542
  export type ExpensesWithCountDtoV1 = { readonly "count"?: number, readonly "expenses"?: ReadonlyArray<ExpenseHydratedDtoV1> }
@@ -577,8 +597,8 @@ export type GetWorkspaceOfUser200 = WorkspaceDtoV1
577
597
  export const GetWorkspaceOfUser200 = WorkspaceDtoV1
578
598
  export type GetAddonWebhooks200 = WebhooksDtoV1
579
599
  export const GetAddonWebhooks200 = WebhooksDtoV1
580
- export type GetApprovalRequestsParams = { readonly "status"?: "PENDING" | "APPROVED" | "WITHDRAWN_APPROVAL", readonly "sort-column"?: "ID" | "USER_ID" | "START" | "UPDATED_AT", readonly "sort-order"?: "ASCENDING" | "DESCENDING", readonly "page"?: number, readonly "page-size"?: number }
581
- export const GetApprovalRequestsParams = Schema.Struct({ "status": Schema.optionalKey(Schema.Literals(["PENDING", "APPROVED", "WITHDRAWN_APPROVAL"])), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "USER_ID", "START", "UPDATED_AT"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt())), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1))) })
600
+ export type GetApprovalRequestsParams = { readonly "status"?: "PENDING" | "APPROVED" | "WITHDRAWN_APPROVAL", readonly "sort-column"?: "ID" | "USER_ID" | "START" | "UPDATED_AT", readonly "sort-order"?: "ASCENDING" | "DESCENDING", readonly "page"?: number, readonly "page-size"?: number, readonly "types"?: ReadonlyArray<"TIMESHEET" | "EXPENSE" | "TIMESHEET_AND_EXPENSE"> }
601
+ export const GetApprovalRequestsParams = Schema.Struct({ "status": Schema.optionalKey(Schema.Literals(["PENDING", "APPROVED", "WITHDRAWN_APPROVAL"])), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "USER_ID", "START", "UPDATED_AT"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt())), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1))), "types": Schema.optionalKey(Schema.Array(Schema.Literals(["TIMESHEET", "EXPENSE", "TIMESHEET_AND_EXPENSE"])).check(Schema.isUnique())) })
582
602
  export type GetApprovalRequests200 = ReadonlyArray<ApprovalDetailsDtoV1>
583
603
  export const GetApprovalRequests200 = Schema.Array(ApprovalDetailsDtoV1)
584
604
  export type CreateApprrovalRequestRequestJson = CreateApprovalRequest
@@ -587,16 +607,24 @@ export type CreateApprrovalRequest201 = ApprovalRequestDtoV1
587
607
  export const CreateApprrovalRequest201 = ApprovalRequestDtoV1
588
608
  export type ResubmitApprovalRequestRequestJson = CreateApprovalRequest
589
609
  export const ResubmitApprovalRequestRequestJson = CreateApprovalRequest
590
- export type CreateApprovalForOtherRequestJson = CreateApprovalRequest
591
- export const CreateApprovalForOtherRequestJson = CreateApprovalRequest
592
- export type CreateApprovalForOther201 = ApprovalRequestDtoV1
593
- export const CreateApprovalForOther201 = ApprovalRequestDtoV1
610
+ export type CreateApprovalForOtherDeprecatedRequestJson = CreateApprovalRequest
611
+ export const CreateApprovalForOtherDeprecatedRequestJson = CreateApprovalRequest
612
+ export type CreateApprovalForOtherDeprecated201 = ApprovalRequestDtoV1
613
+ export const CreateApprovalForOtherDeprecated201 = ApprovalRequestDtoV1
594
614
  export type ResubmitApprovalRequestForOtherRequestJson = CreateApprovalRequest
595
615
  export const ResubmitApprovalRequestForOtherRequestJson = CreateApprovalRequest
616
+ export type CreateApprovalForOtherWithTypeRequestJson = CreateApprovalRequestNoType
617
+ export const CreateApprovalForOtherWithTypeRequestJson = CreateApprovalRequestNoType
618
+ export type CreateApprovalForOtherWithType201 = ApprovalRequestDtoV1
619
+ export const CreateApprovalForOtherWithType201 = ApprovalRequestDtoV1
596
620
  export type UpdateApprovalStatusRequestJson = UpdateApprovalRequest
597
621
  export const UpdateApprovalStatusRequestJson = UpdateApprovalRequest
598
622
  export type UpdateApprovalStatus200 = ApprovalRequestDtoV1
599
623
  export const UpdateApprovalStatus200 = ApprovalRequestDtoV1
624
+ export type CreateApprrovalRequest1RequestJson = CreateApprovalRequestNoType
625
+ export const CreateApprrovalRequest1RequestJson = CreateApprovalRequestNoType
626
+ export type CreateApprrovalRequest1201 = ApprovalRequestDtoV1
627
+ export const CreateApprrovalRequest1201 = ApprovalRequestDtoV1
600
628
  export type GetClientsParams = { readonly "name"?: string, readonly "sort-column"?: string, readonly "sort-order"?: string, readonly "page"?: number, readonly "page-size"?: number, readonly "archived"?: string }
601
629
  export const GetClientsParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Filters client results that matches with the string provided in their client name." })), "sort-column": Schema.optionalKey(Schema.String.annotate({ "description": "Column name that will be used as criteria for sorting results." })), "sort-order": Schema.optionalKey(Schema.String), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt())), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1))), "archived": Schema.optionalKey(Schema.String) })
602
630
  export type GetClients200 = ReadonlyArray<ClientWithCurrencyDtoV1>
@@ -915,6 +943,10 @@ export type CreateTimeEntryRequestJson = CreateTimeEntryRequest
915
943
  export const CreateTimeEntryRequestJson = CreateTimeEntryRequest
916
944
  export type CreateTimeEntry201 = TimeEntryDtoImplV1
917
945
  export const CreateTimeEntry201 = TimeEntryDtoImplV1
946
+ export type GetMultipleTimeEntriesRequestJson = GetTimeEntriesByIdsRequest
947
+ export const GetMultipleTimeEntriesRequestJson = GetTimeEntriesByIdsRequest
948
+ export type GetMultipleTimeEntries200 = ReadonlyArray<TimeEntryWithRatesDtoV1>
949
+ export const GetMultipleTimeEntries200 = Schema.Array(TimeEntryWithRatesDtoV1)
918
950
  export type UpdateInvoicedStatusRequestJson = UpdateInvoicedStatusRequest
919
951
  export const UpdateInvoicedStatusRequestJson = UpdateInvoicedStatusRequest
920
952
  export type GetInProgressTimeEntriesParams = { readonly "page"?: number, readonly "page-size"?: number }
@@ -927,6 +959,12 @@ export type UpdateTimeEntryRequestJson = UpdateTimeEntryRequest
927
959
  export const UpdateTimeEntryRequestJson = UpdateTimeEntryRequest
928
960
  export type UpdateTimeEntry200 = TimeEntryDtoImplV1
929
961
  export const UpdateTimeEntry200 = TimeEntryDtoImplV1
962
+ export type CreateBalanceAssignmentRequestJson = CreateBalanceAssignmentV1Request
963
+ export const CreateBalanceAssignmentRequestJson = CreateBalanceAssignmentV1Request
964
+ export type UpdateBalanceAssignmentRequestJson = UpdateBalanceAssignmentV1Request
965
+ export const UpdateBalanceAssignmentRequestJson = UpdateBalanceAssignmentV1Request
966
+ export type DeleteBalanceAssignmentRequestJson = DeleteBalanceAssignmentV1Request
967
+ export const DeleteBalanceAssignmentRequestJson = DeleteBalanceAssignmentV1Request
930
968
  export type GetBalancesForPolicyParams = { readonly "page"?: number, readonly "page-size"?: number, readonly "sort"?: "USER" | "POLICY" | "USED" | "BALANCE" | "TOTAL", readonly "sort-order"?: "ASCENDING" | "DESCENDING" }
931
969
  export const GetBalancesForPolicyParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt()).check(Schema.isLessThanOrEqualTo(1000))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(200))), "sort": Schema.optionalKey(Schema.Literals(["USER", "POLICY", "USED", "BALANCE", "TOTAL"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])) })
932
970
  export type UpdateBalanceRequestJson = UpdateBalanceRequestV1
@@ -1213,7 +1251,7 @@ export const make = (
1213
1251
  }))
1214
1252
  ),
1215
1253
  "getApprovalRequests": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/approval-requests`).pipe(
1216
- HttpClientRequest.setUrlParams({ "status": options?.params?.["status"] as any, "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any }),
1254
+ HttpClientRequest.setUrlParams({ "status": options?.params?.["status"] as any, "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "types": options?.params?.["types"] as any }),
1217
1255
  withResponse(options?.config)(HttpClientResponse.matchStatus({
1218
1256
  "2xx": decodeSuccess(GetApprovalRequests200),
1219
1257
  orElse: unexpectedStatus
@@ -1232,10 +1270,10 @@ export const make = (
1232
1270
  orElse: unexpectedStatus
1233
1271
  }))
1234
1272
  ),
1235
- "createApprovalForOther": (workspaceId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/users/${userId}`).pipe(
1273
+ "createApprovalForOtherDeprecated": (workspaceId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/users/${userId}`).pipe(
1236
1274
  HttpClientRequest.bodyJsonUnsafe(options.payload),
1237
1275
  withResponse(options.config)(HttpClientResponse.matchStatus({
1238
- "2xx": decodeSuccess(CreateApprovalForOther201),
1276
+ "2xx": decodeSuccess(CreateApprovalForOtherDeprecated201),
1239
1277
  orElse: unexpectedStatus
1240
1278
  }))
1241
1279
  ),
@@ -1244,6 +1282,13 @@ export const make = (
1244
1282
  withResponse(options.config)(HttpClientResponse.matchStatus({
1245
1283
  orElse: unexpectedStatus
1246
1284
  }))
1285
+ ),
1286
+ "createApprovalForOtherWithType": (workspaceId, userId, type, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/users/${userId}/${type}`).pipe(
1287
+ HttpClientRequest.bodyJsonUnsafe(options.payload),
1288
+ withResponse(options.config)(HttpClientResponse.matchStatus({
1289
+ "2xx": decodeSuccess(CreateApprovalForOtherWithType201),
1290
+ orElse: unexpectedStatus
1291
+ }))
1247
1292
  ),
1248
1293
  "updateApprovalStatus": (workspaceId, approvalRequestId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/approval-requests/${approvalRequestId}`).pipe(
1249
1294
  HttpClientRequest.bodyJsonUnsafe(options.payload),
@@ -1251,6 +1296,13 @@ export const make = (
1251
1296
  "2xx": decodeSuccess(UpdateApprovalStatus200),
1252
1297
  orElse: unexpectedStatus
1253
1298
  }))
1299
+ ),
1300
+ "createApprrovalRequest1": (workspaceId, type, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/${type}`).pipe(
1301
+ HttpClientRequest.bodyJsonUnsafe(options.payload),
1302
+ withResponse(options.config)(HttpClientResponse.matchStatus({
1303
+ "2xx": decodeSuccess(CreateApprrovalRequest1201),
1304
+ orElse: unexpectedStatus
1305
+ }))
1254
1306
  ),
1255
1307
  "getClients": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/clients`).pipe(
1256
1308
  HttpClientRequest.setUrlParams({ "name": options?.params?.["name"] as any, "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "archived": options?.params?.["archived"] as any }),
@@ -1892,6 +1944,13 @@ export const make = (
1892
1944
  "2xx": decodeSuccess(CreateTimeEntry201),
1893
1945
  orElse: unexpectedStatus
1894
1946
  }))
1947
+ ),
1948
+ "getMultipleTimeEntries": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/time-entries/batch`).pipe(
1949
+ HttpClientRequest.bodyJsonUnsafe(options.payload),
1950
+ withResponse(options.config)(HttpClientResponse.matchStatus({
1951
+ "2xx": decodeSuccess(GetMultipleTimeEntries200),
1952
+ orElse: unexpectedStatus
1953
+ }))
1895
1954
  ),
1896
1955
  "updateInvoicedStatus": (workspaceId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/time-entries/invoiced`).pipe(
1897
1956
  HttpClientRequest.bodyJsonUnsafe(options.payload),
@@ -1925,6 +1984,32 @@ export const make = (
1925
1984
  "204": () => Effect.void,
1926
1985
  orElse: unexpectedStatus
1927
1986
  }))
1987
+ ),
1988
+ "createBalanceAssignment": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/time-off/balance/assignment`).pipe(
1989
+ HttpClientRequest.bodyJsonUnsafe(options.payload),
1990
+ withResponse(options.config)(HttpClientResponse.matchStatus({
1991
+ "201": () => Effect.void,
1992
+ orElse: unexpectedStatus
1993
+ }))
1994
+ ),
1995
+ "getBalanceAssignmentsForUserAndPolicy": (workspaceId, userId, policyId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/time-off/balance/assignment/user/${userId}/policy/${policyId}`).pipe(
1996
+ withResponse(options?.config)(HttpClientResponse.matchStatus({
1997
+ orElse: unexpectedStatus
1998
+ }))
1999
+ ),
2000
+ "updateBalanceAssignment": (workspaceId, balanceAssignmentId, userId, policyId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/time-off/balance/assignment/${balanceAssignmentId}/user/${userId}/policy/${policyId}`).pipe(
2001
+ HttpClientRequest.bodyJsonUnsafe(options.payload),
2002
+ withResponse(options.config)(HttpClientResponse.matchStatus({
2003
+ "204": () => Effect.void,
2004
+ orElse: unexpectedStatus
2005
+ }))
2006
+ ),
2007
+ "deleteBalanceAssignment": (workspaceId, balanceAssignmentId, userId, policyId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/time-off/balance/assignment/${balanceAssignmentId}/user/${userId}/policy/${policyId}`).pipe(
2008
+ HttpClientRequest.bodyJsonUnsafe(options.payload),
2009
+ withResponse(options.config)(HttpClientResponse.matchStatus({
2010
+ "200": () => Effect.void,
2011
+ orElse: unexpectedStatus
2012
+ }))
1928
2013
  ),
1929
2014
  "getBalancesForPolicy": (workspaceId, policyId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/time-off/balance/policy/${policyId}`).pipe(
1930
2015
  HttpClientRequest.setUrlParams({ "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "sort": options?.params?.["sort"] as any, "sort-order": options?.params?.["sort-order"] as any }),
@@ -2343,18 +2428,26 @@ readonly "createApprrovalRequest": <Config extends OperationConfig>(workspaceId:
2343
2428
  */
2344
2429
  readonly "resubmitApprovalRequest": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof ResubmitApprovalRequestRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
2345
2430
  /**
2346
- * Submit an approval request for a user
2431
+ * Submit approval request for user
2347
2432
  */
2348
- readonly "createApprovalForOther": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly payload: typeof CreateApprovalForOtherRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateApprovalForOther201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
2433
+ readonly "createApprovalForOtherDeprecated": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly payload: typeof CreateApprovalForOtherDeprecatedRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateApprovalForOtherDeprecated201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
2349
2434
  /**
2350
2435
  * Re-submit rejected/withdrawn entries/expenses for an approval of a user
2351
2436
  */
2352
2437
  readonly "resubmitApprovalRequestForOther": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly payload: typeof ResubmitApprovalRequestForOtherRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
2353
2438
  /**
2439
+ * Submit approval request for user with type
2440
+ */
2441
+ readonly "createApprovalForOtherWithType": <Config extends OperationConfig>(workspaceId: string, userId: string, type: string, options: { readonly payload: typeof CreateApprovalForOtherWithTypeRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateApprovalForOtherWithType201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
2442
+ /**
2354
2443
  * Update an approval request
2355
2444
  */
2356
2445
  readonly "updateApprovalStatus": <Config extends OperationConfig>(workspaceId: string, approvalRequestId: string, options: { readonly payload: typeof UpdateApprovalStatusRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateApprovalStatus200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
2357
2446
  /**
2447
+ * Submit approval request with type
2448
+ */
2449
+ readonly "createApprrovalRequest1": <Config extends OperationConfig>(workspaceId: string, type: string, options: { readonly payload: typeof CreateApprrovalRequest1RequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateApprrovalRequest1201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
2450
+ /**
2358
2451
  * Find clients on a workspace
2359
2452
  */
2360
2453
  readonly "getClients": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetClientsParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetClients200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
@@ -2740,10 +2833,14 @@ readonly "delete1": <Config extends OperationConfig>(workspaceId: string, templa
2740
2833
  */
2741
2834
  readonly "update": <Config extends OperationConfig>(workspaceId: string, templateId: string, options: { readonly payload: typeof UpdateRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof Update200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
2742
2835
  /**
2743
- * Add a new time entry
2836
+ * Important: if workspace has time entry custom fields configured that are marked as required you must provide them in the `customFields` array.
2744
2837
  */
2745
2838
  readonly "createTimeEntry": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateTimeEntryRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateTimeEntry201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
2746
2839
  /**
2840
+ * Get multiple time entries on a workspace
2841
+ */
2842
+ readonly "getMultipleTimeEntries": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof GetMultipleTimeEntriesRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetMultipleTimeEntries200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
2843
+ /**
2747
2844
  * Mark time entries as invoiced
2748
2845
  */
2749
2846
  readonly "updateInvoicedStatus": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof UpdateInvoicedStatusRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
@@ -2764,6 +2861,22 @@ readonly "updateTimeEntry": <Config extends OperationConfig>(workspaceId: string
2764
2861
  */
2765
2862
  readonly "deleteTimeEntry": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
2766
2863
  /**
2864
+ * Creates a new balance assignment for a user in policy
2865
+ */
2866
+ readonly "createBalanceAssignment": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateBalanceAssignmentRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
2867
+ /**
2868
+ * Get all balance assignments of a user in policy
2869
+ */
2870
+ readonly "getBalanceAssignmentsForUserAndPolicy": <Config extends OperationConfig>(workspaceId: string, userId: string, policyId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
2871
+ /**
2872
+ * Updates a specific balance assignment
2873
+ */
2874
+ readonly "updateBalanceAssignment": <Config extends OperationConfig>(workspaceId: string, balanceAssignmentId: string, userId: string, policyId: string, options: { readonly payload: typeof UpdateBalanceAssignmentRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
2875
+ /**
2876
+ * Deletes a specific balance assignment
2877
+ */
2878
+ readonly "deleteBalanceAssignment": <Config extends OperationConfig>(workspaceId: string, balanceAssignmentId: string, userId: string, policyId: string, options: { readonly payload: typeof DeleteBalanceAssignmentRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
2879
+ /**
2767
2880
  * Get balances for a policy
2768
2881
  */
2769
2882
  readonly "getBalancesForPolicy": <Config extends OperationConfig>(workspaceId: string, policyId: string, options: { readonly params?: typeof GetBalancesForPolicyParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>