@knpkv/clockify-api-client 1.1.1 → 2.0.0
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.
- package/CHANGELOG.md +23 -0
- package/dist/ClockifyApiClient.d.ts +2 -2
- package/dist/ClockifyApiClient.d.ts.map +1 -1
- package/dist/ClockifyApiClient.js +3 -3
- package/dist/ClockifyApiClient.js.map +1 -1
- package/dist/generated/ClockifyApi.d.ts +5165 -4178
- package/dist/generated/ClockifyApi.d.ts.map +1 -1
- package/dist/generated/ClockifyApi.js +336 -329
- package/dist/generated/ClockifyApi.js.map +1 -1
- package/package.json +9 -9
- package/scripts/regenerate.ts +10 -8
- package/src/ClockifyApiClient.ts +4 -4
- package/src/generated/ClockifyApi.ts +570 -544
- package/test/ClockifyApiClient.test.ts +164 -213
- package/test/CustomFieldValues.test.ts +18 -0
- package/test/GeneratedSchemas.test.ts +60 -0
|
@@ -1,293 +1,289 @@
|
|
|
1
1
|
import * as Data from "effect/Data";
|
|
2
2
|
import * as Effect from "effect/Effect";
|
|
3
3
|
import * as Schema from "effect/Schema";
|
|
4
|
-
import * as HttpClientError from "effect/
|
|
5
|
-
import * as HttpClientRequest from "effect/
|
|
6
|
-
import * as HttpClientResponse from "effect/
|
|
7
|
-
export const
|
|
8
|
-
export const
|
|
9
|
-
export const
|
|
10
|
-
export const
|
|
11
|
-
export const
|
|
12
|
-
export const
|
|
13
|
-
export const
|
|
14
|
-
export const
|
|
15
|
-
export const
|
|
16
|
-
export const
|
|
17
|
-
export const
|
|
18
|
-
export const
|
|
19
|
-
export const
|
|
20
|
-
export const
|
|
21
|
-
export const
|
|
22
|
-
export const
|
|
23
|
-
export const
|
|
24
|
-
export const
|
|
25
|
-
export const
|
|
26
|
-
export const
|
|
27
|
-
export const
|
|
28
|
-
export const
|
|
29
|
-
export const
|
|
30
|
-
export const
|
|
31
|
-
export const
|
|
32
|
-
export const
|
|
33
|
-
export const
|
|
34
|
-
export const
|
|
35
|
-
export const
|
|
36
|
-
export const
|
|
37
|
-
export const
|
|
38
|
-
export const
|
|
39
|
-
export const
|
|
40
|
-
export const
|
|
41
|
-
export const
|
|
42
|
-
export const
|
|
43
|
-
export const
|
|
44
|
-
export const
|
|
45
|
-
export const
|
|
46
|
-
export const
|
|
47
|
-
export const
|
|
48
|
-
export const
|
|
49
|
-
export const
|
|
50
|
-
export const
|
|
51
|
-
export const
|
|
52
|
-
export const
|
|
53
|
-
export const
|
|
54
|
-
export const
|
|
55
|
-
export const
|
|
56
|
-
export const
|
|
57
|
-
export const
|
|
58
|
-
export const
|
|
59
|
-
export const
|
|
60
|
-
export const
|
|
61
|
-
export const
|
|
62
|
-
export const
|
|
63
|
-
export const
|
|
64
|
-
export const
|
|
65
|
-
export const
|
|
66
|
-
export const
|
|
67
|
-
export const
|
|
68
|
-
export const
|
|
69
|
-
export const
|
|
70
|
-
export const
|
|
71
|
-
export const
|
|
72
|
-
export const
|
|
73
|
-
export const
|
|
74
|
-
export const
|
|
75
|
-
export const
|
|
76
|
-
export const
|
|
77
|
-
export const
|
|
78
|
-
export const
|
|
79
|
-
export const
|
|
80
|
-
export const
|
|
81
|
-
export const
|
|
82
|
-
export const
|
|
83
|
-
export const
|
|
84
|
-
export const
|
|
85
|
-
export const
|
|
86
|
-
export const
|
|
87
|
-
export const
|
|
88
|
-
export const
|
|
89
|
-
export const InvoicePaymentDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice payment amount as long.", "format": "int64" }).check(Schema.isInt())), "author": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice payment author." })), "date": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice payment date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice payment identifier across the system." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice payment note." })) });
|
|
90
|
-
export const
|
|
91
|
-
export const
|
|
92
|
-
export const
|
|
93
|
-
export const
|
|
94
|
-
export const
|
|
95
|
-
export const
|
|
96
|
-
export const
|
|
97
|
-
export const
|
|
98
|
-
export const
|
|
99
|
-
export const
|
|
100
|
-
export const
|
|
101
|
-
export const
|
|
102
|
-
export const
|
|
103
|
-
export const
|
|
104
|
-
export const
|
|
105
|
-
export const
|
|
106
|
-
export const
|
|
107
|
-
export const
|
|
108
|
-
export const
|
|
109
|
-
export const
|
|
110
|
-
export const
|
|
111
|
-
export const
|
|
112
|
-
export const
|
|
113
|
-
export const
|
|
114
|
-
export const
|
|
115
|
-
export const
|
|
116
|
-
export const
|
|
117
|
-
export const
|
|
118
|
-
export const
|
|
119
|
-
export const
|
|
120
|
-
export const
|
|
121
|
-
export const
|
|
122
|
-
export const
|
|
123
|
-
export const
|
|
124
|
-
export const
|
|
125
|
-
export const
|
|
126
|
-
export const
|
|
127
|
-
export const
|
|
128
|
-
export const
|
|
129
|
-
export const
|
|
130
|
-
export const
|
|
131
|
-
export const
|
|
132
|
-
export const
|
|
133
|
-
export const
|
|
134
|
-
export const
|
|
135
|
-
export const
|
|
136
|
-
export const
|
|
137
|
-
export const
|
|
138
|
-
export const
|
|
139
|
-
export const
|
|
140
|
-
export const
|
|
141
|
-
export const
|
|
142
|
-
export const
|
|
143
|
-
export const
|
|
144
|
-
export const
|
|
145
|
-
export const
|
|
146
|
-
export const
|
|
147
|
-
export const
|
|
148
|
-
export const
|
|
149
|
-
export const
|
|
150
|
-
export const
|
|
151
|
-
export const
|
|
152
|
-
export const
|
|
153
|
-
export const
|
|
154
|
-
export const
|
|
155
|
-
export const
|
|
156
|
-
export const
|
|
157
|
-
export const
|
|
158
|
-
export const
|
|
159
|
-
export const
|
|
160
|
-
export const
|
|
161
|
-
export const
|
|
162
|
-
export const
|
|
163
|
-
export const
|
|
164
|
-
export const
|
|
165
|
-
export const
|
|
166
|
-
export const
|
|
167
|
-
export const
|
|
168
|
-
export const
|
|
169
|
-
export const
|
|
170
|
-
export const
|
|
171
|
-
export const
|
|
172
|
-
export const
|
|
173
|
-
export const CustomFieldFilterV1 = Schema.Struct({ "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a custom field identifier across the system." })), "isEmpty": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the custom field is empty." })), "numberCondition": Schema.optionalKey(Schema.Literals(["EQUAL", "GREATER_THAN", "LESS_THAN"]).annotate({ "description": "Represents a custom field number condition." })), "type": Schema.optionalKey(Schema.Literals(["TXT", "NUMBER", "DROPDOWN_SINGLE", "DROPDOWN_MULTIPLE", "CHECKBOX", "LINK"]).annotate({ "description": "Represents a type of custom field." })), "value": Schema.optionalKey(Schema.Struct({}).annotate({ "description": "Represents a custom field value." })) }).annotate({ "description": "Represents list of time entry custom field filter objects." });
|
|
174
|
-
export const
|
|
175
|
-
export const DetailedOptionsV1 = Schema.Struct({ "totals": Schema.optionalKey(Schema.Literals(["CALCULATE", "EXCLUDE"])) });
|
|
176
|
-
export const
|
|
177
|
-
export const
|
|
178
|
-
export const
|
|
179
|
-
export const
|
|
180
|
-
export const
|
|
181
|
-
export const
|
|
182
|
-
export const
|
|
183
|
-
export const
|
|
184
|
-
export const
|
|
185
|
-
export const
|
|
186
|
-
export const
|
|
187
|
-
export const
|
|
188
|
-
export const
|
|
189
|
-
export const
|
|
190
|
-
export const
|
|
191
|
-
export const
|
|
192
|
-
export const
|
|
193
|
-
export const
|
|
194
|
-
export const
|
|
195
|
-
export const
|
|
196
|
-
export const
|
|
197
|
-
export const
|
|
198
|
-
export const
|
|
199
|
-
export const
|
|
200
|
-
export const
|
|
201
|
-
export const
|
|
202
|
-
export const
|
|
203
|
-
export const
|
|
204
|
-
export const
|
|
205
|
-
export const
|
|
206
|
-
export const
|
|
207
|
-
export const
|
|
208
|
-
export const
|
|
209
|
-
export const
|
|
210
|
-
export const InvoiceSettingsDtoV1 = Schema.Struct({ "defaults": Schema.optionalKey(InvoiceDefaultSettingsDto), "exportFields": Schema.optionalKey(InvoiceExportFields), "labels": Schema.optionalKey(LabelsCustomization) });
|
|
211
|
-
export const UpdateInvoiceSettingsRequestV1 = Schema.Struct({ "defaults": Schema.optionalKey(InvoiceDefaultSettingsRequestV1), "exportFields": Schema.optionalKey(InvoiceExportFieldsRequest), "labels": LabelsCustomizationRequest });
|
|
212
|
-
export const
|
|
213
|
-
export const
|
|
214
|
-
export const
|
|
215
|
-
export const
|
|
216
|
-
export const
|
|
217
|
-
export const
|
|
218
|
-
export const
|
|
219
|
-
export const
|
|
220
|
-
export const
|
|
221
|
-
export const
|
|
222
|
-
export const
|
|
223
|
-
export const
|
|
224
|
-
export const
|
|
225
|
-
export const
|
|
226
|
-
export const
|
|
227
|
-
export const
|
|
228
|
-
export const
|
|
229
|
-
export const
|
|
230
|
-
export const
|
|
231
|
-
export const
|
|
232
|
-
export const
|
|
233
|
-
export const
|
|
234
|
-
export const
|
|
235
|
-
export const
|
|
236
|
-
export const
|
|
237
|
-
export const
|
|
238
|
-
export const
|
|
239
|
-
export const
|
|
240
|
-
export const
|
|
241
|
-
export const
|
|
242
|
-
export const
|
|
243
|
-
export const
|
|
244
|
-
export const
|
|
245
|
-
export const
|
|
246
|
-
export const ExpenseReportFilterV1 = Schema.Struct({ "approvalState": Schema.optionalKey(Schema.Literals(["APPROVED", "UNAPPROVED", "ALL"]).annotate({ "description": "Represents an approval state" })), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether report is billable" })), "categories": Schema.optionalKey(ContainsArchivedFilterV1), "clients": Schema.optionalKey(ContainsArchivedFilterV1), "currency": Schema.optionalKey(ContainsArchivedFilterV1), "dateRangeEnd": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1)), "dateRangeStart": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1)), "dateRangeType": Schema.optionalKey(Schema.Literals(["ABSOLUTE", "TODAY", "YESTERDAY", "THIS_WEEK", "LAST_WEEK", "PAST_TWO_WEEKS", "THIS_MONTH", "LAST_MONTH", "THIS_YEAR", "LAST_YEAR"]).annotate({ "description": "Represents date range type of expense report" })), "exportType": Schema.optionalKey(Schema.Literals(["JSON", "JSON_V1", "PDF", "CSV", "XLSX", "ZIP"]).annotate({ "description": "Represents an export type" })), "invoicingState": Schema.optionalKey(Schema.Literals(["INVOICED", "UNINVOICED", "ALL"]).annotate({ "description": "Represents an invoicing state" })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a search term for filtering report entries by note" })), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1))), "projects": Schema.optionalKey(ContainsArchivedFilterV1), "sortColumn": Schema.optionalKey(Schema.Literals(["ID", "PROJECT", "USER", "CATEGORY", "DATE", "AMOUNT"]).annotate({ "description": "Represents expenses sort column" })), "sortOrder": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"]).annotate({ "description": "Represents a sort order" })), "tasks": Schema.optionalKey(ContainsTaskFilterV1), "timeZone": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time zone" })), "userGroups": Schema.optionalKey(ContainsUsersFilterV1), "userLocale": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a user locale" })), "users": Schema.optionalKey(ContainsUsersFilterV1), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents week start" })), "withoutNote": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to 'true', report will only include entries with empty note" })), "zoomLevel": Schema.optionalKey(Schema.Literals(["WEEK", "MONTH", "YEAR"]).annotate({ "description": "Represents a zoom level" })) });
|
|
247
|
-
export const
|
|
248
|
-
export const
|
|
249
|
-
export const
|
|
250
|
-
export const
|
|
251
|
-
export const
|
|
252
|
-
export const
|
|
253
|
-
export const
|
|
254
|
-
export const
|
|
255
|
-
export const
|
|
256
|
-
export const
|
|
257
|
-
export const
|
|
258
|
-
export const
|
|
259
|
-
export const
|
|
260
|
-
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) });
|
|
261
|
-
export const
|
|
262
|
-
export const
|
|
263
|
-
export const
|
|
264
|
-
export const
|
|
265
|
-
export const
|
|
266
|
-
export const
|
|
267
|
-
export const
|
|
268
|
-
export const
|
|
269
|
-
export const
|
|
270
|
-
export const
|
|
271
|
-
export const
|
|
272
|
-
export const
|
|
273
|
-
export const
|
|
274
|
-
export const
|
|
275
|
-
export const
|
|
276
|
-
export const
|
|
277
|
-
export const
|
|
278
|
-
export const
|
|
279
|
-
export const
|
|
280
|
-
export const
|
|
281
|
-
export const
|
|
282
|
-
export const
|
|
283
|
-
export const
|
|
284
|
-
export const
|
|
285
|
-
export const
|
|
286
|
-
export const
|
|
287
|
-
export const TimeOffRequestsWithCountV1Dto = Schema.Struct({ "count": Schema.optionalKey(Schema.Number.annotate({ "description": "Total count of time off requests.", "format": "int32" }).check(Schema.isInt())), "requests": Schema.optionalKey(Schema.Array(TimeOffRequestFullV1Dto)) });
|
|
288
|
-
export const ExpensesAndTotalsDtoV1 = Schema.Struct({ "dailyTotals": Schema.optionalKey(Schema.Array(ExpenseDailyTotalsDtoV1).annotate({ "description": "Represents a list of expense daily total data transfer objects." })), "expenses": Schema.optionalKey(ExpensesWithCountDtoV1), "weeklyTotals": Schema.optionalKey(Schema.Array(ExpenseWeeklyTotalsDtoV1).annotate({ "description": "Represents a list of expense weekly total data transfer objects." })) });
|
|
289
|
-
export const SharedReportRequestV1 = Schema.Struct({ "filter": Schema.optionalKey(ReportFilterV1), "fixedDate": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the shared report has a fixed date range." })), "isPublic": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the shared report is public or not" })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a shared report's name" })), "type": Schema.optionalKey(Schema.Literals(["DETAILED", "WEEKLY", "SUMMARY", "SCHEDULED", "EXPENSE_DETAILED", "EXPENSE_RECEIPT", "PTO_REQUESTS", "PTO_BALANCE", "ATTENDANCE", "INVOICE_EXPENSE", "INVOICE_TIME", "PROJECT", "TEAM_FULL", "TEAM_LIMITED", "TEAM_GROUPS", "INVOICES", "KIOSK_PIN_LIST", "KIOSK_ASSIGNEES", "USER_DATA_EXPORT"]).annotate({ "description": "Represent the type of shared report." })), "visibleToUserGroups": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents user group ids." })).annotate({ "description": "Represents user group ids." }).check(Schema.isUnique())), "visibleToUsers": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents user ids." })).annotate({ "description": "Represents user ids." }).check(Schema.isUnique())) });
|
|
290
|
-
export const GroupOneDto = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents group one amount" }).check(Schema.isFinite())), "children": Schema.optionalKey(Schema.Array(Schema.suspend(() => GroupOneDto)).annotate({ "description": "Represents list of children groups" })), "clientName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client name" })), "days": Schema.optionalKey(Schema.Array(DailyTotalDto).annotate({ "description": "Represents list of days" })), "duration": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents duration" }).check(Schema.isFinite())), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents group one identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents name" })), "nameLowerCase": Schema.optionalKey(Schema.String.annotate({ "description": "Represents lower case name" })) }).annotate({ "description": "List of groups" });
|
|
4
|
+
import * as HttpClientError from "effect/http/HttpClientError";
|
|
5
|
+
import * as HttpClientRequest from "effect/http/HttpClientRequest";
|
|
6
|
+
import * as HttpClientResponse from "effect/http/HttpClientResponse";
|
|
7
|
+
export const UploadFileResponseV1 = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "File name of the uploaded image" })), "url": Schema.optionalKey(Schema.String.annotate({ "description": "The URL of the uploaded image in the server" })) }).annotate({ "identifier": "UploadFileResponseV1" });
|
|
8
|
+
export const CustomFieldType = Schema.Never.annotate({ "identifier": "CustomFieldType" });
|
|
9
|
+
export const RateDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "currency": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a currency." })) }).annotate({ "description": "Represents hourly rate object.", "identifier": "RateDtoV1" });
|
|
10
|
+
export const HourlyRateDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "currency": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a currency." })) }).annotate({ "description": "Represents an hourly rate object.", "identifier": "HourlyRateDtoV1" });
|
|
11
|
+
export const SummaryReportSettingsDtoV1 = Schema.Struct({ "group": Schema.String.check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "subgroup": Schema.String.check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })) }).annotate({ "description": "Represents a summary report settings object.", "identifier": "SummaryReportSettingsDtoV1" });
|
|
12
|
+
export const AccountStatus = Schema.Literals(["ACTIVE", "PENDING_EMAIL_VERIFICATION", "DELETED", "NOT_REGISTERED", "LIMITED", "LIMITED_DELETED"]).annotate({ "description": "Represents account status enum.", "identifier": "AccountStatus" });
|
|
13
|
+
export const CurrencyWithDefaultInfoDtoV1 = Schema.Struct({ "code": Schema.optionalKey(Schema.String.annotate({ "description": "Represents currency code." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents currency identifier across the system." })), "isDefault": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether curency should be set as default." })) }).annotate({ "description": "Represents currency with default info object.", "identifier": "CurrencyWithDefaultInfoDtoV1" });
|
|
14
|
+
export const FeaturePlan = Schema.Struct({ "addonSubscriptionPlan": Schema.optionalKey(Schema.Literals(["FREE", "BASIC", "STANDARD", "PRO", "ENTERPRISE"])), "featurePermissions": Schema.optionalKey(Schema.Array(Schema.Literals(["ACTIVITY_MONITORING", "ADD_TIME_FOR_OTHERS", "ADMIN_PANEL", "ALERTS", "APPROVAL", "AUDIT_LOG", "AUTOMATIC_LOCK", "BRANDED_REPORTS", "BULK_EDIT", "CUSTOM_FIELDS", "CUSTOM_REPORTING", "CUSTOM_SUBDOMAIN", "CREATION_PERMISSIONS", "DECIMAL_FORMAT", "DISABLE_MANUAL_MODE", "EDIT_MEMBER_PROFILE", "EXCLUDE_NON_BILLABLE_FROM_ESTIMATE", "EXPENSES", "FILE_IMPORT", "TIMESHEET_IMPORT", "USER_IMPORT", "HIDE_PAGES", "HISTORIC_RATES", "INVOICING", "INVOICE_EMAILS", "INVOICE_REMINDERS", "LABOR_COST", "LOCATIONS", "MANAGER_ROLE", "MULTI_FACTOR_AUTHENTICATION", "PROJECT_BUDGET", "PROJECT_TEMPLATES", "GRANT_PROJECT_MANAGER_ROLE", "PRIVATE_PROJECT_ACCESS", "QUICKBOOKS_INTEGRATION", "RECURRING_ESTIMATES", "RECURRING_INVOICES", "REQUIRED_FIELDS", "SCHEDULED_REPORTS", "SCHEDULING", "SCHEDULING_BILLABLE_AND_COST_AMOUNT", "SCREENSHOTS", "SSO", "SUMMARY_ESTIMATE", "TARGETS_AND_REMINDERS", "TASK_RATES", "TASK_COST_RATES", "TASK_HOURLY_RATES", "TIME_OFF", "UNLIMITED_REPORTS", "USER_CUSTOM_FIELDS", "WHO_CAN_CHANGE_TIMEENTRY_BILLABILITY", "BREAKS", "KIOSK_SESSION_DURATION", "KIOSK_PIN_REQUIRED", "WHO_CAN_SEE_ALL_TIME_ENTRIES", "WHO_CAN_SEE_PROJECT_STATUS", "WHO_CAN_SEE_PUBLIC_PROJECTS_ENTRIES", "WHO_CAN_SEE_TEAMS_DASHBOARD", "WORKSPACE_LOCK_TIMEENTRIES", "WORKSPACE_TIME_AUDIT", "WORKSPACE_TIME_ROUNDING", "KIOSK", "KIOSK_SIX_DIGIT_PIN", "KIOSK_QR_CODE", "KIOSK_PHOTO_CAPTURE", "LIMITED_USERS", "FORECASTING", "TIME_TRACKING", "ATTENDANCE_REPORT", "WEEKLY_OVERTIME_CALCULATION_PERIOD", "MONTHLY_OVERTIME_CALCULATION_PERIOD", "WORKSPACE_TRANSFER", "FAVORITE_ENTRIES", "SPLIT_TIME_ENTRY", "CLIENT_CURRENCY", "SCHEDULING_FORECASTING", "SCIM", "UNLIMITED_USER_SEATS", "BILLABLE_HOURS", "PROJECT_ESTIMATE", "CSV_EXPORT", "XLSX_EXPORT", "ONE_MONTH_RANGE_REPORTS", "ONE_YEAR_RANGE_REPORTS", "SHARED_REPORTS"])).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "legacy": Schema.optionalKey(Schema.Boolean), "paidPlan": Schema.optionalKey(Schema.Boolean), "regionalAllowed": Schema.optionalKey(Schema.Boolean), "weight": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))) }).annotate({ "description": "Represents a feature plan type enum.", "identifier": "FeaturePlan" });
|
|
15
|
+
export const Feature = Schema.Never.annotate({ "identifier": "Feature" });
|
|
16
|
+
export const WorkspaceSubdomainDtoV1 = Schema.Struct({ "enabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether subdomain is enabled on workspace" })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents subdomain name" })) }).annotate({ "description": "Represents the workspace subdomain", "identifier": "WorkspaceSubdomainDtoV1" });
|
|
17
|
+
export const TimeApprovalSettingsDtoV1 = Schema.Struct({ "approvalEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether approval is enabled." })), "approvalPeriod": Schema.optionalKey(Schema.Literals(["WEEKLY", "SEMI_MONTHLY", "MONTHLY"]).annotate({ "description": "Represents the approval period." })), "approvalRoles": Schema.optionalKey(Schema.Array(Schema.Literals(["ADMIN", "TEAM_MANAGER", "PROJECT_MANAGER"]).annotate({ "description": "Represents the list of roles who can approve." })).annotate({ "description": "Represents the list of roles who can approve." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))) }).annotate({ "description": "Represents the settings for time approval.", "identifier": "TimeApprovalSettingsDtoV1" });
|
|
18
|
+
export const AuditLogSettingsDtoV1 = Schema.Struct({ "auditEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether auditlog is enabled." })), "clientAuditing": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether client auditing is enabled." })), "clientStartedRecording": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the date the auditlog started recording client in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "expensesAuditing": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether expenses auditing is enabled." })), "expensesStartedRecording": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the date the auditlog started recording expenses in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "projectAuditing": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project auditing is enabled." })), "projectStartedRecording": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the date the auditlog started recording project in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "tagAuditing": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether tag auditing is enabled." })), "tagStartedRecording": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the date the auditlog started recording tag in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "timeEntryAuditing": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether time entry auditing is enabled." })), "timeEntryStartedRecording": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the date the auditlog started recording time entry in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })) }).annotate({ "description": "Represents the settings for audit log.", "identifier": "AuditLogSettingsDtoV1" });
|
|
19
|
+
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().annotate({ "expected": "an integer" }))), "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().annotate({ "expected": "an integer" }))), "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.", "identifier": "AutomaticLockDtoV1" });
|
|
20
|
+
export const DefaultBreakEntitiesDtoV1 = Schema.Struct({ "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the project id." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the task id." })) }).annotate({ "description": "Represents the default break entities.", "identifier": "DefaultBreakEntitiesDtoV1" });
|
|
21
|
+
export const CustomLabelsDtoV1 = Schema.Struct({ "projectGroupingLabel": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project grouping label." })), "projectLabel": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project label." })), "taskLabel": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task label." })) }).annotate({ "description": "Represents the custom labels.", "identifier": "CustomLabelsDtoV1" });
|
|
22
|
+
export const EntityCreationPermission = Schema.Never.annotate({ "identifier": "EntityCreationPermission" });
|
|
23
|
+
export const ExpenseApprovalSettingsDtoV1 = Schema.Struct({ "approvalEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether approval is enabled." })), "approvalPeriod": Schema.optionalKey(Schema.Literals(["WEEKLY", "SEMI_MONTHLY", "MONTHLY"]).annotate({ "description": "Represents the approval period." })), "approvalRoles": Schema.optionalKey(Schema.Array(Schema.Literals(["ADMIN", "TEAM_MANAGER", "PROJECT_MANAGER"]).annotate({ "description": "Represents the list of roles who can approve." })).annotate({ "description": "Represents the list of roles who can approve." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))) }).annotate({ "description": "Represents the settings for expense approval.", "identifier": "ExpenseApprovalSettingsDtoV1" });
|
|
24
|
+
export const RoundDto = Schema.Struct({ "minutes": Schema.optionalKey(Schema.String), "round": Schema.optionalKey(Schema.String) }).annotate({ "description": "Represents a time rounding object.", "identifier": "RoundDto" });
|
|
25
|
+
export const SchedulingAssignmentCreators = Schema.Literals(["ADMINS", "ADMINS_AND_PROJECT_MANAGERS", "ANYONE", "EVERYONE"]).annotate({ "description": "Represents the entity who can create assignments.", "identifier": "SchedulingAssignmentCreators" });
|
|
26
|
+
export const TimeOffDtoV1 = Schema.Struct({ "active": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether time-off is active." })), "regularUserCanSeeOtherUsersTimeOff": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether regular user can see other user's time-off." })), "showDefaultPoliciesMessageToUsers": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents the list of show default policies message to users." })).annotate({ "description": "Represents the list of show default policies message to users." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))) }).annotate({ "description": "Represents the settings for time-off.", "identifier": "TimeOffDtoV1" });
|
|
27
|
+
export const CreateWorkspaceRequestV1 = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a workspace name." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })).check(Schema.isMaxLength(50).annotate({ "expected": "a value with a length of at most 50" }))), "organizationId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the Cake organization identifier across the system." })) }).annotate({ "identifier": "CreateWorkspaceRequestV1" });
|
|
28
|
+
export const WebhookEventTriggerSourceType = Schema.Never.annotate({ "identifier": "WebhookEventTriggerSourceType" });
|
|
29
|
+
export const WebhookEventType = Schema.Never.annotate({ "identifier": "WebhookEventType" });
|
|
30
|
+
export const ApprovalRequestCreatorDtoV1 = Schema.Struct({ "userEmail": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user email." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user name." })) }).annotate({ "description": "Represents approval request creator object.", "identifier": "ApprovalRequestCreatorDtoV1" });
|
|
31
|
+
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.", "identifier": "DateRangeDto" });
|
|
32
|
+
export const ApprovalRequestOwnerDtoV1 = Schema.Struct({ "startOfWeek": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a day of the week." })), "timeZone": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time zone." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user name." })) }).annotate({ "description": "Represents approval request owner object.", "identifier": "ApprovalRequestOwnerDtoV1" });
|
|
33
|
+
export const ApprovalRequestStatusDtoV1 = Schema.Struct({ "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an approval requesst note." })), "state": Schema.optionalKey(Schema.Literals(["PENDING", "APPROVED", "WITHDRAWN_SUBMISSION", "WITHDRAWN_APPROVAL", "REJECTED"]).annotate({ "description": "Represents approval state enum." })), "updatedAt": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "updatedBy": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "updatedByUserName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user name." })) }).annotate({ "description": "Represents approval request status object.", "identifier": "ApprovalRequestStatusDtoV1" });
|
|
34
|
+
export const RateDto = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "currency": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a currency." })) }).annotate({ "description": "Represents hourly rate object.", "identifier": "RateDto" });
|
|
35
|
+
export const CustomFieldValueDto = Schema.Struct({ "customFieldId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field identifier across the system." })), "sourceType": Schema.optionalKey(Schema.Literals(["WORKSPACE", "PROJECT", "TIMEENTRY"]).annotate({ "description": "Represents a custom field value source type." })), "timeEntryId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time entry identifier across the system." })), "value": Schema.optionalKey(Schema.Struct({}).annotate({ "description": "Represents custom field value." })) }).annotate({ "description": "Represents a list of custom field value objects.", "identifier": "CustomFieldValueDto" });
|
|
36
|
+
export const ProjectInfoDto = Schema.Struct({ "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." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project name." })) }).annotate({ "description": "Represents a project info object.", "identifier": "ProjectInfoDto" });
|
|
37
|
+
export const TagDto = Schema.Struct({ "archived": Schema.Boolean.annotate({ "description": "Indicates whether tag is archived or not." }), "id": Schema.String.annotate({ "description": "Represents tag identifier across the system." }), "name": Schema.String.annotate({ "description": "Represents tag name." }), "workspaceId": Schema.String.annotate({ "description": "Represents workspace identifier across the system." }) }).annotate({ "description": "Represents a list of tag objects.", "identifier": "TagDto" });
|
|
38
|
+
export const TaskInfoDto = Schema.Struct({ "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task name." })) }).annotate({ "description": "Represents a project info object.", "identifier": "TaskInfoDto" });
|
|
39
|
+
export const TimeIntervalDto = Schema.Struct({ "duration": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null])), "end": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]).annotate({ "format": "date-time" })), "offsetEnd": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "offsetStart": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "start": Schema.String.annotate({ "format": "date-time" }), "timeZone": Schema.optionalKey(Schema.String), "zonedEnd": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "zonedStart": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })) }).annotate({ "description": "Represents a time interval object.", "identifier": "TimeIntervalDto" });
|
|
40
|
+
export const ExpenseCategoryDto = Schema.Struct({ "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag that indicates whether the expense category is archived or not." })), "hasUnitPrice": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Represents whether expense category has unit price or none." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expense category identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expense category name." })), "priceInCents": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents price in cents as integer.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "unit": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expense category unit." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "description": "Represents an expense category object.", "identifier": "ExpenseCategoryDto" });
|
|
41
|
+
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).annotate({ "expected": "a value with a length of at least 1" })), "type": Schema.optionalKey(Schema.String.check(Schema.isPattern(new RegExp("TIMESHEET|EXPENSE")).annotate({ "expected": "a string matching the RegExp TIMESHEET|EXPENSE" }))) }).annotate({ "identifier": "CreateApprovalRequest" });
|
|
42
|
+
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).annotate({ "expected": "a value with a length of at least 1" })) }).annotate({ "identifier": "CreateApprovalRequestNoType" });
|
|
43
|
+
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." }) }).annotate({ "identifier": "UpdateApprovalRequest" });
|
|
44
|
+
export const ClientWithCurrencyDtoV1 = Schema.Struct({ "address": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client's address." })), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Represents whether a client is archived or not." })), "ccEmails": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents additional emails for sending invoices." })).annotate({ "description": "Represents additional emails for sending invoices." })), "currencyCode": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client currency code." })), "currencyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents currency identifier across the system." })), "email": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client email." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client name." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents saved notes for the client." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "identifier": "ClientWithCurrencyDtoV1" });
|
|
45
|
+
export const CreateClientRequestV1 = Schema.Struct({ "address": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client's address." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(3000).annotate({ "expected": "a value with a length of at most 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).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" }))), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents additional notes for the client." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(3000).annotate({ "expected": "a value with a length of at most 3000" }))) }).annotate({ "identifier": "CreateClientRequestV1" });
|
|
46
|
+
export const UpdateClientRequestV1 = Schema.Struct({ "address": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client's address." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(3000).annotate({ "expected": "a value with a length of at most 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).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(3).annotate({ "expected": "a value with a length of at most 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).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" }))), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents additional notes for the client." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(3000).annotate({ "expected": "a value with a length of at most 3000" }))) }).annotate({ "identifier": "UpdateClientRequestV1" });
|
|
47
|
+
export const ClientDtoV1 = Schema.Struct({ "address": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client's address." })), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Represents whether a client is archived or not." })), "ccEmails": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents additional emails for sending invoices." })).annotate({ "description": "Represents additional emails for sending invoices." })), "currencyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents currency identifier across the system." })), "email": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client email." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client name." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents saved notes for the client." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "identifier": "ClientDtoV1" });
|
|
48
|
+
export const CostRateRequestV1 = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" })), "since": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date and time in yyyy-MM-ddThh:mm:ssZ format." })) }).annotate({ "identifier": "CostRateRequestV1" });
|
|
49
|
+
export const CustomFieldDefaultValuesDtoV1 = Schema.Struct({ "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "status": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field status" })), "value": Schema.optionalKey(Schema.Struct({}).annotate({ "description": "Represents a custom field's default value" })) }).annotate({ "description": "Represents a list of custom field default values data transfer objects.", "identifier": "CustomFieldDefaultValuesDtoV1" });
|
|
50
|
+
export const CustomFieldRequestV1 = 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.Literals(["TIMEENTRY", "USER"]).annotate({ "description": "Represents custom field entity type" })), "name": 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." })), "status": Schema.optionalKey(Schema.Literals(["INACTIVE", "VISIBLE", "INVISIBLE"]).annotate({ "description": "Represents custom field status" })), "type": Schema.Literals(["TXT", "NUMBER", "DROPDOWN_SINGLE", "DROPDOWN_MULTIPLE", "CHECKBOX", "LINK"]).annotate({ "description": "Represents custom field type." }), "workspaceDefaultValue": Schema.optionalKey(Schema.Struct({}).annotate({ "description": "Represents a custom field's default value in the workspace.<li>if type = NUMBER, then value must be a number</li><li>if type = DROPDOWN_MULTIPLE, value must be a list</li><li>if type = CHECKBOX, value must be true/false</li><li>otherwise any string</li>" })) }).annotate({ "identifier": "CustomFieldRequestV1" });
|
|
51
|
+
export const UpdateCustomFieldRequestV1 = Schema.Struct({ "allowedValues": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of custom field's allowed values. If field type is not `DROPDOWN_SINGLE` or `DROPDOWN_MULTIPLE`, the values provided will be ignored by the server." })).annotate({ "description": "Represents a list of custom field's allowed values. If field type is not `DROPDOWN_SINGLE` or `DROPDOWN_MULTIPLE`, the values provided will be ignored by the server." })), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a custom field description.<br/>If this field is not included in the payload,it will automatically be set to `null`" })), "name": Schema.String.annotate({ "description": "Represents a custom field name." }).check(Schema.isMinLength(2).annotate({ "expected": "a value with a length of at least 2" })).check(Schema.isMaxLength(250).annotate({ "expected": "a value with a length of at most 250" })), "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 a custom field placeholder value.<br/>If this field is not included in the payload,it will automatically be set to `null`." })), "required": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether custom field is mandatory or not." })), "status": Schema.optionalKey(Schema.Literals(["INACTIVE", "VISIBLE", "INVISIBLE"]).annotate({ "description": "Represents a custom field status.<br/>If this field is not included in the payload,it will automatically be set to default `INACTIVE`." })), "type": Schema.optionalKey(Schema.Literals(["TXT", "NUMBER", "DROPDOWN_SINGLE", "DROPDOWN_MULTIPLE", "CHECKBOX", "LINK"]).annotate({ "description": "Represents a custom field type. This field is now deprecated and it's value will be ignored by the server. It will be removed entirely in a future release. Please stop including it in your payloads. To change a custom field type, please create a new object with the desired type instead." })), "workspaceDefaultValue": Schema.optionalKey(Schema.Struct({}).annotate({ "description": "Represents a custom field's default value in the workspace.<li>if type = NUMBER, then value must be a number</li><li>if type = DROPDOWN_MULTIPLE, value must be a list</li><li>if type = CHECKBOX, value must be true/false</li><li>otherwise any string</li>" })) }).annotate({ "identifier": "UpdateCustomFieldRequestV1" });
|
|
52
|
+
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) }).annotate({ "identifier": "LogBinDocumentDto" });
|
|
53
|
+
export const ExpenseDailyTotalsDtoV1 = Schema.Struct({ "date": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date in yyyy-MM-dd format." })), "dateAsInstant": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "total": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expense total.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))) }).annotate({ "description": "Represents a list of expense daily total data transfer objects.", "identifier": "ExpenseDailyTotalsDtoV1" });
|
|
54
|
+
export const ExpenseWeeklyTotalsDtoV1 = Schema.Struct({ "date": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date in yyyy-MM-dd format." })), "total": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expense total.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))) }).annotate({ "description": "Represents a list of expense weekly total data transfer objects.", "identifier": "ExpenseWeeklyTotalsDtoV1" });
|
|
55
|
+
export const CreateExpenseV1Request = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents an expense amount as the double data type.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" })).check(Schema.isLessThanOrEqualTo(92233720368547760).annotate({ "expected": "a value less than or equal to 92233720368547760" })), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether expense is billable or not." })), "categoryId": Schema.String.annotate({ "description": "Represents a category identifier across the system." }), "date": Schema.String.annotate({ "description": "Provides a valid yyyy-MM-ddThh:mm:ssZ format date.", "format": "date-time" }), "file": Schema.String.annotate({ "format": "binary" }), "notes": Schema.optionalKey(Schema.String.annotate({ "description": "Represents notes for an expense." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(3000).annotate({ "expected": "a value with a length of at most 3000" }))), "projectId": Schema.String.annotate({ "description": "Represents a project identifier across the system." }), "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).annotate({ "expected": "a value with a length of at least 1" })) }).annotate({ "identifier": "CreateExpenseV1Request" });
|
|
56
|
+
export const ExpenseDtoV1 = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether expense is billable or not." })), "categoryId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents category identifier across the system." })), "date": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date in yyyy-MM-dd format." })), "fileId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents file identifier across the system." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expense identifier across the system." })), "isLocked": Schema.optionalKey(Schema.Boolean.annotate({ "writeOnly": true })), "locked": Schema.optionalKey(Schema.Boolean), "notes": Schema.optionalKey(Schema.String.annotate({ "description": "Represents notes for an expense." })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "quantity": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expense quantity as double data type.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task identifier across the system." })), "total": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expense total as double data type.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "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." })) }).annotate({ "identifier": "ExpenseDtoV1" });
|
|
57
|
+
export const ExpenseCategoryDtoV1 = Schema.Struct({ "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag that indicates whether the expense category is archived or not." })), "hasUnitPrice": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Represents whether expense category has unit price or none." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expense category identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expense category name." })), "priceInCents": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents price in cents as integer.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "unit": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expense category unit." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "description": "Represents a list of expense categories data transfer object.", "identifier": "ExpenseCategoryDtoV1" });
|
|
58
|
+
export const ExpenseCategoryV1Request = Schema.Struct({ "hasUnitPrice": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag whether expense category has unit price or none." })), "name": Schema.String.annotate({ "description": "Represents a valid expense category name." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(250).annotate({ "expected": "a value with a length of at most 250" })), "priceInCents": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents price in cents as integer.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "unit": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a valid expense category unit." })) }).annotate({ "identifier": "ExpenseCategoryV1Request" });
|
|
59
|
+
export const ExpenseCategoryArchiveV1Request = Schema.Struct({ "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag whether to archive the expense category or not." })) }).annotate({ "identifier": "ExpenseCategoryArchiveV1Request" });
|
|
60
|
+
export const UpdateExpenseV1Request = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents an expense amount as the double data type.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" })).check(Schema.isLessThanOrEqualTo(92233720368547760).annotate({ "expected": "a value less than or equal to 92233720368547760" })), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether expense is billable or not." })), "categoryId": Schema.String.annotate({ "description": "Represents a category identifier across the system." }), "changeFields": Schema.Array(Schema.Literals(["USER", "DATE", "PROJECT", "TASK", "CATEGORY", "NOTES", "AMOUNT", "BILLABLE", "FILE"]).annotate({ "description": "Represents a list of expense change fields." })).annotate({ "description": "Represents a list of expense change fields." }), "date": Schema.String.annotate({ "description": "Provides a valid yyyy-MM-ddThh:mm:ssZ format date.", "format": "date-time" }), "file": Schema.String.annotate({ "format": "binary" }), "notes": Schema.optionalKey(Schema.String.annotate({ "description": "Represents notes for an expense." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(3000).annotate({ "expected": "a value with a length of at most 3000" }))), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project identifier across the system." })), "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).annotate({ "expected": "a value with a length of at least 1" })) }).annotate({ "identifier": "UpdateExpenseV1Request" });
|
|
61
|
+
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", "identifier": "DatePeriod" });
|
|
62
|
+
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.", "identifier": "DefaultEntitiesRequest" });
|
|
63
|
+
export const DatePeriodRequest = Schema.Struct({ "endDate": Schema.String.annotate({ "description": "yyyy-MM-dd format date" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "startDate": Schema.String.annotate({ "description": "yyyy-MM-dd format date" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })) }).annotate({ "description": "Provide startDate and endDate for the holiday.", "identifier": "DatePeriodRequest" });
|
|
64
|
+
export const UserGroupIdsSchema = Schema.Struct({ "contains": Schema.optionalKey(Schema.Literals(["CONTAINS", "DOES_NOT_CONTAIN"])), "ids": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents ids upon which filtering is performed." })).annotate({ "description": "Represents ids upon which filtering is performed." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "status": Schema.optionalKey(Schema.Literals(["ALL", "ACTIVE", "INACTIVE"]).annotate({ "description": "Represents user status." })) }).annotate({ "description": "Provide list with user group ids and corresponding status.", "identifier": "UserGroupIdsSchema" });
|
|
65
|
+
export const UserIdsSchema = Schema.Struct({ "contains": Schema.optionalKey(Schema.Literals(["CONTAINS", "DOES_NOT_CONTAIN"])), "ids": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents ids upon which filtering is performed." })).annotate({ "description": "Represents ids upon which filtering is performed." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "status": Schema.optionalKey(Schema.Literals(["ALL", "ACTIVE", "INACTIVE"]).annotate({ "description": "Represents user status." })) }).annotate({ "description": "Provide list with user ids and corresponding status.", "identifier": "UserIdsSchema" });
|
|
66
|
+
export const ContainsUserGroupFilterRequest = 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({ "expected": "an array with unique items" }))), "status": Schema.optionalKey(Schema.Literals(["PENDING", "ACTIVE", "DECLINED", "INACTIVE", "ALL"]).annotate({ "description": "Filters entities by status." })) }).annotate({ "description": "Provide list with user group ids and corresponding status.", "identifier": "ContainsUserGroupFilterRequest" });
|
|
67
|
+
export const ContainsUsersFilterRequestForHoliday = 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({ "expected": "an array with unique items" }))), "status": Schema.optionalKey(Schema.Literals(["ALL", "ACTIVE", "INACTIVE"]).annotate({ "description": "Filters entities by status." })), "statuses": Schema.optionalKey(Schema.Array(Schema.String)) }).annotate({ "description": "Provide list with users ids and corresponding status.", "identifier": "ContainsUsersFilterRequestForHoliday" });
|
|
68
|
+
export const AutoImportHolidaySettingDto = Schema.Struct({ "day": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "enabled": Schema.optionalKey(Schema.Boolean), "month": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))) }).annotate({ "description": "Represents holiday auto import settings.", "identifier": "AutoImportHolidaySettingDto" });
|
|
69
|
+
export const DefaultEntitiesDto = Schema.Struct({ "projectId": Schema.optionalKey(Schema.String), "taskId": Schema.optionalKey(Schema.String) }).annotate({ "identifier": "DefaultEntitiesDto" });
|
|
70
|
+
export const EntityIdNameDto = Schema.Struct({ "id": Schema.optionalKey(Schema.String), "name": Schema.optionalKey(Schema.String) }).annotate({ "description": "Contains names of users that are assigned to holiday.", "identifier": "EntityIdNameDto" });
|
|
71
|
+
export const RateWithCurrencyRequestV1 = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" })), "currency": Schema.String.annotate({ "description": "Represents a currency." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" })), "since": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date and time in yyyy-MM-ddThh:mm:ssZ format." })) }).annotate({ "identifier": "RateWithCurrencyRequestV1" });
|
|
72
|
+
export const InvoiceDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "balance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice balance amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client identifier across the system." })), "clientName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client name for an invoice." })), "currency": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the currency used by the invoice." })), "dueDate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice due date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice identifier across the system." })), "issuedDate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice issued date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "number": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice number." })), "paid": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice paid amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "status": Schema.optionalKey(Schema.Literals(["UNSENT", "SENT", "PAID", "PARTIALLY_PAID", "VOID", "OVERDUE"]).annotate({ "description": "Represents the status of an invoice." })) }).annotate({ "description": "Represents a list of invoices.", "identifier": "InvoiceDtoV1" });
|
|
73
|
+
export const CreateInvoiceRequest = Schema.Struct({ "clientId": Schema.String.annotate({ "description": "Represents a client identifier across the system." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "currency": Schema.String.annotate({ "description": "Represents the currency used by the invoice." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 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).annotate({ "expected": "a value with a length of at least 1" })), "timeViewMode": Schema.optionalKey(Schema.Literals(["TIME_SENSITIVE_VIEW", "AGGREGATED_TIME_VIEW"])) }).annotate({ "identifier": "CreateInvoiceRequest" });
|
|
74
|
+
export const CreateInvoiceDtoV1 = Schema.Struct({ "billFrom": Schema.optionalKey(Schema.String.annotate({ "description": "Represents to whom the invoice should be billed from." })), "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client identifier across the system." })), "currency": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the currency used by the invoice." })), "dueDate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice due date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice identifier across the system." })), "issuedDate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice issued date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "number": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice number." })) }).annotate({ "identifier": "CreateInvoiceDtoV1" });
|
|
75
|
+
export const ContainsArchivedFilterRequest = 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({ "expected": "an array with unique items" }))), "status": Schema.optionalKey(Schema.Literals(["ACTIVE", "ARCHIVED", "ALL"]).annotate({ "description": "Filters entities by status." })) }).annotate({ "description": "Represents a project filter for imported items.", "identifier": "ContainsArchivedFilterRequest" });
|
|
76
|
+
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({ "expected": "an array with unique items" }))) }).annotate({ "description": "Represents a company filter object. If provided, you'll get a filtered list of invoices that matches the specified company filter.", "identifier": "BaseFilterRequest" });
|
|
77
|
+
export const TimeRangeRequestDtoV1 = Schema.Struct({ "issue-date-end": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date in yyyy-MM-dd format. This is the lower bound of the time range." })), "issue-date-start": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date in yyyy-MM-dd format. This is the lower bound of the time range." })) }).annotate({ "description": "Represents a time range object. If provided, you'll get a filtered list of invoices that has issue date within the time range specified.", "identifier": "TimeRangeRequestDtoV1" });
|
|
78
|
+
export const VisibleZeroFieldsInvoice = Schema.Never.annotate({ "identifier": "VisibleZeroFieldsInvoice" });
|
|
79
|
+
export const InvoiceDefaultSettingsDto = Schema.Struct({ "companyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents company identifier across the system." })), "defaultImportExpenseItemTypeId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents item type identifier across the system." })), "defaultImportTimeItemTypeId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents item type identifier across the system." })), "dueDays": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice number of due days.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "itemType": Schema.optionalKey(Schema.String.annotate({ "writeOnly": true })), "itemTypeId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents item type identifier across the system." })), "notes": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice note." })), "subject": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice subject." })), "tax": Schema.optionalKey(Schema.Number.annotate({ "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "tax2": Schema.optionalKey(Schema.Number.annotate({ "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "tax2Percent": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a tax amount in percentage.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "taxPercent": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a tax amount in percentage.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "taxType": Schema.optionalKey(Schema.Literals(["COMPOUND", "SIMPLE", "NONE"]).annotate({ "description": "Represents a tax type." })) }).annotate({ "description": "Represents an invoice default settings object.", "identifier": "InvoiceDefaultSettingsDto" });
|
|
80
|
+
export const InvoiceExportFields = Schema.Struct({ "RTL": Schema.optionalKey(Schema.Boolean.annotate({ "writeOnly": true })), "itemType": Schema.optionalKey(Schema.Boolean), "quantity": Schema.optionalKey(Schema.Boolean), "rtl": Schema.optionalKey(Schema.Boolean), "tax": Schema.optionalKey(Schema.Boolean), "tax2": Schema.optionalKey(Schema.Boolean), "unitPrice": Schema.optionalKey(Schema.Boolean) }).annotate({ "description": "Represents an invoice export fields object.", "identifier": "InvoiceExportFields" });
|
|
81
|
+
export const LabelsCustomization = Schema.Struct({ "amount": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice amount." })), "billFrom": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a string an invoice is billed from." })), "billTo": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a string an invoice is billed to." })), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a description of an invoice." })), "discount": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice discount amount." })), "dueDate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a due date in yyyy-MM-dd format." })), "issueDate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an issue date in yyyy-MM-dd format." })), "itemType": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an item type." })), "notes": Schema.optionalKey(Schema.String.annotate({ "description": "Represents notes for an invoice." })), "paid": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice paid amount." })), "quantity": Schema.optionalKey(Schema.String.annotate({ "description": "Represents quantity." })), "subtotal": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice subtotal." })), "tax": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice tax amount." })), "tax2": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice tax amount." })), "total": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice total amount." })), "totalAmount": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice total amount." })), "unitPrice": Schema.optionalKey(Schema.String.annotate({ "description": "Represents unit price." })) }).annotate({ "description": "Represents a label customization object.", "identifier": "LabelsCustomization" });
|
|
82
|
+
export const InvoiceDefaultSettingsRequestV1 = Schema.Struct({ "companyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents company identifier across the system." })), "dueDays": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice number of due days.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "itemTypeId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents item type identifier across the system." })), "notes": Schema.String.annotate({ "description": "Represents an invoice note." }), "subject": Schema.String.annotate({ "description": "Represents an invoice subject." }), "tax2Percent": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a tax amount in percentage.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "taxPercent": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a tax amount in percentage.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "taxType": Schema.optionalKey(Schema.Literals(["COMPOUND", "SIMPLE", "NONE"]).annotate({ "description": "Represents a tax type." })) }).annotate({ "description": "Represents an invoice default settings object.", "identifier": "InvoiceDefaultSettingsRequestV1" });
|
|
83
|
+
export const InvoiceExportFieldsRequest = Schema.Struct({ "itemType": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to export item type." })), "quantity": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to export quantity." })), "rtl": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to export RTL." })), "tax": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to export tax." })), "tax2": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to export tax2." })), "unitPrice": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to export unit price." })) }).annotate({ "description": "Represents an invoice export fields object.", "identifier": "InvoiceExportFieldsRequest" });
|
|
84
|
+
export const LabelsCustomizationRequest = Schema.Struct({ "amount": Schema.String.annotate({ "description": "Represents invoice amount label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "billFrom": Schema.String.annotate({ "description": "Represents invoice bill from label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "billTo": Schema.String.annotate({ "description": "Represents invoice bill to label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "description": Schema.String.annotate({ "description": "Represents invoice description label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "discount": Schema.String.annotate({ "description": "Represents invoice discount amount label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "dueDate": Schema.String.annotate({ "description": "Represents invoice due date label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "issueDate": Schema.String.annotate({ "description": "Represents invoice issue date label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "itemType": Schema.String.annotate({ "description": "Represents invoice item type label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "notes": Schema.String.annotate({ "description": "Represents invoice notes label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "paid": Schema.String.annotate({ "description": "Represents invoice paid amount label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "quantity": Schema.String.annotate({ "description": "Represents invoice quantity label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "subtotal": Schema.String.annotate({ "description": "Represents invoice subtotal label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "tax": Schema.String.annotate({ "description": "Represents invoice tax amount label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "tax2": Schema.String.annotate({ "description": "Represents invoice tax 2 amount label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "total": Schema.String.annotate({ "description": "Represents invoice total amount label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "totalAmountDue": Schema.String.annotate({ "description": "Represents invoice total amount due label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })), "unitPrice": Schema.String.annotate({ "description": "Represents invoice unit price label." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(20).annotate({ "expected": "a value with a length of at most 20" })) }).annotate({ "description": "Represents a label customization object.", "identifier": "LabelsCustomizationRequest" });
|
|
85
|
+
export const CalculationType = Schema.Never.annotate({ "identifier": "CalculationType" });
|
|
86
|
+
export const ApplyTaxes = Schema.Never.annotate({ "identifier": "ApplyTaxes" });
|
|
87
|
+
export const TaxType = Schema.Never.annotate({ "identifier": "TaxType" });
|
|
88
|
+
export const CreateInvoiceItemRequestV1 = Schema.Struct({ "applyTaxes": Schema.Literals(["TAX1", "TAX2", "TAX1TAX2", "NONE"]).annotate({ "description": "Represents taxes applied to the invoice item. Applies only when the specified taxes are active on the invoice." }), "description": Schema.String.annotate({ "description": "Represents an invoice item description." }), "itemType": Schema.String.annotate({ "description": "Represents an item type.`Service` will be default" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "quantity": Schema.Number.annotate({ "description": "Represents an item quantity.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" })), "unitPrice": Schema.Number.annotate({ "description": "Represents an item unit price.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" })) }).annotate({ "identifier": "CreateInvoiceItemRequestV1" });
|
|
89
|
+
export const InvoicePaymentDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice payment amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "author": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice payment author." })), "date": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice payment date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice payment identifier across the system." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice payment note." })) }).annotate({ "identifier": "InvoicePaymentDtoV1" });
|
|
90
|
+
export const CreateInvoicePaymentRequest = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice payment amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice payment note." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(1000).annotate({ "expected": "a value with a length of at most 1000" }))), "paymentDate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice payment date in yyyy-MM-ddThh:mm:ssZ format." })) }).annotate({ "identifier": "CreateInvoicePaymentRequest" });
|
|
91
|
+
export const ChangeInvoiceStatusRequestV1 = Schema.Struct({ "invoiceStatus": Schema.optionalKey(Schema.Literals(["UNSENT", "SENT", "PAID", "PARTIALLY_PAID", "VOID", "OVERDUE"]).annotate({ "description": "Represents the invoice status to be set." })) }).annotate({ "identifier": "ChangeInvoiceStatusRequestV1" });
|
|
92
|
+
export const UpsertUserCustomFieldRequest = Schema.Struct({ "customFieldId": Schema.String.annotate({ "description": "Represents custom field identifier across the system." }), "value": Schema.optionalKey(Schema.Struct({}).annotate({ "description": "Represents custom field value." })) }).annotate({ "description": "Represents a list of upsert user custom field request.", "identifier": "UpsertUserCustomFieldRequest" });
|
|
93
|
+
export const EstimateWithOptionsDto = Schema.Struct({ "active": Schema.optionalKey(Schema.Boolean), "estimate": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an estimate as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "includeExpenses": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether estimate includes non-billable or not." })), "resetOption": Schema.optionalKey(Schema.Literals(["WEEKLY", "MONTHLY", "YEARLY"]).annotate({ "description": "Represents a reset option enum." })), "type": Schema.optionalKey(Schema.Literals(["AUTO", "MANUAL"]).annotate({ "description": "Represents an estimate type enum." })) }).annotate({ "description": "Represents a project budget estimate object.", "identifier": "EstimateWithOptionsDto" });
|
|
94
|
+
export const EstimateDtoV1 = Schema.Struct({ "estimate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task duration estimate." })), "type": Schema.optionalKey(Schema.Literals(["AUTO", "MANUAL"]).annotate({ "description": "Represents an estimate type enum." })) }).annotate({ "description": "Represents a project estimate object.", "identifier": "EstimateDtoV1" });
|
|
95
|
+
export const TimeEstimateDto = Schema.Struct({ "active": Schema.optionalKey(Schema.Boolean), "estimate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project duration in milliseconds." })), "includeNonBillable": Schema.optionalKey(Schema.Boolean), "resetOption": Schema.optionalKey(Schema.Literals(["WEEKLY", "MONTHLY", "YEARLY"]).annotate({ "description": "Represents a reset option enum." })), "type": Schema.optionalKey(Schema.Literals(["AUTO", "MANUAL"]).annotate({ "description": "Represents an estimate type enum." })) }).annotate({ "description": "Represents a project time estimate object.", "identifier": "TimeEstimateDto" });
|
|
96
|
+
export const EstimateRequest = Schema.Struct({ "estimate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time duration in ISO-8601 format." })), "type": Schema.optionalKey(Schema.Literals(["AUTO", "MANUAL"]).annotate({ "description": "Represents an estimate type enum." })) }).annotate({ "description": "Represents an estimate request object.", "identifier": "EstimateRequest" });
|
|
97
|
+
export const HourlyRateRequestV1 = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents an hourly rate amount as integer.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" })), "since": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date and time in yyyy-MM-ddThh:mm:ssZ format." })) }).annotate({ "identifier": "HourlyRateRequestV1" });
|
|
98
|
+
export const HourlyRateRequest = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents a cost rate amount as integer.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" })), "since": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a datetime in yyyy-MM-ddThh:mm:ssZ format." })) }).annotate({ "description": "Represents an hourly rate request object.", "identifier": "HourlyRateRequest" });
|
|
99
|
+
export const CostRateRequest = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 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.", "identifier": "CostRateRequest" });
|
|
100
|
+
export const EstimateResetDto = Schema.Struct({ "dayOfMonth": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "dayOfWeek": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"])), "hour": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "interval": Schema.optionalKey(Schema.Literals(["WEEKLY", "MONTHLY", "YEARLY"])), "month": Schema.optionalKey(Schema.Literals(["JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"])) }).annotate({ "description": "Represents project estimate reset object", "identifier": "EstimateResetDto" });
|
|
101
|
+
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}$")).annotate({ "expected": "a string matching the 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).annotate({ "expected": "a value with a length of at least 2" })).check(Schema.isMaxLength(250).annotate({ "expected": "a value with a length of at most 250" })), "templateProjectId": Schema.String.annotate({ "description": "Represents a project identifier across the system." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })) }).annotate({ "identifier": "CreateProjectFromTemplateV1" });
|
|
102
|
+
export const CustomFieldProjectDefaultValuesRequest = Schema.Struct({ "defaultValue": Schema.optionalKey(Schema.Struct({}).annotate({ "description": "Represents a custom field's default value." })), "status": Schema.optionalKey(Schema.Literals(["INACTIVE", "VISIBLE", "INVISIBLE"]).annotate({ "description": "Represents a custom field status." })) }).annotate({ "identifier": "CustomFieldProjectDefaultValuesRequest" });
|
|
103
|
+
export const EstimateWithOptionsRequest = Schema.Struct({ "active": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag whether to set estimate as active or not." })), "estimate": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an estimate as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" }))), "includeExpenses": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag whether to include billable expenses." })), "resetOption": Schema.optionalKey(Schema.Literals(["WEEKLY", "MONTHLY", "YEARLY"]).annotate({ "description": "Represents a reset option enum." })), "type": Schema.optionalKey(Schema.Literals(["AUTO", "MANUAL"]).annotate({ "description": "Represents an estimate type enum." })) }).annotate({ "description": "Represents estimate with options request object.", "identifier": "EstimateWithOptionsRequest" });
|
|
104
|
+
export const EstimateResetRequest = Schema.Struct({ "active": Schema.optionalKey(Schema.Boolean), "dayOfMonth": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a day of the month.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(31).annotate({ "expected": "a value less than or equal to 31" }))), "dayOfWeek": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a day of the week." })), "hour": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an hour of the day in 24 hour time format.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" })).check(Schema.isLessThanOrEqualTo(23).annotate({ "expected": "a value less than or equal to 23" }))), "interval": Schema.optionalKey(Schema.Literals(["WEEKLY", "MONTHLY", "YEARLY"]).annotate({ "description": "Represents a reset option enum." })), "isActive": Schema.optionalKey(Schema.Boolean.annotate({ "writeOnly": true })), "month": Schema.optionalKey(Schema.Literals(["JANUARY", "FEBRUARY", "MARCH", "APRIL", "MAY", "JUNE", "JULY", "AUGUST", "SEPTEMBER", "OCTOBER", "NOVEMBER", "DECEMBER"]).annotate({ "description": "Represents a month enum." })) }).annotate({ "description": "Represents estimate reset request object.", "identifier": "EstimateResetRequest" });
|
|
105
|
+
export const TimeEstimateRequest = Schema.Struct({ "active": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag whether to include only active or inactive estimates." })), "estimate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time duration in ISO-8601 format." })), "includeNonBillable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag whether to include non-billable expenses." })), "resetOption": Schema.optionalKey(Schema.Literals(["WEEKLY", "MONTHLY", "YEARLY"]).annotate({ "description": "Represents a reset option enum." })), "type": Schema.optionalKey(Schema.Literals(["AUTO", "MANUAL"]).annotate({ "description": "Represents an estimate type enum." })) }).annotate({ "description": "Represents project time estimate request object.", "identifier": "TimeEstimateRequest" });
|
|
106
|
+
export const TaskStatus = Schema.Never.annotate({ "identifier": "TaskStatus" });
|
|
107
|
+
export const TaskRequestV1 = Schema.Struct({ "assigneeId": Schema.optionalKey(Schema.String), "assigneeIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents list of assignee ids for the task." })).annotate({ "description": "Represents list of assignee ids for the task." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "budgetEstimate": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a task budget estimate as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" }))), "estimate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task duration estimate in ISO-8601 format." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task identifier across the system." })), "name": Schema.String.annotate({ "description": "Represents task name." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })).check(Schema.isMaxLength(1000).annotate({ "expected": "a value with a length of at most 1000" })), "status": Schema.optionalKey(Schema.Literals(["ACTIVE", "DONE", "ALL"]).annotate({ "description": "Represents task status." })), "userGroupIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents list of user group ids for the task." })).annotate({ "description": "Represents list of user group ids for the task." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))) }).annotate({ "identifier": "TaskRequestV1" });
|
|
108
|
+
export const UpdateTaskRequest = Schema.Struct({ "assigneeId": Schema.optionalKey(Schema.String), "assigneeIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents list of assignee ids for the task." })).annotate({ "description": "Represents list of assignee ids for the task." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether a task is billable or not." })), "budgetEstimate": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a task budget estimate as integer.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" }))), "estimate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task duration estimate." })), "name": Schema.String.annotate({ "description": "Represents task name." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })).check(Schema.isMaxLength(1000).annotate({ "expected": "a value with a length of at most 1000" })), "status": Schema.optionalKey(Schema.Literals(["ACTIVE", "DONE", "ALL"]).annotate({ "description": "Represents task status." })), "userGroupIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents list of user group ids for the task." })).annotate({ "description": "Represents list of user group ids for the task." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))) }).annotate({ "identifier": "UpdateTaskRequest" });
|
|
109
|
+
export const PatchProjectTemplateRequest = Schema.Struct({ "isTemplate": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is a template or not." })) }).annotate({ "identifier": "PatchProjectTemplateRequest" });
|
|
110
|
+
export const AssignmentPerDayDto = Schema.Struct({ "date": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "hasAssignment": Schema.optionalKey(Schema.Boolean) }).annotate({ "description": "Represents a list of assignment per day objects.", "identifier": "AssignmentPerDayDto" });
|
|
111
|
+
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.", "identifier": "MilestoneDto" });
|
|
112
|
+
export const ProjectTotalsRequestV1 = 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().annotate({ "expected": "an integer" }))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isLessThanOrEqualTo(200).annotate({ "expected": "a value less than or equal to 200" }))), "search": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a term for searching projects and clients by name." })), "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." })) }).annotate({ "identifier": "ProjectTotalsRequestV1" });
|
|
113
|
+
export const ContainsUsersFilterRequestV1 = 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({ "expected": "an array with unique items" }))), "sourceType": Schema.optionalKey(Schema.Literal("USER_GROUP").annotate({ "description": "Valid authorization source type." })), "status": Schema.optionalKey(Schema.Literals(["PENDING", "ACTIVE", "DECLINED", "INACTIVE", "ALL"]).annotate({ "description": "Filters entities by status." })), "statuses": Schema.optionalKey(Schema.Array(Schema.Literals(["PENDING", "ACTIVE", "DECLINED", "INACTIVE", "ALL"]).annotate({ "description": "Valid array of membership statuses." })).annotate({ "description": "Valid array of membership statuses." })) }).annotate({ "description": "Represents a user filter request object.", "identifier": "ContainsUsersFilterRequestV1" });
|
|
114
|
+
export const ContainsUserGroupFilterRequestV1 = 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({ "expected": "an array with unique items" }))), "status": Schema.optionalKey(Schema.Literals(["PENDING", "ACTIVE", "DECLINED", "INACTIVE", "ALL"]).annotate({ "description": "Filters entities by status." })) }).annotate({ "description": "Represents a user group filter request object.", "identifier": "ContainsUserGroupFilterRequestV1" });
|
|
115
|
+
export const RecurringFrequency = Schema.Never.annotate({ "identifier": "RecurringFrequency" });
|
|
116
|
+
export const MonthlyRecurringType = Schema.Never.annotate({ "identifier": "MonthlyRecurringType" });
|
|
117
|
+
export const RecurringEndType = Schema.Never.annotate({ "identifier": "RecurringEndType" });
|
|
118
|
+
export const SchedulingExcludeDay = Schema.Struct({ "date": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a datetimr in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "type": Schema.optionalKey(Schema.Literals(["WEEKEND", "HOLIDAY", "TIME_OFF"]).annotate({ "description": "Represents the scheduling exclude day enum." })) }).annotate({ "description": "Represents a list of excluded days objects", "identifier": "SchedulingExcludeDay" });
|
|
119
|
+
export const AssignmentUpdateRequestV1 = 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.optionalKey(Schema.Number.annotate({ "description": "Represents assignment total hours per day.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "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).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" }))), "seriesUpdateOption": Schema.optionalKey(Schema.Literals(["THIS_ONE", "THIS_AND_FOLLOWING", "ALL"]).annotate({ "description": "Valid series option" })), "start": Schema.String.annotate({ "description": "Represents start date in 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 task identifier across the system." })) }).annotate({ "identifier": "AssignmentUpdateRequestV1" });
|
|
120
|
+
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({ "expected": "a finite number" }))) }).annotate({ "description": "Represents total hours per day object.", "identifier": "TotalsPerDayDto" });
|
|
121
|
+
export const CopyAssignmentRequestV1 = Schema.Struct({ "seriesUpdateOption": Schema.optionalKey(Schema.Literals(["THIS_ONE", "THIS_AND_FOLLOWING", "ALL"]).annotate({ "description": "Represents a series update option." })), "userId": Schema.String.annotate({ "description": "Represents a user identifier across the system." }) }).annotate({ "identifier": "CopyAssignmentRequestV1" });
|
|
122
|
+
export const TagDtoV1 = Schema.Struct({ "archived": Schema.Boolean.annotate({ "description": "Indicates whether a tag is archived or not." }), "id": Schema.String.annotate({ "description": "Represents tag identifier across the system." }), "name": Schema.String.annotate({ "description": "Represents tag name." }), "workspaceId": Schema.String.annotate({ "description": "Represents workspace identifier across the system." }) }).annotate({ "identifier": "TagDtoV1" });
|
|
123
|
+
export const TagRequest = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a tag name." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" }))) }).annotate({ "identifier": "TagRequest" });
|
|
124
|
+
export const UpdateTagRequest = Schema.Struct({ "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether a tag will be archived or not." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a tag name." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" }))) }).annotate({ "identifier": "UpdateTagRequest" });
|
|
125
|
+
export const TemplateDto = Schema.Struct({ "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a template identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a template name." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a user identifier across the system." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a workspace identifier across the system." })) }).annotate({ "identifier": "TemplateDto" });
|
|
126
|
+
export const ProjectTaskTupleRequest = Schema.Struct({ "projectId": Schema.String.annotate({ "description": "Represents a project identifier across the system." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task identifier across the system." })), "type": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time entry type." })) }).annotate({ "description": "Represents a list of template's projects and tasks.", "identifier": "ProjectTaskTupleRequest" });
|
|
127
|
+
export const ProjectTaskTupleDto = Schema.Struct({ "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project identifier across the system." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task identifier across the system." })) }).annotate({ "description": "Represents a list of template's projects and tasks.", "identifier": "ProjectTaskTupleDto" });
|
|
128
|
+
export const TemplatePatchRequest = Schema.Struct({ "name": Schema.String.annotate({ "description": "Represents a template name." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })) }).annotate({ "identifier": "TemplatePatchRequest" });
|
|
129
|
+
export const CreateCustomAttributeRequest = Schema.Struct({ "name": Schema.String.annotate({ "description": "Represents custom attribute name." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "namespace": Schema.String.annotate({ "description": "Represents custom attribute namespace." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "value": Schema.String.annotate({ "description": "Represents custom attribute value." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })) }).annotate({ "description": "Represents a list of create custom field request objects.", "identifier": "CreateCustomAttributeRequest" });
|
|
130
|
+
export const UpdateCustomFieldRequest = Schema.Struct({ "customFieldId": Schema.String.annotate({ "description": "Represents custom field identifier across the system." }), "sourceType": Schema.optionalKey(Schema.Literals(["WORKSPACE", "PROJECT", "TIMEENTRY"]).annotate({ "description": "Represents a custom field value source type." })), "value": Schema.optionalKey(Schema.Struct({}).annotate({ "description": "Represents a custom field's value." })) }).annotate({ "description": "Represents a list of value objects for user’s custom fields.", "identifier": "UpdateCustomFieldRequest" });
|
|
131
|
+
export const CustomFieldValueDtoV1 = Schema.Struct({ "customFieldId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field name." })), "timeEntryId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time entry identifier across the system." })), "type": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a custom field value source type." })), "value": Schema.optionalKey(Schema.Struct({}).annotate({ "description": "Represents custom field value." })) }).annotate({ "description": "Represents a list of custom field value objects.", "identifier": "CustomFieldValueDtoV1" });
|
|
132
|
+
export const TimeIntervalDtoV1 = Schema.Struct({ "duration": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]).annotate({ "description": "Represents a time duration." })), "end": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]).annotate({ "description": "Represents an end date in yyyy-MM-ddThh:mm:ssZ format." })), "start": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a start date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "timeZone": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the user's timezone." })), "zonedEnd": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the end time in the user's timezone.", "format": "date-time" })), "zonedStart": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the start time in the user's timezone.", "format": "date-time" })) }).annotate({ "description": "Represents a time interval object.", "identifier": "TimeIntervalDtoV1" });
|
|
133
|
+
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).annotate({ "expected": "a value with a length of at least 1" })) }).annotate({ "identifier": "GetTimeEntriesByIdsRequest" });
|
|
134
|
+
export const TimeEntryId = Schema.Struct({ "dateOfCreationFromObjectId": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })) }).annotate({ "description": "Represents a list of invoiced time entry ids", "identifier": "TimeEntryId" });
|
|
135
|
+
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.", "identifier": "DateRangeV1Request" });
|
|
136
|
+
export const DeleteBalanceAssignmentV1Request = Schema.Struct({ "note": Schema.String.annotate({ "description": "Represents a note explaining balance deletion" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })) }).annotate({ "identifier": "DeleteBalanceAssignmentV1Request" });
|
|
137
|
+
export const PolicyApprovalDto = Schema.Struct({ "requiresApproval": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether it requires approval" })), "specificMembers": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether it requires specific members" })), "teamManagers": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether it requires team manager's approval" })), "userIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents set of user's identifier across the system" })).annotate({ "description": "Represents set of user's identifier across the system" }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))) }).annotate({ "description": "Represents approval settings.", "identifier": "PolicyApprovalDto" });
|
|
138
|
+
export const AutomaticAccrualDto = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents automatic accrual's amount", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "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.", "identifier": "AutomaticAccrualDto" });
|
|
139
|
+
export const NegativeBalanceDto = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "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.", "identifier": "NegativeBalanceDto" });
|
|
140
|
+
export const AutomaticAccrualRequest = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents amount of automatic accrual.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" })), "period": Schema.optionalKey(Schema.Literals(["MONTH", "YEAR"]).annotate({ "description": "Represents automatic accrual period." })) }).annotate({ "description": "Provide automatic accrual settings.", "identifier": "AutomaticAccrualRequest" });
|
|
141
|
+
export const NegativeBalanceRequest = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents negative balance amount.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" })), "period": Schema.optionalKey(Schema.Literals(["MONTH", "YEAR"]).annotate({ "description": "Represents negative balance period." })), "shouldReset": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether negative balance should be reset at the end of the negative balance period." })) }).annotate({ "description": "Provide the negative balance data you would like to use for updating the policy.", "identifier": "NegativeBalanceRequest" });
|
|
142
|
+
export const ChangePolicyStatusRequestV1 = Schema.Struct({ "status": Schema.Literals(["ACTIVE", "ARCHIVED", "ALL"]).annotate({ "description": "Provide the status you would like to use for changing the policy." }) }).annotate({ "identifier": "ChangePolicyStatusRequestV1" });
|
|
143
|
+
export const PeriodV1Request = Schema.Struct({ "days": Schema.optionalKey(Schema.Number.annotate({ "description": "Provide number of days.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(999).annotate({ "expected": "a value less than or equal to 999" }))), "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 period of time off request including start and end date.", "identifier": "PeriodV1Request" });
|
|
144
|
+
export const TimeOffRequestStatus = Schema.Struct({ "changedAt": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "changedAtTimeZone": Schema.optionalKey(Schema.String), "changedByUserId": Schema.optionalKey(Schema.String), "changedByUserName": Schema.optionalKey(Schema.String), "changedForUserName": Schema.optionalKey(Schema.String), "note": Schema.optionalKey(Schema.String), "statusType": Schema.optionalKey(Schema.Literals(["PENDING", "APPROVED", "REJECTED", "ALL"])) }).annotate({ "description": "Represents the status the time off request.", "identifier": "TimeOffRequestStatus" });
|
|
145
|
+
export const Period = Schema.Struct({ "end": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "start": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })) }).annotate({ "identifier": "Period" });
|
|
146
|
+
export const StatusTimeOffRequestV1Request = Schema.Struct({ "note": Schema.optionalKey(Schema.String.annotate({ "description": "Provide the note you would like to use for changing the time off request." })), "status": Schema.optionalKey(Schema.Literals(["APPROVED", "REJECTED"]).annotate({ "description": "Provide the status you would like to use for changing the time off request." })) }).annotate({ "identifier": "StatusTimeOffRequestV1Request" });
|
|
147
|
+
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().annotate({ "expected": "an integer" })).check(Schema.isLessThanOrEqualTo(1000).annotate({ "expected": "a value less than or equal to 1000" }))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(200).annotate({ "expected": "a value less than or equal to 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().annotate({ "expected": "an array with unique items" }))), "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().annotate({ "expected": "an array with unique items" }))), "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().annotate({ "expected": "an array with unique items" }))) }).annotate({ "identifier": "GetTimeOffRequestsV1Request" });
|
|
148
|
+
export const UserRedactedDtoV1 = Schema.Struct({ "id": Schema.optionalKey(Schema.String), "name": Schema.optionalKey(Schema.String) }).annotate({ "description": "Represents a list of assigned team managers for this user group.", "identifier": "UserRedactedDtoV1" });
|
|
149
|
+
export const UserGroupRequest = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a user group name." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" }))) }).annotate({ "identifier": "UserGroupRequest" });
|
|
150
|
+
export const UpdateUserGroupRequest = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a user group name." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" }))) }).annotate({ "identifier": "UpdateUserGroupRequest" });
|
|
151
|
+
export const UserGroupUserRequest = Schema.Struct({ "userId": Schema.String.annotate({ "description": "Represents a user identifier across the system." }) }).annotate({ "identifier": "UserGroupUserRequest" });
|
|
152
|
+
export const StopTimeEntryRequest = Schema.Struct({ "end": Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }) }).annotate({ "identifier": "StopTimeEntryRequest" });
|
|
153
|
+
export const AddUserToWorkspaceRequest = Schema.Struct({ "email": Schema.String.annotate({ "description": "Represents an email address of the user." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })) }).annotate({ "identifier": "AddUserToWorkspaceRequest" });
|
|
154
|
+
export const GetUsersRequestV1 = Schema.Struct({ "accountStatuses": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of users with the corresponding account status filter. If not, this will only filter ACTIVE, PENDING_EMAIL_VERIFICATION, and NOT_REGISTERED Users." })).annotate({ "description": "If provided, you'll get a filtered list of users with the corresponding account status filter. If not, this will only filter ACTIVE, PENDING_EMAIL_VERIFICATION, and NOT_REGISTERED Users." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "email": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of users that contain the provided string in their email address." })), "includeRoles": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If you pass along includeRoles=true, you'll get each user's detailed manager role (including projects and members for whom they're managers)" })), "memberships": Schema.optionalKey(Schema.Literals(["ALL", "NONE", "WORKSPACE", "PROJECT", "USERGROUP"]).annotate({ "description": "If provided, you'll get all users along with workspaces, groups, or projects they have access to." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of users that contain the provided string in their name." })), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a list of users that have access to the project." })), "roles": Schema.optionalKey(Schema.Array(Schema.Literals(["WORKSPACE_ADMIN", "OWNER", "TEAM_MANAGER", "PROJECT_MANAGER"]).annotate({ "description": "If provided, you'll get a filtered list of users that have any of the specified roles. Owners are counted as admins when filtering." })).annotate({ "description": "If provided, you'll get a filtered list of users that have any of the specified roles. Owners are counted as admins when filtering." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "sortColumn": Schema.optionalKey(Schema.Literals(["ID", "EMAIL", "NAME", "NAME_LOWERCASE", "ACCESS", "HOURLYRATE", "COSTRATE"]).annotate({ "description": "Sorting criteria" })), "sortOrder": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"]).annotate({ "description": "Sorting mode" })), "status": Schema.optionalKey(Schema.Literals(["PENDING", "ACTIVE", "DECLINED", "INACTIVE", "ALL"]).annotate({ "description": "If provided, you'll get a filtered list of users with the corresponding status." })), "userGroups": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "If provided, you'll get a list of users that belong to the specified user group IDs." })).annotate({ "description": "If provided, you'll get a list of users that belong to the specified user group IDs." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))) }).annotate({ "identifier": "GetUsersRequestV1" });
|
|
155
|
+
export const UpdateUserStatusRequest = Schema.Struct({ "status": Schema.Literals(["ACTIVE", "INACTIVE"]).annotate({ "description": "Represents membership status." }) }).annotate({ "identifier": "UpdateUserStatusRequest" });
|
|
156
|
+
export const UpsertUserCustomFieldRequestV1 = Schema.Struct({ "value": Schema.optionalKey(Schema.Struct({}).annotate({ "description": "Represents custom field value." })) }).annotate({ "identifier": "UpsertUserCustomFieldRequestV1" });
|
|
157
|
+
export const RoleRequestV1 = Schema.Struct({ "entityId": Schema.String.annotate({ "description": "Represents an entity identifier across the system." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 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" })) }).annotate({ "identifier": "RoleRequestV1" });
|
|
158
|
+
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.", "identifier": "AuthorizationSourceDtoV1" });
|
|
159
|
+
export const CreateWebhookRequestV1 = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a webhook name." }).check(Schema.isMinLength(2).annotate({ "expected": "a value with a length of at least 2" })).check(Schema.isMaxLength(30).annotate({ "expected": "a value with a length of at most 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).annotate({ "expected": "a value with a length of at least 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." }) }).annotate({ "identifier": "CreateWebhookRequestV1" });
|
|
160
|
+
export const UpdateWebhookRequestV1 = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a webhook name." }).check(Schema.isMinLength(2).annotate({ "expected": "a value with a length of at least 2" })).check(Schema.isMaxLength(30).annotate({ "expected": "a value with a length of at most 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 workspace identifier across the system." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 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." }) }).annotate({ "identifier": "UpdateWebhookRequestV1" });
|
|
161
|
+
export const WebhookLogSearchRequestV1 = Schema.Struct({ "from": Schema.optionalKey(Schema.String.annotate({ "description": "Represents date and time in yyyy-MM-ddThh:mm:ssZ format. If provided, results will include logs which occurred after this value.", "format": "date-time" })), "sortByNewest": Schema.optionalKey(Schema.Union([Schema.Boolean, Schema.Null]).annotate({ "description": "If set to true, logs will be sorted with most recent first." })), "status": Schema.optionalKey(Schema.Literals(["ALL", "SUCCEEDED", "FAILED"]).annotate({ "description": "Filters logs by status." })), "to": Schema.optionalKey(Schema.String.annotate({ "description": "Represents date and time in yyyy-MM-ddThh:mm:ssZ format. If provided, results will include logs which occurred before this value.", "format": "date-time" })) }).annotate({ "identifier": "WebhookLogSearchRequestV1" });
|
|
162
|
+
export const WebhookLogDtoV1 = Schema.Struct({ "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents log identifier across the system." })), "requestBody": Schema.optionalKey(Schema.String.annotate({ "description": "Represents request body." })), "respondedAt": Schema.optionalKey(Schema.String.annotate({ "description": "Represents date and time of response." })), "responseBody": Schema.optionalKey(Schema.String.annotate({ "description": "Represents response body." })), "statusCode": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents response status code.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "webhookEventStatusId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents webhook event status identifier across the system." })), "webhookId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents webhook identifier across the system." })) }).annotate({ "identifier": "WebhookLogDtoV1" });
|
|
163
|
+
export const WebhookEventStatusWithLatestLogDtoV1 = Schema.Struct({ "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents log identifier across the system." })), "requestBody": Schema.optionalKey(Schema.String.annotate({ "description": "Represents request body." })), "respondedAt": Schema.optionalKey(Schema.String.annotate({ "description": "Represents date and time of response." })), "responseBody": Schema.optionalKey(Schema.String.annotate({ "description": "Represents response body." })), "retryCount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents how many times we tried to deliver the webhook event.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "status": Schema.optionalKey(Schema.String.annotate({ "description": "Represents delivery status of the webhook event." })), "statusCode": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents response status code.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "webhookId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents log identifier across the system." })), "webhookLogId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents log identifier across the system." })) }).annotate({ "identifier": "WebhookEventStatusWithLatestLogDtoV1" });
|
|
164
|
+
export const CompareBalanceFilter = Schema.Struct({ "filtrationType": Schema.optionalKey(Schema.Literals(["EXACTLY", "LARGER_THAN", "SMALLER_THAN"])), "value": Schema.optionalKey(Schema.String.annotate({ "description": "Represents balance of work (difference between overtime and undertime) in hours, multiplied by 100. For example, if desired value is 1.5h, input should be 150." })) }).annotate({ "identifier": "CompareBalanceFilter" });
|
|
165
|
+
export const CompareBreakFilter = Schema.Struct({ "filtrationType": Schema.optionalKey(Schema.Literals(["EXACTLY", "LARGER_THAN", "SMALLER_THAN"])), "value": Schema.optionalKey(Schema.String.annotate({ "description": "Represents duration of breaks in the day in hours, multiplied by 100. For example, if desired value is 0.5h, input should be 50" })) }).annotate({ "identifier": "CompareBreakFilter" });
|
|
166
|
+
export const CompareCapacityFilter = Schema.Struct({ "filtrationType": Schema.optionalKey(Schema.Literals(["EXACTLY", "LARGER_THAN", "SMALLER_THAN"])), "value": Schema.optionalKey(Schema.String.annotate({ "description": "Represents daily work capacity of user in hours, multiplied by 100. For example, if desired value is 7.5h, input should be 750." })) }).annotate({ "identifier": "CompareCapacityFilter" });
|
|
167
|
+
export const CompareEndFilter = Schema.Struct({ "filtrationType": Schema.optionalKey(Schema.Literals(["EXACTLY", "LARGER_THAN", "SMALLER_THAN"])), "value": Schema.optionalKey(Schema.String.annotate({ "description": "Represents end time in 24-hour notation." })) }).annotate({ "identifier": "CompareEndFilter" });
|
|
168
|
+
export const CompareOvertimeFilter = Schema.Struct({ "filtrationType": Schema.optionalKey(Schema.Literals(["EXACTLY", "LARGER_THAN", "SMALLER_THAN"])), "value": Schema.optionalKey(Schema.String.annotate({ "description": "Represents duration of overtime work (difference between work and capacity - if positive) in hours, multiplied by 100. For example, if desired value is 1.5h, input should be 150." })) }).annotate({ "identifier": "CompareOvertimeFilter" });
|
|
169
|
+
export const CompareStartFilter = Schema.Struct({ "filtrationType": Schema.optionalKey(Schema.Literals(["EXACTLY", "LARGER_THAN", "SMALLER_THAN"])), "value": Schema.optionalKey(Schema.String.annotate({ "description": "Represents start time in 24-hour notation." })) }).annotate({ "identifier": "CompareStartFilter" });
|
|
170
|
+
export const CompareUndertimeFilter = Schema.Struct({ "filtrationType": Schema.optionalKey(Schema.Literals(["EXACTLY", "LARGER_THAN", "SMALLER_THAN"])), "value": Schema.optionalKey(Schema.String.annotate({ "description": "Represents duration of undertime work (difference between work and capacity - if negative) in hours, multiplied by 100. For example, if desired value is 1.5h, input should be 150." })) }).annotate({ "identifier": "CompareUndertimeFilter" });
|
|
171
|
+
export const CompareWorkFilter = Schema.Struct({ "filtrationType": Schema.optionalKey(Schema.Literals(["EXACTLY", "LARGER_THAN", "SMALLER_THAN"])), "value": Schema.optionalKey(Schema.String.annotate({ "description": "Represents duration of completed work for day in hours, multiplied by 100. For example, if desired value is 7.5h, input should be 750." })) }).annotate({ "identifier": "CompareWorkFilter" });
|
|
172
|
+
export const ContainsArchivedFilterV1 = Schema.Struct({ "contains": Schema.optionalKey(Schema.Literals(["CONTAINS", "DOES_NOT_CONTAIN", "CONTAINS_ONLY"]).annotate({ "description": "Represents a contains type." })), "ids": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Filter includes provided list of ids." })).annotate({ "description": "Filter includes provided list of ids." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "status": Schema.optionalKey(Schema.Literals(["ACTIVE", "ARCHIVED", "ALL"]).annotate({ "description": "Filter entities in 'contains' by their status." })) }).annotate({ "identifier": "ContainsArchivedFilterV1" });
|
|
173
|
+
export const CustomFieldFilterV1 = Schema.Struct({ "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a custom field identifier across the system." })), "isEmpty": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the custom field is empty." })), "numberCondition": Schema.optionalKey(Schema.Literals(["EQUAL", "GREATER_THAN", "LESS_THAN"]).annotate({ "description": "Represents a custom field number condition." })), "type": Schema.optionalKey(Schema.Literals(["TXT", "NUMBER", "DROPDOWN_SINGLE", "DROPDOWN_MULTIPLE", "CHECKBOX", "LINK"]).annotate({ "description": "Represents a type of custom field." })), "value": Schema.optionalKey(Schema.Struct({}).annotate({ "description": "Represents a custom field value." })) }).annotate({ "description": "Represents list of time entry custom field filter objects.", "identifier": "CustomFieldFilterV1" });
|
|
174
|
+
export const AuditFilterV1 = Schema.Struct({ "duration": Schema.optionalKey(Schema.Number.annotate({ "description": "Represent audit duration.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "durationShorter": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Represent audit duration shorter." })), "withoutProject": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to filter without a project." })), "withoutTask": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to filter without a task." })) }).annotate({ "identifier": "AuditFilterV1" });
|
|
175
|
+
export const DetailedOptionsV1 = Schema.Struct({ "totals": Schema.optionalKey(Schema.Literals(["CALCULATE", "EXCLUDE"])) }).annotate({ "identifier": "DetailedOptionsV1" });
|
|
176
|
+
export const SummaryFilterV1 = Schema.Struct({ "groups": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents group ids" })).annotate({ "description": "Represents group ids" })), "sortColumn": Schema.optionalKey(Schema.Literals(["GROUP", "DURATION", "AMOUNT", "EARNED", "COST", "PROFIT"]).annotate({ "description": "If provided, you'll get sorted result by provided sort column." })), "summaryChartType": Schema.optionalKey(Schema.Literals(["BILLABILITY", "PROJECT"]).annotate({ "description": "If provided, you'll get sorted result by provided summary chart type." })) }).annotate({ "description": "Represents a summary report filter.", "identifier": "SummaryFilterV1" });
|
|
177
|
+
export const ContainsTagFilterV1 = Schema.Struct({ "containedInTimeentry": Schema.optionalKey(Schema.Literals(["CONTAINS", "DOES_NOT_CONTAIN", "CONTAINS_ONLY"]).annotate({ "description": "If provided, you'll get result filtered by value of contained in time entry." })), "contains": Schema.optionalKey(Schema.Literals(["CONTAINS", "DOES_NOT_CONTAIN", "CONTAINS_ONLY"]).annotate({ "description": "Represents a contains type." })), "ids": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Filter includes provided list of ids." })).annotate({ "description": "Filter includes provided list of ids." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "status": Schema.optionalKey(Schema.Literals(["ACTIVE", "ARCHIVED", "ALL"]).annotate({ "description": "Filter entities in 'contains' by their status." })) }).annotate({ "description": "Represents an object for filtering entries by tags.", "identifier": "ContainsTagFilterV1" });
|
|
178
|
+
export const ContainsTaskFilterV1 = Schema.Struct({ "contains": Schema.optionalKey(Schema.Literals(["CONTAINS", "DOES_NOT_CONTAIN", "CONTAINS_ONLY"]).annotate({ "description": "Represents a contains type." })), "ids": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Filter includes provided list of ids." })).annotate({ "description": "Filter includes provided list of ids." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "status": Schema.optionalKey(Schema.Literals(["ACTIVE", "ARCHIVED", "ALL"]).annotate({ "description": "Filter entities in 'contains' by their status." })) }).annotate({ "description": "Represents filter criteria for expenses associated with tasks.", "identifier": "ContainsTaskFilterV1" });
|
|
179
|
+
export const ContainsUsersFilterV1 = Schema.Struct({ "contains": Schema.optionalKey(Schema.Literals(["CONTAINS", "DOES_NOT_CONTAIN", "CONTAINS_ONLY"]).annotate({ "description": "Represents a contains type." })), "ids": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Filter includes provided list of ids." })).annotate({ "description": "Filter includes provided list of ids." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "status": Schema.optionalKey(Schema.Literals(["ALL", "ACTIVE_WITH_PENDING", "ACTIVE", "PENDING", "INACTIVE"]).annotate({ "description": "Filter entities in 'contains' by their status." })) }).annotate({ "identifier": "ContainsUsersFilterV1" });
|
|
180
|
+
export const WeeklyFilterV1 = Schema.Struct({ "group": Schema.optionalKey(Schema.String.annotate({ "description": "Weekly filter will include group identifier." })), "subgroup": Schema.optionalKey(Schema.String.annotate({ "description": "Weekly filter will include subgroup identifier." })) }).annotate({ "description": "Represents a weekly report filter.", "identifier": "WeeklyFilterV1" });
|
|
181
|
+
export const InvoicingInfo = Schema.Struct({ "invoiceId": Schema.optionalKey(Schema.String), "manuallyInvoiced": Schema.optionalKey(Schema.Boolean) }).annotate({ "description": "Expense's invoicing info.", "identifier": "invoicingInfo" });
|
|
182
|
+
export const ExpenseTotalsDtoV1 = Schema.Struct({ "expensesCount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expenses count", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "totalAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents total amount of expenses", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "totalAmountBillable": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents total billable amount of expenses", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))) }).annotate({ "description": "Represents expense totals", "identifier": "ExpenseTotalsDtoV1" });
|
|
183
|
+
export const UpdateSharedReportRequestV1 = Schema.Struct({ "fixedDate": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the shared report has a fixed date range." })), "isPublic": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the shared report is public." })), "name": Schema.String.annotate({ "description": "Represents a shared reports name." }), "visibleToUserGroups": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Provide user groups ids to which the shared report is visible." })).annotate({ "description": "Provide user groups ids to which the shared report is visible." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "visibleToUsers": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Provide user ids to which the shared report is visible." })).annotate({ "description": "Provide user ids to which the shared report is visible." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))) }).annotate({ "identifier": "UpdateSharedReportRequestV1" });
|
|
184
|
+
export const Authors = Schema.Struct({ "authorIds": Schema.Array(Schema.String.annotate({ "description": "Represents a set of author user ids. Include \"SYSTEM\" in this set to retrieve system related audit logs." })).annotate({ "description": "Represents a set of author user ids. Include \"SYSTEM\" in this set to retrieve system related audit logs." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" })), "contains": Schema.Literals(["CONTAINS", "DOES_NOT_CONTAIN"]) }).annotate({ "description": "Represents the audit log author filter.", "identifier": "authors" });
|
|
185
|
+
export const AuditLogDtoV1 = Schema.Struct({ "action": Schema.optionalKey(Schema.Literals(["CREATE_TIME_PERSONAL_TIMER", "CREATE_TIME_PERSONAL_MANUAL", "CREATE_TIME_IMPORT", "CREATE_TIME_KIOSK", "CREATE_TIME_FOR_OTHER", "RESTORE_TIME", "RESTORE_TIME_FOR_OTHER", "UPDATE_TIME_PERSONAL", "UPDATE_TIME_FOR_OTHER", "DELETE_TIME_PERSONAL", "DELETE_TIME_FOR_OTHER", "CREATE_PROJECT", "CREATE_PROJECT_IMPORT", "CREATE_PROJECT_QUICKBOOKS", "UPDATE_PROJECT", "DELETE_PROJECT", "CREATE_TASK", "CREATE_TASK_IMPORT", "UPDATE_TASK", "DELETE_TASK", "CREATE_CLIENT", "CREATE_CLIENT_IMPORT", "CREATE_CLIENT_QUICKBOOKS", "UPDATE_CLIENT", "DELETE_CLIENT", "CREATE_TAG", "CREATE_TAG_IMPORT", "UPDATE_TAG", "DELETE_TAG", "CREATE_EXPENSE", "CREATE_EXPENSE_FOR_OTHER", "RESTORE_EXPENSE", "RESTORE_EXPENSE_FOR_OTHER", "UPDATE_EXPENSE", "UPDATE_EXPENSE_FOR_OTHER", "DELETE_EXPENSE", "DELETE_EXPENSE_FOR_OTHER"]).annotate({ "description": "Represents an audit log action type." })), "content": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the current value of the modified entity" })), "previousContent": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the previous value of the modified entity." })), "timestamp": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a timestamp of when the audit log entry was created." })), "userEmail": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the email address of the user." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a user identifier across the system." })), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the name of the user." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a workspace identifier across the system." })) }).annotate({ "identifier": "AuditLogDtoV1" });
|
|
186
|
+
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.", "identifier": "UserCustomFieldValueDtoV1" });
|
|
187
|
+
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.", "identifier": "MembershipDtoV1" });
|
|
188
|
+
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).annotate({ "expected": "a value with a length of at least 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().annotate({ "expected": "an integer" }))), "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).annotate({ "expected": "a value with a length of at least 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.", "identifier": "UserSettingsDtoV1" });
|
|
189
|
+
export const BreakSettingsDtoV1 = Schema.Struct({ "breaksEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether breaks is enabled." })), "defaultBreakEntities": Schema.optionalKey(DefaultBreakEntitiesDtoV1) }).annotate({ "description": "Represents the settings for breaks.", "identifier": "BreakSettingsDtoV1" });
|
|
190
|
+
export const EntityCreationPermissionsDtoV1 = Schema.Struct({ "whoCanCreateProjectsAndClients": Schema.optionalKey(EntityCreationPermission), "whoCanCreateTags": Schema.optionalKey(EntityCreationPermission), "whoCanCreateTasks": Schema.optionalKey(EntityCreationPermission) }).annotate({ "description": "Represents an entity creation permission object.", "identifier": "EntityCreationPermissionsDtoV1" });
|
|
191
|
+
export const SchedulingSettingsDtoV1 = Schema.Struct({ "canSeeBillableAndCostAmount": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether billable and cost amount are visible or not." })), "enabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether scheduling is enabled." })), "everyoneCanSeeAllAssignments": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether everyone can see all assignments." })), "whoCanCreateAssignments": Schema.optionalKey(SchedulingAssignmentCreators) }).annotate({ "description": "Represents the settings for scheduling.", "identifier": "SchedulingSettingsDtoV1" });
|
|
192
|
+
export const WebhookDtoV1 = Schema.Struct({ "authToken": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an authentication token." })), "deliveryEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether webhook delivery is enabled or not. It can be disabled if delivery failed for too many times." })), "enabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether webhook is enabled or not." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents webhook identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents webhook name." })), "planEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether webhook is supported by current plan. It can be disabled if number of webhooks exceeds plan limit or if the feature is not supported on current plan." })), "triggerSource": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of trigger sources." })).annotate({ "description": "Represents a list of trigger sources." })), "triggerSourceType": Schema.optionalKey(WebhookEventTriggerSourceType), "url": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "webhookEvent": Schema.optionalKey(WebhookEventType), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "identifier": "WebhookDtoV1" });
|
|
193
|
+
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().annotate({ "expected": "a finite number" }))), "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." })) }).annotate({ "identifier": "AssignmentHydratedDtoV1" });
|
|
194
|
+
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.", "identifier": "ApprovalRequestDtoV1" });
|
|
195
|
+
export const TimeEntryInfoDto = Schema.Struct({ "approvalRequestId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents approval identifier across the system." })), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether time entry is billable or not." })), "costRate": Schema.optionalKey(RateDto), "customFieldValues": Schema.optionalKey(Schema.Array(CustomFieldValueDto).annotate({ "description": "Represents a list of custom field value objects." })), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time entry description." })), "hourlyRate": Schema.optionalKey(RateDto), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time entry identifier across the system." })), "isLocked": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether time entry is locked or not." })), "project": Schema.optionalKey(ProjectInfoDto), "tags": Schema.optionalKey(Schema.Array(TagDto).annotate({ "description": "Represents a list of tag objects." })), "task": Schema.optionalKey(TaskInfoDto), "timeInterval": Schema.optionalKey(TimeIntervalDto), "type": Schema.optionalKey(Schema.Literals(["REGULAR", "BREAK", "HOLIDAY", "TIME_OFF"]).annotate({ "description": "Represents a time entry type enum." })) }).annotate({ "description": "Represents a list of time entry info data transfer objects.", "identifier": "TimeEntryInfoDto" });
|
|
196
|
+
export const TimeEntryWithCustomFieldsDto = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether a time entry is billable." })), "customFieldValues": Schema.optionalKey(Schema.Array(CustomFieldValueDto).annotate({ "description": "Represents a list of custom field value objects." })), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time entry description." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time entry identifier across the system." })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project identifier across the system." })), "tagIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of tag identifiers across the system." })).annotate({ "description": "Represents a list of tag identifiers across the system." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task identifier across the system." })), "timeInterval": Schema.optionalKey(TimeIntervalDto), "type": Schema.optionalKey(Schema.Literals(["REGULAR", "BREAK", "HOLIDAY", "TIME_OFF"]).annotate({ "description": "Represents a time entry type enum." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a user identifier across the system." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a workspace identifier across the system." })) }).annotate({ "description": "Represents a set of template time entries.", "identifier": "TimeEntryWithCustomFieldsDto" });
|
|
197
|
+
export const ExpenseHydratedDto = Schema.Struct({ "approvalRequestId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents approval request identifier across the system." })), "approvalStatus": Schema.optionalKey(Schema.Literals(["PENDING", "APPROVED", "UNSUBMITTED", "REJECTED", "WITHDRAWN_APPROVAL", "WITHDRAWN_SUBMISSION"]).annotate({ "description": "Represents the approval status of the expense" })), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether expense is billable or not." })), "category": Schema.optionalKey(ExpenseCategoryDto), "currency": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a currency." })), "date": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date in yyyy-MM-dd format." })), "detailedApprovalStatus": Schema.optionalKey(Schema.Literals(["PENDING", "APPROVED", "UNSUBMITTED", "REJECTED", "WITHDRAWN_APPROVAL", "WITHDRAWN_SUBMISSION"]).annotate({ "description": "Represents a detailed approval status of the expense" })), "fileId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents file identifier across the system." })), "fileName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents file name." })), "fileUrl": Schema.optionalKey(Schema.String.annotate({ "description": "Represents file URL." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expense identifier across the system." })), "isLocked": Schema.optionalKey(Schema.Boolean.annotate({ "writeOnly": true })), "locked": Schema.optionalKey(Schema.Boolean), "notes": Schema.optionalKey(Schema.String.annotate({ "description": "Represents notes for an expense." })), "project": Schema.optionalKey(ProjectInfoDto), "quantity": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expense quantity as double data type.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "task": Schema.optionalKey(TaskInfoDto), "total": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expense total as double data type.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "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." })) }).annotate({ "description": "Represents a list of expense hydrated data transfer objects.", "identifier": "ExpenseHydratedDto" });
|
|
198
|
+
export const ExpenseHydratedDtoV1 = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether expense is billable or not." })), "category": Schema.optionalKey(ExpenseCategoryDto), "date": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date in yyyy-MM-dd format." })), "fileId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents file identifier across the system." })), "fileName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents file name." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expense identifier across the system." })), "isLocked": Schema.optionalKey(Schema.Boolean.annotate({ "writeOnly": true })), "locked": Schema.optionalKey(Schema.Boolean), "notes": Schema.optionalKey(Schema.String.annotate({ "description": "Represents notes for an expense." })), "project": Schema.optionalKey(ProjectInfoDto), "quantity": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expense quantity as double data type.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "task": Schema.optionalKey(TaskInfoDto), "total": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expense total as double data type.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "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." })) }).annotate({ "description": "Represent a list of hydrated expense objects.", "identifier": "ExpenseHydratedDtoV1" });
|
|
199
|
+
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." })) }).annotate({ "identifier": "CustomFieldDtoV1" });
|
|
200
|
+
export const PageableCollectionLogBinDocumentDto = Schema.Struct({ "response": Schema.optionalKey(Schema.Array(LogBinDocumentDto)) }).annotate({ "identifier": "PageableCollectionLogBinDocumentDto" });
|
|
201
|
+
export const ExpenseCategoriesWithCountDtoV1 = Schema.Struct({ "categories": Schema.optionalKey(Schema.Array(ExpenseCategoryDtoV1).annotate({ "description": "Represents a list of expense categories data transfer object." })), "count": Schema.optionalKey(Schema.Number.annotate({ "description": "Indicates the number of expense categories returned.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))) }).annotate({ "identifier": "ExpenseCategoriesWithCountDtoV1" });
|
|
202
|
+
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().annotate({ "expected": "an array with unique items" }))), "userIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Indicates which users are included." })).annotate({ "description": "Indicates which users are included." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "identifier": "HolidayDtoV1" });
|
|
203
|
+
export const AutomaticTimeEntryCreationRequest = Schema.Struct({ "defaultEntities": DefaultEntitiesRequest, "enabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates that automatic time entry creation is enabled." })) }).annotate({ "description": "Provides automatic time entry creation settings.", "identifier": "AutomaticTimeEntryCreationRequest" });
|
|
204
|
+
export const AddUsersToProjectRequestV1 = Schema.Struct({ "remove": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Setting this flag to 'true' will remove the given users from the project." })), "userGroups": Schema.optionalKey(UserGroupIdsSchema), "userIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents array of user ids which should be added/removed." })).annotate({ "description": "Represents array of user ids which should be added/removed." })) }).annotate({ "identifier": "AddUsersToProjectRequestV1" });
|
|
205
|
+
export const AutomaticTimeEntryCreationDto = Schema.Struct({ "defaultEntities": Schema.optionalKey(DefaultEntitiesDto), "enabled": Schema.optionalKey(Schema.Boolean) }).annotate({ "description": "Represents automatic time entry creation settings.", "identifier": "AutomaticTimeEntryCreationDto" });
|
|
206
|
+
export const InvoicesListDtoV1 = Schema.Struct({ "invoices": Schema.optionalKey(Schema.Array(InvoiceDtoV1).annotate({ "description": "Represents a list of invoices." })), "total": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the total invoice count.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))) }).annotate({ "identifier": "InvoicesListDtoV1" });
|
|
207
|
+
export const ImportTimeEntriesAndExpensesRequestV1 = Schema.Struct({ "expenseFieldsForDetailedGroup": Schema.optionalKey(Schema.Array(Schema.Literals(["PROJECT", "TASK", "CATEGORY", "NOTE", "DATE", "USER"]).annotate({ "description": "Represents a set of expense fields to include when using the DETAILED expense grouping type." })).annotate({ "description": "Represents a set of expense fields to include when using the DETAILED expense grouping type." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "expensesGroupBy": Schema.optionalKey(Schema.Literals(["CATEGORY", "PROJECT", "USER"]).annotate({ "description": "Represents a group field when using the GROUPED expense group type." })), "expensesGroupType": Schema.optionalKey(Schema.Literals(["GROUPED", "DETAILED"]).annotate({ "description": "Represents an expense group type." })), "from": Schema.String.annotate({ "description": "Represents date and time in the yyyy-MM-ddThh:mm:ssZ format." }), "importExpenses": Schema.Boolean.annotate({ "description": "Indicates if billable expenses should be imported alongside time entries." }), "projectFilter": ContainsArchivedFilterRequest, "roundTimeEntryDuration": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates if imported time entry durations should be rounded to the nearest 15 minute interval." })), "timeEntryFieldsForDetailedGroup": Schema.optionalKey(Schema.Array(Schema.Literals(["PROJECT", "TASK", "TAGS", "DESCRIPTION", "DATE", "USER"]).annotate({ "description": "Represents a set of time entry fields to include when using DETAILED time entry grouping type." })).annotate({ "description": "Represents a set of time entry fields to include when using DETAILED time entry grouping type." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "timeEntryGroupType": Schema.Literals(["SINGLE_ITEM", "GROUPED", "DETAILED"]).annotate({ "description": "Represents a time entry group type." }), "timeEntryPrimaryGroupBy": Schema.optionalKey(Schema.Literals(["USER", "PROJECT", "DATE"]).annotate({ "description": "Represents a primary group field when using the GROUPED time entry grouping type." })), "timeEntrySecondaryGroupBy": Schema.optionalKey(Schema.Literals(["PROJECT", "USER", "TASK", "DATE", "DESCRIPTION", "NONE"]).annotate({ "description": "Represents a secondary group field when using the GROUPED time entry grouping type. Should not have the same grouping type as the primary group field." })), "to": Schema.String.annotate({ "description": "Represents date and time in the yyyy-MM-ddThh:mm:ssZ format." }) }).annotate({ "identifier": "ImportTimeEntriesAndExpensesRequestV1" });
|
|
208
|
+
export const InvoiceFilterRequestV1 = Schema.Struct({ "clients": Schema.optionalKey(ContainsArchivedFilterRequest), "companies": Schema.optionalKey(BaseFilterRequest), "exactAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice amount. If provided, you'll get a filtered list of invoices that has the equal amount as specified.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "exactBalance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice balance. If provided, you'll get a filtered list of invoices that has the equal balance as specified.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "greaterThanAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice amount. If provided, you'll get a filtered list of invoices that has amount greater than specified.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "greaterThanBalance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice balance. If provided, you'll get a filtered list of invoices that has balance greater than specified.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "invoiceNumber": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of invoices that contain the provided string in their invoice number." })), "issueDate": Schema.optionalKey(TimeRangeRequestDtoV1), "lessThanAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice amount. If provided, you'll get a filtered list of invoices that has amount less than specified.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "lessThanBalance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice balance. If provided, you'll get a filtered list of invoices that has balance less than specified.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "sortColumn": Schema.optionalKey(Schema.Literals(["ID", "CLIENT", "DUE_ON", "ISSUE_DATE", "AMOUNT", "BALANCE"]).annotate({ "description": "Represents the column name to be used as sorting criteria." })), "sortOrder": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"]).annotate({ "description": "Represents the sorting order." })), "statuses": Schema.optionalKey(Schema.Array(Schema.Literals(["UNSENT", "SENT", "PAID", "PARTIALLY_PAID", "VOID", "OVERDUE"]).annotate({ "description": "Represents a list of invoice statuses. If provided, you'll get a filtered list of invoices that matches any of the invoice status provided." })).annotate({ "description": "Represents a list of invoice statuses. If provided, you'll get a filtered list of invoices that matches any of the invoice status provided." })), "strictSearch": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to toggle on/off strict search mode. When set to true, search by invoice number only will return invoices whose number exactly matches the string value given for the 'invoiceNumber' parameter. When set to false, results will also include invoices whose number contain the string value, but could be longer than the string value itself. For example, if there is an invoice with the number '123456', and the search value is '123', setting strict-name-search to true will not return that invoice in the results, whereas setting it to false will." })) }).annotate({ "identifier": "InvoiceFilterRequestV1" });
|
|
209
|
+
export const InvoiceInfoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "balance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice balance amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "billFrom": Schema.optionalKey(Schema.String.annotate({ "description": "Represents to whom an invoice is billed from." })), "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client identifier across the system." })), "clientName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client name for an invoice." })), "currency": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the currency used by the invoice." })), "daysOverdue": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the number of days an invoice is overdue.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "dueDate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice due date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice identifier across the system." })), "issuedDate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice issued date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "number": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice number." })), "paid": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice paid amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "status": Schema.optionalKey(Schema.Literals(["UNSENT", "SENT", "PAID", "PARTIALLY_PAID", "VOID", "OVERDUE"]).annotate({ "description": "Represents the status of an invoice." })), "visibleZeroFields": Schema.optionalKey(VisibleZeroFieldsInvoice) }).annotate({ "description": "Represents a list of invoice info.", "identifier": "InvoiceInfoV1" });
|
|
210
|
+
export const InvoiceSettingsDtoV1 = Schema.Struct({ "defaults": Schema.optionalKey(InvoiceDefaultSettingsDto), "exportFields": Schema.optionalKey(InvoiceExportFields), "labels": Schema.optionalKey(LabelsCustomization) }).annotate({ "identifier": "InvoiceSettingsDtoV1" });
|
|
211
|
+
export const UpdateInvoiceSettingsRequestV1 = Schema.Struct({ "defaults": Schema.optionalKey(InvoiceDefaultSettingsRequestV1), "exportFields": Schema.optionalKey(InvoiceExportFieldsRequest), "labels": LabelsCustomizationRequest }).annotate({ "identifier": "UpdateInvoiceSettingsRequestV1" });
|
|
212
|
+
export const InvoiceItemDto = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents item amount.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "applyTaxes": Schema.optionalKey(ApplyTaxes), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice item description." })), "expenseIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of imported expense ids." })).annotate({ "description": "Represents a list of imported expense ids." })), "importType": Schema.optionalKey(Schema.Literals(["NOT_IMPORTED", "TIME_ENTRY_IMPORT", "EXPENSE_IMPORT"]).annotate({ "description": "Represents the invoice item import type." })), "itemType": Schema.optionalKey(Schema.String.annotate({ "description": "Represents item type." })), "order": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an integer.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "quantity": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents item quantity.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "timeEntryIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of imported time entry ids." })).annotate({ "description": "Represents a list of imported time entry ids." })), "unitPrice": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents item unit price.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))) }).annotate({ "description": "Represents a list of invoice item datatransfer objects.", "identifier": "InvoiceItemDto" });
|
|
213
|
+
export const UpdateInvoiceRequestV1 = Schema.Struct({ "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client identifier across the system." })), "companyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents company identifier across the system." })), "currency": Schema.String.annotate({ "description": "Represents the currency used by the invoice." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" })), "discountPercent": Schema.Number.annotate({ "description": "Represents an invoice discount percent as double.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" })), "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" }), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice note." })), "number": Schema.String.annotate({ "description": "Represents an invoice number." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "subject": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice subject." })), "tax2Percent": Schema.Number.annotate({ "description": "Represents an invoice tax 2 percent as double.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" })), "taxPercent": Schema.Number.annotate({ "description": "Represents an invoice tax percent as double.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" })), "taxType": Schema.optionalKey(TaxType), "visibleZeroFields": Schema.optionalKey(Schema.Literals(["TAX", "TAX_2", "DISCOUNT"]).annotate({ "description": "Represents a list of zero value invoice fields that will be visible." })) }).annotate({ "identifier": "UpdateInvoiceRequestV1" });
|
|
214
|
+
export const LimitedUserRequest = Schema.Struct({ "costRate": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents cost rate of user. Example: 12300 for 123", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" }))), "hourlyRate": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents hourly rate of user. Example: 12300 for 123", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" }))), "name": Schema.String.annotate({ "description": "Represents name of the user." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "userCustomFields": Schema.optionalKey(Schema.Array(UpsertUserCustomFieldRequest).annotate({ "description": "Represents a list of upsert user custom field request." })), "userGroups": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents the user group names of the user" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" }))).annotate({ "description": "Represents the user group names of the user" }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a day of the week." })), "workCapacity": Schema.optionalKey(Schema.String.annotate({ "description": "Represents work capacity as a time duration in the ISO-8601 format." })), "workingDays": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a list of days of the week." })) }).annotate({ "identifier": "LimitedUserRequest" });
|
|
215
|
+
export const MemberProfileFullRequestV1 = Schema.Struct({ "imageUrl": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an image url. A field that can only be updated for limited users." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "This body field is deprecated and can only be updated for limited users. Represents name of the user and can be changed on the CAKE.com Account profile page." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" }))), "removeProfileImage": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to remove profile image or not. A field that can only be updated for limited users." })), "userCustomFields": Schema.optionalKey(Schema.Array(UpsertUserCustomFieldRequest).annotate({ "description": "Represents a list of upsert user custom field objects." })), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a day of the week." })), "workCapacity": Schema.optionalKey(Schema.String.annotate({ "description": "Represents work capacity as a time duration in the ISO-8601 format. For example, for a 7hr work day, input should be PT7H." })), "workingDays": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a list of days of the week." })) }).annotate({ "identifier": "MemberProfileFullRequestV1" });
|
|
216
|
+
export const UpdateProjectRequest = 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." })), "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents 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}$")).annotate({ "expected": "a string matching the RegExp ^#(?:[0-9a-fA-F]{6}){1}$" }))), "costRate": Schema.optionalKey(CostRateRequestV1), "costRateSet": Schema.optionalKey(Schema.Boolean), "hourlyRate": Schema.optionalKey(HourlyRateRequestV1), "hourlyRateSet": Schema.optionalKey(Schema.Boolean), "isPublic": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is public or not.\n\n**Important note:** setting a project to private requires at least a Basic plan.\n If you are on a Free plan, you must explicitly set this value to `true`.\n You can upgrade your current plan to unlock private projects.\n" })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project name." }).check(Schema.isMinLength(2).annotate({ "expected": "a value with a length of at least 2" })).check(Schema.isMaxLength(250).annotate({ "expected": "a value with a length of at most 250" }))), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project note." }).check(Schema.isMaxLength(16384).annotate({ "expected": "a value with a length of at most 16384" }))) }).annotate({ "identifier": "UpdateProjectRequest" });
|
|
217
|
+
export const UserIdWithRatesRequest = Schema.Struct({ "costRate": Schema.optionalKey(CostRateRequestV1), "hourlyRate": Schema.optionalKey(HourlyRateRequestV1), "userId": Schema.String.annotate({ "description": "Represents user identifier across the system." }) }).annotate({ "description": "Represents a list of users with id and rates request objects.", "identifier": "UserIdWithRatesRequest" });
|
|
218
|
+
export const MembershipRequest = Schema.Struct({ "hourlyRate": Schema.optionalKey(HourlyRateRequest), "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." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })) }).annotate({ "description": "Represents a list of membership request objects.", "identifier": "MembershipRequest" });
|
|
219
|
+
export const TaskRequest = Schema.Struct({ "assigneeId": Schema.optionalKey(Schema.String), "assigneeIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents list of assignee ids for the task." })).annotate({ "description": "Represents list of assignee ids for the task." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether task is billable or not" })), "budgetEstimate": Schema.optionalKey(Schema.Number.annotate({ "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" }))), "costRate": Schema.optionalKey(CostRateRequest), "estimate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task duration estimate." })), "hourlyRate": Schema.optionalKey(HourlyRateRequest), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task identifier across the system." })), "name": Schema.String.annotate({ "description": "Represents task name." }), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "status": Schema.optionalKey(Schema.String), "userGroupIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents list of user group ids for the task." })).annotate({ "description": "Represents list of user group ids for the task." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))) }).annotate({ "description": "Represents a list of task request objects.", "identifier": "TaskRequest" });
|
|
220
|
+
export const ProjectEstimateRequest = Schema.Struct({ "budgetEstimate": Schema.optionalKey(EstimateWithOptionsRequest), "estimateReset": Schema.optionalKey(EstimateResetRequest), "timeEstimate": Schema.optionalKey(TimeEstimateRequest) }).annotate({ "identifier": "ProjectEstimateRequest" });
|
|
221
|
+
export const TaskDtoV1 = Schema.Struct({ "assigneeId": Schema.optionalKey(Schema.String), "assigneeIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents list of assignee ids for the task." })).annotate({ "description": "Represents list of assignee ids for the task." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether a task is billable or not." })), "budgetEstimate": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a task budget estimate as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "costRate": Schema.optionalKey(RateDtoV1), "duration": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task duration." })), "estimate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task duration estimate." })), "hourlyRate": Schema.optionalKey(RateDtoV1), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task name." })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "status": Schema.optionalKey(TaskStatus), "userGroupIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents list of user group ids for the task." })).annotate({ "description": "Represents list of user group ids for the task." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))) }).annotate({ "identifier": "TaskDtoV1" });
|
|
222
|
+
export const SchedulingProjectsTotalsDtoV1 = Schema.Struct({ "assignments": Schema.optionalKey(Schema.Array(AssignmentPerDayDto).annotate({ "description": "Represents a list of assignment per day objects." })), "clientName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project name." })), "milestones": Schema.optionalKey(Schema.Array(MilestoneDto).annotate({ "description": "Represents a list of milestone objects." })), "projectArchived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is archived or not." })), "projectBillable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is billable or not." })), "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." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task identifier across the system." })), "taskName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task name." })), "totalHours": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents project total hours as double.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "identifier": "SchedulingProjectsTotalsDtoV1" });
|
|
223
|
+
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." })) }).annotate({ "identifier": "PublishAssignmentsRequestV1" });
|
|
224
|
+
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().annotate({ "expected": "an integer" }))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isLessThanOrEqualTo(200).annotate({ "expected": "a value less than or equal to 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) }).annotate({ "identifier": "GetUserTotalsRequestV1" });
|
|
225
|
+
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().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(2).annotate({ "expected": "a value less than or equal to 2" }))), "monthlyRecurringType": Schema.optionalKey(MonthlyRecurringType), "occurrences": Schema.optionalKey(Schema.Number.annotate({ "description": "Number of occurrences", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(99).annotate({ "expected": "a value less than or equal to 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({ "expected": "an integer" }))) }).annotate({ "description": "Represents recurring assignment object.", "identifier": "RecurringAssignmentDtoV1" });
|
|
226
|
+
export const CreateRecurringAssignmentRequestV1 = Schema.Struct({ "frequency": Schema.optionalKey(RecurringFrequency), "interval": Schema.optionalKey(Schema.Union([Schema.Number.check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(2).annotate({ "expected": "a value less than or equal to 2" })), Schema.Null]).annotate({ "description": "Represents interval for recurring (1 - every week/month, 2 - biweekly).", "format": "int32" })), "monthlyRecurringType": Schema.optionalKey(MonthlyRecurringType), "occurrences": Schema.optionalKey(Schema.Union([Schema.Number.check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(99).annotate({ "expected": "a value less than or equal to 99" })), Schema.Null]).annotate({ "description": "Indicates number of occurrences for assignment.", "format": "int32" })), "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().annotate({ "expected": "an integer" }))) }).annotate({ "identifier": "CreateRecurringAssignmentRequestV1" });
|
|
227
|
+
export const RecurringAssignmentRequestV1 = Schema.Struct({ "frequency": Schema.optionalKey(RecurringFrequency), "interval": Schema.optionalKey(Schema.Union([Schema.Number.check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(2).annotate({ "expected": "a value less than or equal to 2" })), Schema.Null]).annotate({ "description": "Represents interval for recurring (1 - every week/month, 2 - biweekly).", "format": "int32" })), "monthlyRecurringType": Schema.optionalKey(MonthlyRecurringType), "occurrences": Schema.optionalKey(Schema.Union([Schema.Number.check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(99).annotate({ "expected": "a value less than or equal to 99" })), Schema.Null]).annotate({ "description": "Indicates number of occurrences for assignment.", "format": "int32" })), "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().annotate({ "expected": "an integer" }))) }).annotate({ "identifier": "RecurringAssignmentRequestV1" });
|
|
228
|
+
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().annotate({ "expected": "a finite number" }))), "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." })) }).annotate({ "identifier": "SchedulingUsersTotalsDtoV1" });
|
|
229
|
+
export const TemplateRequest = Schema.Struct({ "name": Schema.String.annotate({ "description": "Represents a template name." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 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().annotate({ "expected": "an array with unique items" }))), "timeViewMode": Schema.optionalKey(Schema.String), "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" })) }).annotate({ "identifier": "TemplateRequest" });
|
|
230
|
+
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).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(10).annotate({ "expected": "a value with a length of at most 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).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(50).annotate({ "expected": "a value with a length of at most 50" }))), "description": Schema.String.annotate({ "description": "Represents time entry description." }).check(Schema.isMaxLength(3000).annotate({ "expected": "a value with a length of at most 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." })) }).annotate({ "identifier": "CreateTimeEntryRequest" });
|
|
231
|
+
export const UpdateTimeEntryRequest = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether a time entry is billable or not." })), "customFields": Schema.optionalKey(Schema.Array(UpdateCustomFieldRequest).annotate({ "description": "Represents a list of value objects for user’s custom fields." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(50).annotate({ "expected": "a value with a length of at most 50" }))), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time entry description." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(3000).annotate({ "expected": "a value with a length of at most 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({ "identifier": "UpdateTimeEntryRequest" });
|
|
232
|
+
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).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(50).annotate({ "expected": "a value with a length of at most 50" }))), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time entry description." }).check(Schema.isMinLength(0).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(3000).annotate({ "expected": "a value with a length of at most 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).annotate({ "expected": "a value with a length of at least 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"])) }).annotate({ "identifier": "UpdateTimeEntryBulkRequest" });
|
|
233
|
+
export const TimeEntryDtoImplV1 = Schema.Struct({ "billable": Schema.Boolean.annotate({ "description": "Indicates whether a time entry is billable." }), "customFieldValues": Schema.optionalKey(Schema.Array(CustomFieldValueDtoV1).annotate({ "description": "Represents a list of custom field value objects." })), "description": Schema.String.annotate({ "description": "Represents time entry description." }), "id": Schema.String.annotate({ "description": "Represents time entry identifier across the system." }), "isLocked": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Represents whether time entry is locked for modification." })), "kioskId": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]).annotate({ "description": "Represents kiosk identifier across the system." })), "projectId": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]).annotate({ "description": "Represents project identifier across the system." })), "tagIds": Schema.optionalKey(Schema.Union([Schema.Array(Schema.String), Schema.Null]).annotate({ "description": "Represents a list of tag identifiers across the system." })), "taskId": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]).annotate({ "description": "Represents task identifier across the system." })), "timeInterval": TimeIntervalDtoV1, "type": Schema.optionalKey(Schema.Literals(["REGULAR", "BREAK", "HOLIDAY", "TIME_OFF"]).annotate({ "description": "Represents a time entry type enum." })), "userId": Schema.String.annotate({ "description": "Represents user identifier across the system." }), "workspaceId": Schema.String.annotate({ "description": "Represents workspace identifier across the system." }) }).annotate({ "identifier": "TimeEntryDtoImplV1" });
|
|
234
|
+
export const TimeEntryWithRatesDtoV1 = Schema.Struct({ "billable": Schema.Boolean.annotate({ "description": "Indicates whether a time entry is billable." }), "costRate": Schema.optionalKey(RateDtoV1), "customFieldValues": Schema.optionalKey(Schema.Array(CustomFieldValueDtoV1).annotate({ "description": "Represents a list of custom field value objects." })), "description": Schema.String.annotate({ "description": "Represents time entry description." }), "hourlyRate": Schema.optionalKey(RateDtoV1), "id": Schema.String.annotate({ "description": "Represents time entry identifier across the system." }), "isLocked": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Represents whether time entry is locked for modification." })), "kioskId": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]).annotate({ "description": "Represents kiosk identifier across the system." })), "projectId": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]).annotate({ "description": "Represents project identifier across the system." })), "tagIds": Schema.optionalKey(Schema.Union([Schema.Array(Schema.String), Schema.Null]).annotate({ "description": "Represents a list of tag identifiers across the system." })), "taskId": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]).annotate({ "description": "Represents task identifier across the system." })), "timeInterval": TimeIntervalDtoV1, "type": Schema.optionalKey(Schema.Literals(["REGULAR", "BREAK", "HOLIDAY", "TIME_OFF"]).annotate({ "description": "Represents a time entry type enum." })), "userId": Schema.String.annotate({ "description": "Represents user identifier across the system." }), "workspaceId": Schema.String.annotate({ "description": "Represents workspace identifier across the system." }) }).annotate({ "identifier": "TimeEntryWithRatesDtoV1" });
|
|
235
|
+
export const TimeEntryDtoV1 = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether a time entry is billable." })), "customFieldValues": Schema.optionalKey(Schema.Array(CustomFieldValueDtoV1).annotate({ "description": "Represents a list of custom field value objects." })), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time entry description." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time entry identifier across the system." })), "isLocked": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Represents whether time entry is locked for modification." })), "kioskId": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]).annotate({ "description": "Represents kiosk identifier across the system." })), "projectId": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]).annotate({ "description": "Represents project identifier across the system." })), "tagIds": Schema.optionalKey(Schema.Union([Schema.Array(Schema.String), Schema.Null]).annotate({ "description": "Represents a list of tag identifiers across the system." })), "taskId": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null]).annotate({ "description": "Represents task identifier across the system." })), "timeInterval": Schema.optionalKey(TimeIntervalDtoV1), "type": Schema.optionalKey(Schema.Literals(["REGULAR", "BREAK", "HOLIDAY", "TIME_OFF"]).annotate({ "description": "Represents a time entry type enum." })), "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." })) }).annotate({ "identifier": "TimeEntryDtoV1" });
|
|
236
|
+
export const UpdateInvoicedStatusRequest = Schema.Struct({ "invoiced": Schema.Boolean.annotate({ "description": "Indicates whether time entry is invoiced or not." }), "timeEntryIds": Schema.Array(TimeEntryId).annotate({ "description": "Represents a list of invoiced time entry ids" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })).check(Schema.isUnique().annotate({ "expected": "an array with unique items" })) }).annotate({ "identifier": "UpdateInvoicedStatusRequest" });
|
|
237
|
+
export const CreateBalanceAssignmentV1Request = Schema.Struct({ "balance": Schema.Number.annotate({ "description": "Represents the amount of balance to be created", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" })).check(Schema.isLessThanOrEqualTo(10000).annotate({ "expected": "a value less than or equal to 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).annotate({ "expected": "a value with a length of at least 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).annotate({ "expected": "a value with a length of at least 1" })).check(Schema.isUnique().annotate({ "expected": "an array with unique items" })) }).annotate({ "identifier": "CreateBalanceAssignmentV1Request" });
|
|
238
|
+
export const UpdateBalanceAssignmentV1Request = Schema.Struct({ "balanceChange": Schema.Number.annotate({ "description": "Represents the change in balance of the balance assignment", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" })).check(Schema.isGreaterThanOrEqualTo(-10000).annotate({ "expected": "a value greater than or equal to -10000" })).check(Schema.isLessThanOrEqualTo(10000).annotate({ "expected": "a value less than or equal to 10000" })), "dateRange": Schema.optionalKey(DateRangeV1Request), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents note attached to updating balance." })) }).annotate({ "identifier": "UpdateBalanceAssignmentV1Request" });
|
|
239
|
+
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).annotate({ "expected": "a value with a length of at least 1" })).check(Schema.isUnique().annotate({ "expected": "an array with unique items" })), "value": Schema.Number.annotate({ "description": "Represents the change in balance value.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" })).check(Schema.isGreaterThanOrEqualTo(-10000).annotate({ "expected": "a value greater than or equal to -10000" })).check(Schema.isLessThanOrEqualTo(10000).annotate({ "expected": "a value less than or equal to 10000" })) }).annotate({ "identifier": "UpdateBalanceRequestV1" });
|
|
240
|
+
export const TimeOffRequestPeriodV1Request = Schema.Struct({ "halfDayPeriod": Schema.optionalKey(Schema.Literals(["FIRST_HALF", "SECOND_HALF", "NOT_DEFINED"]).annotate({ "description": "Represents the half day period." })), "isHalfDay": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether time off is half day." })), "period": PeriodV1Request, "timeOffHalfDayPeriod": Schema.optionalKey(Schema.Literals(["FIRST_HALF", "SECOND_HALF", "NOT_DEFINED"])) }).annotate({ "description": "Provide the period you would like to use for creating the time off request. If `timeZone` isn't set, should be aligned with time zone for user in settings. Can be shifted from user time zone with explicit setting of `timeZone`.", "identifier": "TimeOffRequestPeriodV1Request" });
|
|
241
|
+
export const TimeOffRequestPeriodDto = Schema.Struct({ "halfDay": Schema.optionalKey(Schema.Boolean), "halfDayHours": Schema.optionalKey(Period), "halfDayPeriod": Schema.optionalKey(Schema.String), "period": Schema.optionalKey(Period) }).annotate({ "description": "Represents the period the time off request.", "identifier": "TimeOffRequestPeriodDto" });
|
|
242
|
+
export const UserGroupDtoV1 = Schema.Struct({ "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a user group identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a user group name." })), "teamManagers": Schema.optionalKey(Schema.Array(UserRedactedDtoV1).annotate({ "description": "Represents a list of assigned team managers for this user group." })), "userIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of users' identifiers across the system." })).annotate({ "description": "Represents a list of users' identifiers across the system." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a workspace identifier across the system." })) }).annotate({ "identifier": "UserGroupDtoV1" });
|
|
243
|
+
export const RoleDtoV1 = Schema.Struct({ "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents role identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a role name." })), "source": Schema.optionalKey(AuthorizationSourceDtoV1) }).annotate({ "description": "Represents a role data transfer object.", "identifier": "RoleDtoV1" });
|
|
244
|
+
export const AttendanceFilterV1 = Schema.Struct({ "balanceFilters": Schema.optionalKey(Schema.Array(CompareBalanceFilter)), "breakFilters": Schema.optionalKey(Schema.Array(CompareBreakFilter)), "capacityFilters": Schema.optionalKey(Schema.Array(CompareCapacityFilter)), "endFilters": Schema.optionalKey(Schema.Array(CompareEndFilter)), "groups": Schema.optionalKey(Schema.Array(Schema.String).annotate({ "writeOnly": true })), "hasTimeOff": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, report will include time off hours." })), "overtimeFilters": Schema.optionalKey(Schema.Array(CompareOvertimeFilter)), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Specifies page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Specifies page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "sortColumn": Schema.optionalKey(Schema.Literals(["GROUP", "USER", "DATE", "START", "END", "BREAK", "WORK", "CAPACITY", "OVERTIME", "UNDERTIME", "BALANCE", "TIME_OFF"])), "startFilters": Schema.optionalKey(Schema.Array(CompareStartFilter)), "undertimeFilters": Schema.optionalKey(Schema.Array(CompareUndertimeFilter)), "workFilters": Schema.optionalKey(Schema.Array(CompareWorkFilter)) }).annotate({ "description": "Represents an attendance report filter.", "identifier": "AttendanceFilterV1" });
|
|
245
|
+
export const DetailedFilterV1 = Schema.Struct({ "auditFilter": Schema.optionalKey(AuditFilterV1), "options": Schema.optionalKey(DetailedOptionsV1), "page": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "sortColumn": Schema.optionalKey(Schema.Literals(["ID", "DESCRIPTION", "USER", "DURATION", "DATE", "ZONED_DATE", "NATURAL", "USER_DATE"]).annotate({ "description": "If provided, you'll get sorted result by sort column." })) }).annotate({ "description": "Represents a detailed report filter.", "identifier": "DetailedFilterV1" });
|
|
246
|
+
export const ExpenseReportFilterV1 = Schema.Struct({ "approvalState": Schema.optionalKey(Schema.Literals(["APPROVED", "UNAPPROVED", "ALL"]).annotate({ "description": "Represents an approval state" })), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether report is billable" })), "categories": Schema.optionalKey(ContainsArchivedFilterV1), "clients": Schema.optionalKey(ContainsArchivedFilterV1), "currency": Schema.optionalKey(ContainsArchivedFilterV1), "dateRangeEnd": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "dateRangeStart": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "dateRangeType": Schema.optionalKey(Schema.Literals(["ABSOLUTE", "TODAY", "YESTERDAY", "THIS_WEEK", "LAST_WEEK", "PAST_TWO_WEEKS", "THIS_MONTH", "LAST_MONTH", "THIS_YEAR", "LAST_YEAR"]).annotate({ "description": "Represents date range type of expense report" })), "exportType": Schema.optionalKey(Schema.Literals(["JSON", "JSON_V1", "PDF", "CSV", "XLSX", "ZIP"]).annotate({ "description": "Represents an export type" })), "invoicingState": Schema.optionalKey(Schema.Literals(["INVOICED", "UNINVOICED", "ALL"]).annotate({ "description": "Represents an invoicing state" })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a search term for filtering report entries by note" })), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "projects": Schema.optionalKey(ContainsArchivedFilterV1), "sortColumn": Schema.optionalKey(Schema.Literals(["ID", "PROJECT", "USER", "CATEGORY", "DATE", "AMOUNT"]).annotate({ "description": "Represents expenses sort column" })), "sortOrder": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"]).annotate({ "description": "Represents a sort order" })), "tasks": Schema.optionalKey(ContainsTaskFilterV1), "timeZone": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time zone" })), "userGroups": Schema.optionalKey(ContainsUsersFilterV1), "userLocale": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a user locale" })), "users": Schema.optionalKey(ContainsUsersFilterV1), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents week start" })), "withoutNote": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to 'true', report will only include entries with empty note" })), "zoomLevel": Schema.optionalKey(Schema.Literals(["WEEK", "MONTH", "YEAR"]).annotate({ "description": "Represents a zoom level" })) }).annotate({ "identifier": "ExpenseReportFilterV1" });
|
|
247
|
+
export const ExpenseReportDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expenses amount.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "approvalRequestId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents approval request identifier across the system." })), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the expenses is billable." })), "categoryHasUnitPrice": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether category has unit price." })), "categoryId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents category identifier across the system." })), "categoryName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents category's name." })), "categoryUnit": Schema.optionalKey(Schema.String.annotate({ "description": "Represents category's unit." })), "date": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expenses date in YYYY-MM-DDTHH:MM:SS.ssssssZ format." })), "exportFields": Schema.optionalKey(Schema.Array(Schema.Literals(["PROJECT", "CLIENT", "TASK", "DESCRIPTION", "USER", "TAGS", "START_DATE", "START_TIME", "END_TIME", "DURATION", "BILLABLE_AMOUNT", "COST_AMOUNT", "PROFIT", "EMAIL", "BILLABLE", "BILLABLE_H", "NON_BILLABLE_H", "END_DATE", "DECIMAL_DURATION", "BILLABLE_RATE", "COST_RATE", "APPROVAL", "APPROVAL_SUBMISSION_DATE", "APPROVAL_SUBMISSION_TIME", "APPROVAL_DATE", "APPROVAL_TIME", "BAR_CHART", "PIE_CHART_1", "PIE_CHART_2", "PIE_CHART_3", "RTL", "TOTAL", "SUBGROUP", "GROUP", "DATE", "TIME", "CATEGORY", "NOTE", "AMOUNT", "INVOICED", "INVOICE_ID", "CATEGORY_NO_OF_UNITS", "CATEGORY_UNIT", "KIOSK", "KIOSK_QR_CODE", "TYPE", "BREAK", "NOTES", "BILLABLE_TOTAL", "RECEIPTS", "EXPENSE_TOTAL", "DATE_OF_CREATION", "DATE_OF_APPROVAL", "NAME", "ROLE", "PROJECTS", "STATUS", "WEEK_START", "WORKING_DAYS", "TEAM_MANAGERS", "TEAM_MEMBERS", "DAILY_WORK_CAPACITY", "VISIBILITY", "BILLABILITY", "TASKS", "TRACKED_H", "ESTIMATED_H", "REMAINING_H", "OVERAGE_H", "TRACKED_BUDGET", "ESTIMATED_BUDGET", "REMAINING_BUDGET", "OVERAGE_BUDGET", "PROGRESS", "RECURRING_ESTIMATE", "EXPENSES", "BILLABLE_EXPENSES", "NON_BILLABLE_EXPENSES", "ADDITIONAL_FIELDS", "PROJECT_MEMBERS", "PROJECT_MANAGER", "APPROVED_BY", "ISSUE_DATE", "DUE_ON", "BALANCE"]).annotate({ "description": "Represents export fields." })).annotate({ "description": "Represents export fields." })), "fileId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents file identifier across the system." })), "fileName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expenses file name." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expenses identifier across the system." })), "invoicingInfo": Schema.optionalKey(InvoicingInfo), "locked": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the expenses is locked." })), "notes": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expenses note." })), "projectColor": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project's color" })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "projectName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project's name." })), "quantity": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expenses quantity", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "reportName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expense name." })), "time": Schema.optionalKey(Schema.String.annotate({ "description": "Represents expense time." })), "userEmail": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user's email." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user's name." })), "userStatus": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user's status." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "description": "Represents list of expenses", "identifier": "ExpenseReportDtoV1" });
|
|
248
|
+
export const AuditLogGetRequestV1 = Schema.Struct({ "actions": Schema.Array(Schema.Literals(["CREATE_TIME_PERSONAL_TIMER", "CREATE_TIME_PERSONAL_MANUAL", "CREATE_TIME_IMPORT", "CREATE_TIME_KIOSK", "CREATE_TIME_FOR_OTHER", "RESTORE_TIME", "RESTORE_TIME_FOR_OTHER", "UPDATE_TIME_PERSONAL", "UPDATE_TIME_FOR_OTHER", "DELETE_TIME_PERSONAL", "DELETE_TIME_FOR_OTHER", "CREATE_PROJECT", "CREATE_PROJECT_IMPORT", "CREATE_PROJECT_QUICKBOOKS", "UPDATE_PROJECT", "DELETE_PROJECT", "CREATE_TASK", "CREATE_TASK_IMPORT", "UPDATE_TASK", "DELETE_TASK", "CREATE_CLIENT", "CREATE_CLIENT_IMPORT", "CREATE_CLIENT_QUICKBOOKS", "UPDATE_CLIENT", "DELETE_CLIENT", "CREATE_TAG", "CREATE_TAG_IMPORT", "UPDATE_TAG", "DELETE_TAG", "CREATE_EXPENSE", "CREATE_EXPENSE_FOR_OTHER", "RESTORE_EXPENSE", "RESTORE_EXPENSE_FOR_OTHER", "UPDATE_EXPENSE", "UPDATE_EXPENSE_FOR_OTHER", "DELETE_EXPENSE", "DELETE_EXPENSE_FOR_OTHER"]).annotate({ "description": "Represents a set of audit log actions." })).annotate({ "description": "Represents a set of audit log actions." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })).check(Schema.isUnique().annotate({ "expected": "an array with unique items" })), "authors": Authors, "end": Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format." }), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(0).annotate({ "expected": "a value greater than or equal to 0" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(50).annotate({ "expected": "a value less than or equal to 50" }))), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }) }).annotate({ "identifier": "AuditLogGetRequestV1" });
|
|
249
|
+
export const PageableV1ListAuditLogDtoV1 = Schema.Struct({ "response": Schema.optionalKey(Schema.Array(AuditLogDtoV1)) }).annotate({ "identifier": "PageableV1ListAuditLogDtoV1" });
|
|
250
|
+
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 }).annotate({ "identifier": "ProjectDtoV1" });
|
|
251
|
+
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." })) }).annotate({ "identifier": "ProjectDtoImplV1" });
|
|
252
|
+
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) }).annotate({ "identifier": "UserDtoV1" });
|
|
253
|
+
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." })), "approvalSettings": Schema.optionalKey(TimeApprovalSettingsDtoV1), "auditLogSettings": Schema.optionalKey(AuditLogSettingsDtoV1), "automaticLock": Schema.optionalKey(AutomaticLockDtoV1), "breakSettings": Schema.optionalKey(BreakSettingsDtoV1), "canManagerEditUsersTime": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether manager can edit user's time." })), "canManagerLaunchKiosk": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether manager can launch kiosk." })), "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." })), "companyAddress": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the company address." })), "currencyFormat": Schema.optionalKey(Schema.Literals(["CURRENCY_SPACE_VALUE", "VALUE_SPACE_CURRENCY", "CURRENCY_VALUE", "VALUE_CURRENCY"]).annotate({ "description": "Represents a clockify currency format enum." })), "customLabels": Schema.optionalKey(CustomLabelsDtoV1), "decimalFormat": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Set decimalFormat alongside trackTimeDownToSecond to manage Time Duration Format as explained in class description" })), "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), "expenseApprovalSettings": Schema.optionalKey(ExpenseApprovalSettingsDtoV1), "expensesEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether expenses is enabled." })), "favoriteEntriesEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether favorite entries is enabled." })), "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." })), "highResolutionScreenshots": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether high resolution screenshots is enabled." })), "invoicingEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether invoicing is enabled." })), "isCostRateActive": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether cost rate is active." })), "isProjectPublicByDefault": Schema.optionalKey(Schema.Boolean), "kioskAuthType": Schema.optionalKey(Schema.Literals(["PIN_4_DIGITS", "PIN_6_DIGITS", "QR_CODE"]).annotate({ "description": "Represents a kiosk authentication type enum." })), "kioskAutologinEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether auto login in kiosk is enabled." })), "kioskEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether kiosk is enabled." })), "kioskPhotoCaptureEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether photo capture in kiosk is enabled." })), "kioskProjectsAndTasksEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether projects and tasks in kiosk is enabled." })), "locationsEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether locations is enabled." })), "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." })), "onlyAdminsSeeProjectStatus": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can see project status." })), "onlyAdminsSeePublicProjectsEntries": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can see public project entries." })), "overtimeCalculationPeriod": Schema.optionalKey(Schema.Literals(["DAILY", "WEEKLY", "MONTHLY"]).annotate({ "description": "Represents the overtime calculation period." })), "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), "schedulingEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether scheduling is enabled." })), "schedulingSettings": Schema.optionalKey(SchedulingSettingsDtoV1), "screenshotsEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether screenshots is enabled." })), "taskBillableEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether task billable is enabled." })), "taskLabel": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task label." })), "taskRateEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether task rate is enabled." })), "timeApprovalEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether time approval is enabled." })), "timeOff": Schema.optionalKey(TimeOffDtoV1), "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." })), "timeViewMode": Schema.optionalKey(Schema.Literals(["TIME_SENSITIVE_VIEW", "AGGREGATED_TIME_VIEW"]).annotate({ "description": "Represents the time view mode." })), "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." })), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a day of the week." })), "whitelistedForAggregateView": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether whitelisted for aggregate view." })), "workCapacity": Schema.optionalKey(Schema.String.annotate({ "description": "ISO 8601 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({ "expected": "an array with unique items" }))) }).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", "identifier": "WorkspaceSettingsDtoV1" });
|
|
254
|
+
export const WebhooksDtoV1 = Schema.Struct({ "webhooks": Schema.optionalKey(Schema.Array(WebhookDtoV1).annotate({ "description": "Represents a list of webhook objects for the workspace." })), "workspaceWebhookCount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents number of webhooks for the workspace.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))) }).annotate({ "identifier": "WebhooksDtoV1" });
|
|
255
|
+
export const TemplateDtoImpl = Schema.Struct({ "entries": Schema.optionalKey(Schema.Array(TimeEntryWithCustomFieldsDto).annotate({ "description": "Represents a set of template time entries." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a template identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a template name." })), "projectsAndTasks": Schema.optionalKey(Schema.Array(ProjectTaskTupleDto).annotate({ "description": "Represents a list of template's projects and tasks." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a user identifier across the system." })), "weekStart": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a day of the week.", "format": "date" })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a workspace identifier across the system." })) }).annotate({ "identifier": "TemplateDtoImpl" });
|
|
256
|
+
export const ApprovalDetailsDtoV1 = Schema.Struct({ "approvalRequest": Schema.optionalKey(ApprovalRequestDtoV1), "approvedTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time duration." })), "billableAmount": Schema.optionalKey(Schema.Number.annotate({ "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "billableTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time duration." })), "breakTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time duration." })), "costAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an amount.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "entries": Schema.optionalKey(Schema.Array(TimeEntryInfoDto).annotate({ "description": "Represents a list of time entry info data transfer objects." })), "expenseTotal": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an amount.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "expenses": Schema.optionalKey(Schema.Array(ExpenseHydratedDto).annotate({ "description": "Represents a list of expense hydrated data transfer objects." })), "pendingTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time duration." })), "trackedTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time duration." })) }).annotate({ "identifier": "ApprovalDetailsDtoV1" });
|
|
257
|
+
export const ExpensesWithCountDtoV1 = Schema.Struct({ "count": Schema.optionalKey(Schema.Number.annotate({ "description": "Represent result count.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "expenses": Schema.optionalKey(Schema.Array(ExpenseHydratedDtoV1).annotate({ "description": "Represent a list of hydrated expense objects." })) }).annotate({ "description": "Represents an expense with count data transfer object.", "identifier": "ExpensesWithCountDtoV1" });
|
|
258
|
+
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.", "identifier": "UserCustomFieldValueFullDtoV1" });
|
|
259
|
+
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}$")).annotate({ "expected": "a string matching the 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).annotate({ "expected": "a value with a length of at least 2" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" })), "occursAnnually": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday occurs annually." })), "userGroups": Schema.optionalKey(UserGroupIdsSchema), "users": Schema.optionalKey(UserIdsSchema) }).annotate({ "identifier": "CreateHolidayRequestV1" });
|
|
260
|
+
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}$")).annotate({ "expected": "a string matching the 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).annotate({ "expected": "a value with a length of at least 1" })), "occursAnnually": Schema.Boolean.annotate({ "description": "Indicates whether the holiday occurs annually." }), "userGroups": Schema.optionalKey(ContainsUserGroupFilterRequest), "users": Schema.optionalKey(ContainsUsersFilterRequestForHoliday) }).annotate({ "identifier": "UpdateHolidayRequestV1" });
|
|
261
|
+
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}$")).annotate({ "expected": "a string matching the 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).annotate({ "expected": "a value with a length of at least 2" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 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) }).annotate({ "identifier": "CreatePolicyRequestV1" });
|
|
262
|
+
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}$")).annotate({ "expected": "a string matching the 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).annotate({ "expected": "a value with a length of at least 2" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" })), "negativeBalance": Schema.optionalKey(NegativeBalanceRequest), "userGroups": Schema.optionalKey(UserGroupIdsSchema), "users": Schema.optionalKey(UserIdsSchema) }).annotate({ "identifier": "UpdatePolicyRequestV1" });
|
|
263
|
+
export const HolidayDto = Schema.Struct({ "autoImportHolidaySettingDto": Schema.optionalKey(AutoImportHolidaySettingDto), "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." })), "countryName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents imported public holiday country name." })), "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." })), "imported": Schema.optionalKey(Schema.Boolean), "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().annotate({ "expected": "an array with unique items" }))), "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().annotate({ "expected": "an array with unique items" }))), "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." })) }).annotate({ "identifier": "HolidayDto" });
|
|
264
|
+
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().annotate({ "expected": "an array with unique items" }))), "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().annotate({ "expected": "an array with unique items" }))), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "identifier": "PolicyDtoV1" });
|
|
265
|
+
export const InvoiceInfoResponseDtoV1 = Schema.Struct({ "invoices": Schema.optionalKey(Schema.Array(InvoiceInfoV1).annotate({ "description": "Represents a list of invoice info." })), "total": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the total invoice count.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))) }).annotate({ "identifier": "InvoiceInfoResponseDtoV1" });
|
|
266
|
+
export const InvoiceOverviewDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "balance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice balance amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "billFrom": Schema.optionalKey(Schema.String.annotate({ "description": "Represents to whom the invoice should be billed from." })), "calculationType": Schema.optionalKey(CalculationType), "clientAddress": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client address." })), "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client identifier across the system." })), "clientName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client name for an invoice." })), "companyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents company identifier across the system." })), "containsImportedExpenses": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether invoice contains imported expenses." })), "containsImportedTimes": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether invoice contains imported items." })), "currency": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the currency used by the invoice." })), "discount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice discount amount as double.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "discountAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice discount amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "dueDate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice due date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents invoice identifier across the system." })), "issuedDate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice issued date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "items": Schema.optionalKey(Schema.Array(InvoiceItemDto).annotate({ "description": "Represents a list of invoice item datatransfer objects." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice note." })), "number": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice number." })), "paid": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice paid amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "status": Schema.optionalKey(Schema.Literals(["UNSENT", "SENT", "PAID", "PARTIALLY_PAID", "VOID", "OVERDUE"]).annotate({ "description": "Represents the status of an invoice." })), "subject": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice subject." })), "subtotal": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice subtotal as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "tax": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice tax amount as double.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "tax2": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice tax amount as double.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "tax2Amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice tax amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "taxAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice tax amount as long.", "format": "int64" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "taxType": Schema.optionalKey(TaxType), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "visibleZeroFields": Schema.optionalKey(VisibleZeroFieldsInvoice) }).annotate({ "identifier": "InvoiceOverviewDtoV1" });
|
|
267
|
+
export const AddLimitedUsersRequest = Schema.Struct({ "users": Schema.Array(LimitedUserRequest).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })).check(Schema.isMaxLength(250).annotate({ "expected": "a value with a length of at most 250" })) }).annotate({ "identifier": "AddLimitedUsersRequest" });
|
|
268
|
+
export const UpdateProjectMembershipsRequest = Schema.Struct({ "memberships": Schema.Array(UserIdWithRatesRequest).annotate({ "description": "Represents a list of users with id and rates request objects." }), "userGroups": Schema.optionalKey(UserGroupIdsSchema) }).annotate({ "identifier": "UpdateProjectMembershipsRequest" });
|
|
269
|
+
export const ProjectRequest = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is billable or not." })), "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents 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}$")).annotate({ "expected": "a string matching the RegExp ^#(?:[0-9a-fA-F]{6}){1}$" }))), "costRate": Schema.optionalKey(CostRateRequestV1), "estimate": Schema.optionalKey(EstimateRequest), "hourlyRate": Schema.optionalKey(HourlyRateRequestV1), "isPublic": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is public or not." })), "memberships": Schema.optionalKey(Schema.Array(MembershipRequest).annotate({ "description": "Represents a list of membership request objects." })), "name": Schema.String.annotate({ "description": "Represents a project name." }).check(Schema.isMinLength(2).annotate({ "expected": "a value with a length of at least 2" })).check(Schema.isMaxLength(250).annotate({ "expected": "a value with a length of at most 250" })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project note." }).check(Schema.isMaxLength(16384).annotate({ "expected": "a value with a length of at most 16384" }))), "tasks": Schema.optionalKey(Schema.Array(TaskRequest).annotate({ "description": "Represents a list of task request objects." })) }).annotate({ "identifier": "ProjectRequest" });
|
|
270
|
+
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().annotate({ "expected": "an array with unique items" }))), "hoursPerDay": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents assignment total hours per day.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "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." })) }).annotate({ "identifier": "AssignmentDtoV1" });
|
|
271
|
+
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().annotate({ "expected": "a finite number" })), "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).annotate({ "expected": "a value with a length of at least 0" })).check(Schema.isMaxLength(100).annotate({ "expected": "a value with a length of at most 100" }))), "projectId": Schema.String.annotate({ "description": "Represents a project identifier across the system." }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 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).annotate({ "expected": "a value with a length of at least 1" })) }).annotate({ "identifier": "AssignmentCreateRequestV1" });
|
|
272
|
+
export const CreateTimeOffRequestV1Request = Schema.Struct({ "note": Schema.optionalKey(Schema.String.annotate({ "description": "Provide the note you would like to use for creating the time off request." })), "timeOffPeriod": TimeOffRequestPeriodV1Request }).annotate({ "identifier": "CreateTimeOffRequestV1Request" });
|
|
273
|
+
export const TimeOffRequestFullV1Dto = Schema.Struct({ "balance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the time off balance.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "balanceDiff": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the balance difference.", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "createdAt": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the date when time off request is created. It is in format YYYY-MM-DDTHH:MM:SS.ssssssZ", "format": "date-time" })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time off requester identifier across the system." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the note of the time off request." })), "policyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents policy identifier across the system." })), "policyName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the policy name of the time off request." })), "requesterUserId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents requester user's id." })), "requesterUserName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents requester user's username." })), "status": Schema.optionalKey(TimeOffRequestStatus), "timeOffPeriod": Schema.optionalKey(TimeOffRequestPeriodDto), "timeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Represents the time unit of the time off request." })), "userEmail": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user's email" })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user's username." })), "userTimeZone": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user's time zone" })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "description": "Represents the array of time off requests.", "identifier": "TimeOffRequestFullV1Dto" });
|
|
274
|
+
export const TimeOffRequestV1Dto = Schema.Struct({ "balanceDiff": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the balance difference", "format": "double" }).check(Schema.isFinite().annotate({ "expected": "a finite number" }))), "createdAt": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the date when time off request is created. Date is in format YYYY-MM-DDTHH:MM:SS.ssssssZ", "format": "date-time" })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time off requester identifier across the system." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the note of the time off request." })), "policyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents policy identifier across the system." })), "status": Schema.optionalKey(TimeOffRequestStatus), "timeOffPeriod": Schema.optionalKey(TimeOffRequestPeriodDto), "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." })) }).annotate({ "identifier": "TimeOffRequestV1Dto" });
|
|
275
|
+
export const RoleDetailsDtoV1 = Schema.Struct({ "role": Schema.optionalKey(RoleDtoV1), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "identifier": "RoleDetailsDtoV1" });
|
|
276
|
+
export const AttendanceReportFilterV1 = Schema.Struct({ "amountShown": Schema.optionalKey(Schema.Literals(["EARNED", "COST", "PROFIT", "HIDE_AMOUNT", "EXPORT"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided amount shown." })), "amounts": Schema.optionalKey(Schema.Array(Schema.Literals(["EARNED", "COST", "PROFIT", "HIDE_AMOUNT", "EXPORT"]))), "approvalState": Schema.optionalKey(Schema.Literals(["APPROVED", "UNAPPROVED", "ALL"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided approval state." })), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report is archived" })), "attendanceFilter": AttendanceFilterV1, "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report is billable" })), "clients": Schema.optionalKey(ContainsArchivedFilterV1), "currency": Schema.optionalKey(ContainsArchivedFilterV1), "customFields": Schema.optionalKey(Schema.Array(CustomFieldFilterV1)), "dateFormat": Schema.optionalKey(Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DD" })), "dateRangeEnd": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "dateRangeStart": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "dateRangeType": Schema.optionalKey(Schema.Literals(["ABSOLUTE", "TODAY", "YESTERDAY", "THIS_WEEK", "LAST_WEEK", "PAST_TWO_WEEKS", "THIS_MONTH", "LAST_MONTH", "THIS_YEAR", "LAST_YEAR"]).annotate({ "description": "Provide the date range type" })), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents search term for filtering report entries by description" })), "detailedFilter": Schema.optionalKey(DetailedFilterV1), "exportType": Schema.optionalKey(Schema.Literals(["JSON", "JSON_V1", "PDF", "CSV", "XLSX", "ZIP"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided export type." })), "invoicingState": Schema.optionalKey(Schema.Literals(["INVOICED", "UNINVOICED", "ALL"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided invoicing state." })), "projects": Schema.optionalKey(ContainsArchivedFilterV1), "rounding": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report filter is rounding" })), "sortOrder": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"]).annotate({ "description": "If provided, you'll get sorted result by provided sort order." })), "summaryFilter": Schema.optionalKey(SummaryFilterV1), "tags": Schema.optionalKey(ContainsTagFilterV1), "tasks": Schema.optionalKey(ContainsTaskFilterV1), "timeFormat": Schema.optionalKey(Schema.String.annotate({ "description": "Provide time in format THH:MM:SS.ssssss" })), "timeZone": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get filtered result including reports with provided time zone." })), "userGroups": Schema.optionalKey(ContainsUsersFilterV1), "userLocale": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get filtered result including reports with provided user locale." })), "users": Schema.optionalKey(ContainsUsersFilterV1), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided week start." })), "weeklyFilter": Schema.optionalKey(WeeklyFilterV1), "withoutDescription": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to 'true', report will only include entries with empty description" })), "zoomLevel": Schema.optionalKey(Schema.Literals(["WEEK", "MONTH", "YEAR"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided zoom level." })) }).annotate({ "identifier": "AttendanceReportFilterV1" });
|
|
277
|
+
export const DetailedReportFilterV1 = Schema.Struct({ "amountShown": Schema.optionalKey(Schema.Literals(["EARNED", "COST", "PROFIT", "HIDE_AMOUNT", "EXPORT"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided amount shown." })), "amounts": Schema.optionalKey(Schema.Array(Schema.Literals(["EARNED", "COST", "PROFIT", "HIDE_AMOUNT", "EXPORT"]))), "approvalState": Schema.optionalKey(Schema.Literals(["APPROVED", "UNAPPROVED", "ALL"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided approval state." })), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report is archived" })), "attendanceFilter": Schema.optionalKey(AttendanceFilterV1), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report is billable" })), "clients": Schema.optionalKey(ContainsArchivedFilterV1), "currency": Schema.optionalKey(ContainsArchivedFilterV1), "customFields": Schema.optionalKey(Schema.Array(CustomFieldFilterV1)), "dateFormat": Schema.optionalKey(Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DD" })), "dateRangeEnd": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "dateRangeStart": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "dateRangeType": Schema.optionalKey(Schema.Literals(["ABSOLUTE", "TODAY", "YESTERDAY", "THIS_WEEK", "LAST_WEEK", "PAST_TWO_WEEKS", "THIS_MONTH", "LAST_MONTH", "THIS_YEAR", "LAST_YEAR"]).annotate({ "description": "Provide the date range type" })), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents search term for filtering report entries by description" })), "detailedFilter": DetailedFilterV1, "exportType": Schema.optionalKey(Schema.Literals(["JSON", "JSON_V1", "PDF", "CSV", "XLSX", "ZIP"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided export type." })), "invoicingState": Schema.optionalKey(Schema.Literals(["INVOICED", "UNINVOICED", "ALL"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided invoicing state." })), "projects": Schema.optionalKey(ContainsArchivedFilterV1), "rounding": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report filter is rounding" })), "sortOrder": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"]).annotate({ "description": "If provided, you'll get sorted result by provided sort order." })), "summaryFilter": Schema.optionalKey(SummaryFilterV1), "tags": Schema.optionalKey(ContainsTagFilterV1), "tasks": Schema.optionalKey(ContainsTaskFilterV1), "timeFormat": Schema.optionalKey(Schema.String.annotate({ "description": "Provide time in format THH:MM:SS.ssssss" })), "timeZone": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get filtered result including reports with provided time zone." })), "userCustomFields": Schema.optionalKey(Schema.Array(CustomFieldFilterV1).annotate({ "writeOnly": true })), "userGroups": Schema.optionalKey(ContainsUsersFilterV1), "userLocale": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get filtered result including reports with provided user locale." })), "users": Schema.optionalKey(ContainsUsersFilterV1), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided week start." })), "weeklyFilter": Schema.optionalKey(WeeklyFilterV1), "withoutDescription": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to 'true', report will only include entries with empty description" })), "zoomLevel": Schema.optionalKey(Schema.Literals(["WEEK", "MONTH", "YEAR"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided zoom level." })) }).annotate({ "identifier": "DetailedReportFilterV1" });
|
|
278
|
+
export const SummaryReportFilterV1 = Schema.Struct({ "amountShown": Schema.optionalKey(Schema.Literals(["EARNED", "COST", "PROFIT", "HIDE_AMOUNT", "EXPORT"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided amount shown." })), "amounts": Schema.optionalKey(Schema.Array(Schema.Literals(["EARNED", "COST", "PROFIT", "HIDE_AMOUNT", "EXPORT"]))), "approvalState": Schema.optionalKey(Schema.Literals(["APPROVED", "UNAPPROVED", "ALL"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided approval state." })), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report is archived" })), "attendanceFilter": Schema.optionalKey(AttendanceFilterV1), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report is billable" })), "clients": Schema.optionalKey(ContainsArchivedFilterV1), "currency": Schema.optionalKey(ContainsArchivedFilterV1), "customFields": Schema.optionalKey(Schema.Array(CustomFieldFilterV1)), "dateFormat": Schema.optionalKey(Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DD" })), "dateRangeEnd": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "dateRangeStart": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "dateRangeType": Schema.optionalKey(Schema.Literals(["ABSOLUTE", "TODAY", "YESTERDAY", "THIS_WEEK", "LAST_WEEK", "PAST_TWO_WEEKS", "THIS_MONTH", "LAST_MONTH", "THIS_YEAR", "LAST_YEAR"]).annotate({ "description": "Provide the date range type" })), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents search term for filtering report entries by description" })), "detailedFilter": Schema.optionalKey(DetailedFilterV1), "exportType": Schema.optionalKey(Schema.Literals(["JSON", "JSON_V1", "PDF", "CSV", "XLSX", "ZIP"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided export type." })), "invoicingState": Schema.optionalKey(Schema.Literals(["INVOICED", "UNINVOICED", "ALL"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided invoicing state." })), "projects": Schema.optionalKey(ContainsArchivedFilterV1), "rounding": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report filter is rounding" })), "sortOrder": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"]).annotate({ "description": "If provided, you'll get sorted result by provided sort order." })), "summaryFilter": SummaryFilterV1, "tags": Schema.optionalKey(ContainsTagFilterV1), "tasks": Schema.optionalKey(ContainsTaskFilterV1), "timeFormat": Schema.optionalKey(Schema.String.annotate({ "description": "Provide time in format THH:MM:SS.ssssss" })), "timeZone": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get filtered result including reports with provided time zone." })), "userCustomFields": Schema.optionalKey(Schema.Array(CustomFieldFilterV1).annotate({ "writeOnly": true })), "userGroups": Schema.optionalKey(ContainsUsersFilterV1), "userLocale": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get filtered result including reports with provided user locale." })), "users": Schema.optionalKey(ContainsUsersFilterV1), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided week start." })), "weeklyFilter": Schema.optionalKey(WeeklyFilterV1), "withoutDescription": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to 'true', report will only include entries with empty description" })), "zoomLevel": Schema.optionalKey(Schema.Literals(["WEEK", "MONTH", "YEAR"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided zoom level." })) }).annotate({ "identifier": "SummaryReportFilterV1" });
|
|
279
|
+
export const WeeklyReportFilterV1 = Schema.Struct({ "amountShown": Schema.optionalKey(Schema.Literals(["EARNED", "COST", "PROFIT", "HIDE_AMOUNT", "EXPORT"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided amount shown." })), "amounts": Schema.optionalKey(Schema.Array(Schema.Literals(["EARNED", "COST", "PROFIT", "HIDE_AMOUNT", "EXPORT"]))), "approvalState": Schema.optionalKey(Schema.Literals(["APPROVED", "UNAPPROVED", "ALL"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided approval state." })), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report is archived" })), "attendanceFilter": Schema.optionalKey(AttendanceFilterV1), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report is billable" })), "clients": Schema.optionalKey(ContainsArchivedFilterV1), "currency": Schema.optionalKey(ContainsArchivedFilterV1), "customFields": Schema.optionalKey(Schema.Array(CustomFieldFilterV1)), "dateFormat": Schema.optionalKey(Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DD" })), "dateRangeEnd": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "dateRangeStart": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "dateRangeType": Schema.optionalKey(Schema.Literals(["ABSOLUTE", "TODAY", "YESTERDAY", "THIS_WEEK", "LAST_WEEK", "PAST_TWO_WEEKS", "THIS_MONTH", "LAST_MONTH", "THIS_YEAR", "LAST_YEAR"]).annotate({ "description": "Provide the date range type" })), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents search term for filtering report entries by description" })), "detailedFilter": Schema.optionalKey(DetailedFilterV1), "exportType": Schema.optionalKey(Schema.Literals(["JSON", "JSON_V1", "PDF", "CSV", "XLSX", "ZIP"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided export type." })), "invoicingState": Schema.optionalKey(Schema.Literals(["INVOICED", "UNINVOICED", "ALL"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided invoicing state." })), "projects": Schema.optionalKey(ContainsArchivedFilterV1), "rounding": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report filter is rounding" })), "sortOrder": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"]).annotate({ "description": "If provided, you'll get sorted result by provided sort order." })), "summaryFilter": Schema.optionalKey(SummaryFilterV1), "tags": Schema.optionalKey(ContainsTagFilterV1), "tasks": Schema.optionalKey(ContainsTaskFilterV1), "timeFormat": Schema.optionalKey(Schema.String.annotate({ "description": "Provide time in format THH:MM:SS.ssssss" })), "timeZone": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get filtered result including reports with provided time zone." })), "userCustomFields": Schema.optionalKey(Schema.Array(CustomFieldFilterV1).annotate({ "writeOnly": true })), "userGroups": Schema.optionalKey(ContainsUsersFilterV1), "userLocale": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get filtered result including reports with provided user locale." })), "users": Schema.optionalKey(ContainsUsersFilterV1), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided week start." })), "weeklyFilter": WeeklyFilterV1, "withoutDescription": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to 'true', report will only include entries with empty description" })), "zoomLevel": Schema.optionalKey(Schema.Literals(["WEEK", "MONTH", "YEAR"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided zoom level." })) }).annotate({ "identifier": "WeeklyReportFilterV1" });
|
|
280
|
+
export const ReportFilterV1 = Schema.Struct({ "amountShown": Schema.optionalKey(Schema.Literals(["EARNED", "COST", "PROFIT", "HIDE_AMOUNT", "EXPORT"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided amount shown." })), "amounts": Schema.optionalKey(Schema.Array(Schema.Literals(["EARNED", "COST", "PROFIT", "HIDE_AMOUNT", "EXPORT"]))), "approvalState": Schema.optionalKey(Schema.Literals(["APPROVED", "UNAPPROVED", "ALL"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided approval state." })), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report is archived" })), "attendanceFilter": Schema.optionalKey(AttendanceFilterV1), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report is billable" })), "clients": Schema.optionalKey(ContainsArchivedFilterV1), "currency": Schema.optionalKey(ContainsArchivedFilterV1), "customFields": Schema.optionalKey(Schema.Array(CustomFieldFilterV1)), "dateFormat": Schema.optionalKey(Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DD" })), "dateRangeEnd": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "dateRangeStart": Schema.String.annotate({ "description": "Provide date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" }).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" })), "dateRangeType": Schema.optionalKey(Schema.Literals(["ABSOLUTE", "TODAY", "YESTERDAY", "THIS_WEEK", "LAST_WEEK", "PAST_TWO_WEEKS", "THIS_MONTH", "LAST_MONTH", "THIS_YEAR", "LAST_YEAR"]).annotate({ "description": "Provide the date range type" })), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents search term for filtering report entries by description" })), "detailedFilter": Schema.optionalKey(DetailedFilterV1), "exportType": Schema.optionalKey(Schema.Literals(["JSON", "JSON_V1", "PDF", "CSV", "XLSX", "ZIP"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided export type." })), "invoicingState": Schema.optionalKey(Schema.Literals(["INVOICED", "UNINVOICED", "ALL"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided invoicing state." })), "projects": Schema.optionalKey(ContainsArchivedFilterV1), "rounding": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the report filter is rounding" })), "sortOrder": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"]).annotate({ "description": "If provided, you'll get sorted result by provided sort order." })), "summaryFilter": Schema.optionalKey(SummaryFilterV1), "tags": Schema.optionalKey(ContainsTagFilterV1), "tasks": Schema.optionalKey(ContainsTaskFilterV1), "timeFormat": Schema.optionalKey(Schema.String.annotate({ "description": "Provide time in format THH:MM:SS.ssssss" })), "timeZone": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get filtered result including reports with provided time zone." })), "userCustomFields": Schema.optionalKey(Schema.Array(CustomFieldFilterV1).annotate({ "writeOnly": true })), "userGroups": Schema.optionalKey(ContainsUsersFilterV1), "userLocale": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get filtered result including reports with provided user locale." })), "users": Schema.optionalKey(ContainsUsersFilterV1), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided week start." })), "weeklyFilter": Schema.optionalKey(WeeklyFilterV1), "withoutDescription": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to 'true', report will only include entries with empty description" })), "zoomLevel": Schema.optionalKey(Schema.Literals(["WEEK", "MONTH", "YEAR"]).annotate({ "description": "If provided, you'll get filtered result including reports with provided zoom level." })) }).annotate({ "identifier": "ReportFilterV1" });
|
|
281
|
+
export const ExpenseDetailedReportDtoV1 = Schema.Struct({ "expenses": Schema.optionalKey(Schema.Array(ExpenseReportDtoV1).annotate({ "description": "Represents list of expenses" })), "totals": Schema.optionalKey(ExpenseTotalsDtoV1) }).annotate({ "description": "report", "identifier": "ExpenseDetailedReportDtoV1" });
|
|
282
|
+
export const WorkspaceDtoV1 = Schema.Struct({ "cakeOrganizationId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the Cake organization identifier across the system." })), "costRate": Schema.optionalKey(RateDtoV1), "currencies": Schema.optionalKey(Schema.Array(CurrencyWithDefaultInfoDtoV1).annotate({ "description": "Represents currency with default info object." })), "featureSubscriptionType": Schema.optionalKey(FeaturePlan), "features": Schema.optionalKey(Feature), "hourlyRate": Schema.optionalKey(HourlyRateDtoV1), "id": Schema.String.annotate({ "description": "Represents workspace identifier across the system." }), "imageUrl": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an image url." })), "memberships": Schema.optionalKey(Schema.Array(MembershipDtoV1).annotate({ "description": "Represents a list of membership objects." })), "name": Schema.String.annotate({ "description": "Represents workspace name." }), "subdomain": Schema.optionalKey(WorkspaceSubdomainDtoV1), "workspaceSettings": Schema.optionalKey(WorkspaceSettingsDtoV1) }).annotate({ "identifier": "WorkspaceDtoV1" });
|
|
283
|
+
export const ExpensesAndTotalsDtoV1 = Schema.Struct({ "dailyTotals": Schema.optionalKey(Schema.Array(ExpenseDailyTotalsDtoV1).annotate({ "description": "Represents a list of expense daily total data transfer objects." })), "expenses": Schema.optionalKey(ExpensesWithCountDtoV1), "weeklyTotals": Schema.optionalKey(Schema.Array(ExpenseWeeklyTotalsDtoV1).annotate({ "description": "Represents a list of expense weekly total data transfer objects." })) }).annotate({ "identifier": "ExpensesAndTotalsDtoV1" });
|
|
284
|
+
export const MemberProfileDtoV1 = Schema.Struct({ "email": Schema.optionalKey(Schema.String.annotate({ "description": "Represents email address of the user." })), "hasPassword": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether user has password or none." })), "hasPendingApprovalRequest": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether user has pending approval request." })), "imageUrl": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an image url." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents name of the user." })), "userCustomFieldValues": Schema.optionalKey(Schema.Array(UserCustomFieldValueFullDtoV1).annotate({ "description": "Represents a list of value objects for user’s custom fields." })), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a day of the week." })), "workCapacity": Schema.optionalKey(Schema.String.annotate({ "description": "Represents work capacity as a time duration in the ISO-8601 format." })), "workingDays": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a list of days of the week." })), "workspaceNumber": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the number of workspace(s) the user is associated to.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))) }).annotate({ "identifier": "MemberProfileDtoV1" });
|
|
285
|
+
export const TimeOffRequestsWithCountV1Dto = Schema.Struct({ "count": Schema.optionalKey(Schema.Number.annotate({ "description": "Total count of time off requests.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "requests": Schema.optionalKey(Schema.Array(TimeOffRequestFullV1Dto)) }).annotate({ "identifier": "TimeOffRequestsWithCountV1Dto" });
|
|
286
|
+
export const SharedReportRequestV1 = Schema.Struct({ "filter": Schema.optionalKey(ReportFilterV1), "fixedDate": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the shared report has a fixed date range." })), "isPublic": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the shared report is public or not" })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a shared report's name" })), "type": Schema.optionalKey(Schema.Literals(["DETAILED", "WEEKLY", "SUMMARY", "SCHEDULED", "EXPENSE_DETAILED", "EXPENSE_RECEIPT", "PTO_REQUESTS", "PTO_BALANCE", "ATTENDANCE", "INVOICE_EXPENSE", "INVOICE_TIME", "PROJECT", "TEAM_FULL", "TEAM_LIMITED", "TEAM_GROUPS", "INVOICES", "KIOSK_PIN_LIST", "KIOSK_ASSIGNEES", "USER_DATA_EXPORT"]).annotate({ "description": "Represent the type of shared report." })), "visibleToUserGroups": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents user group ids." })).annotate({ "description": "Represents user group ids." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "visibleToUsers": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents user ids." })).annotate({ "description": "Represents user ids." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))) }).annotate({ "identifier": "SharedReportRequestV1" });
|
|
291
287
|
export const UploadImageRequestFormData = Schema.Struct({ "file": Schema.String.annotate({ "description": "Image to be uploaded", "format": "binary" }) });
|
|
292
288
|
export const UploadImage200 = UploadFileResponseV1;
|
|
293
289
|
export const GetLoggedUserParams = Schema.Struct({ "include-memberships": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, memberships will be included." })) });
|
|
@@ -298,21 +294,27 @@ export const CreateWorkspaceRequestJson = CreateWorkspaceRequestV1;
|
|
|
298
294
|
export const CreateWorkspace201 = WorkspaceDtoV1;
|
|
299
295
|
export const GetWorkspaceOfUser200 = WorkspaceDtoV1;
|
|
300
296
|
export const GetAddonWebhooks200 = WebhooksDtoV1;
|
|
301
|
-
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())) });
|
|
297
|
+
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().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "types": Schema.optionalKey(Schema.Array(Schema.Literals(["TIMESHEET", "EXPENSE", "TIMESHEET_AND_EXPENSE"])).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))) });
|
|
302
298
|
export const GetApprovalRequests200 = Schema.Array(ApprovalDetailsDtoV1);
|
|
299
|
+
export const CreateApprrovalRequestParams = Schema.Struct({ "timeViewMode": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time view mode used to display time entries." })) });
|
|
303
300
|
export const CreateApprrovalRequestRequestJson = CreateApprovalRequest;
|
|
304
301
|
export const CreateApprrovalRequest201 = ApprovalRequestDtoV1;
|
|
302
|
+
export const ResubmitApprovalRequestParams = Schema.Struct({ "timeViewMode": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time view mode used to display time entries." })) });
|
|
305
303
|
export const ResubmitApprovalRequestRequestJson = CreateApprovalRequest;
|
|
304
|
+
export const CreateApprovalForOtherDeprecatedParams = Schema.Struct({ "timeViewMode": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time view mode used to display time entries." })) });
|
|
306
305
|
export const CreateApprovalForOtherDeprecatedRequestJson = CreateApprovalRequest;
|
|
307
306
|
export const CreateApprovalForOtherDeprecated201 = ApprovalRequestDtoV1;
|
|
307
|
+
export const ResubmitApprovalRequestForOtherParams = Schema.Struct({ "timeViewMode": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time view mode used to display time entries." })) });
|
|
308
308
|
export const ResubmitApprovalRequestForOtherRequestJson = CreateApprovalRequest;
|
|
309
|
+
export const CreateApprovalForOtherWithTypeParams = Schema.Struct({ "timeViewMode": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time view mode used to display time entries." })) });
|
|
309
310
|
export const CreateApprovalForOtherWithTypeRequestJson = CreateApprovalRequestNoType;
|
|
310
311
|
export const CreateApprovalForOtherWithType201 = ApprovalRequestDtoV1;
|
|
311
312
|
export const UpdateApprovalStatusRequestJson = UpdateApprovalRequest;
|
|
312
313
|
export const UpdateApprovalStatus200 = ApprovalRequestDtoV1;
|
|
314
|
+
export const CreateApprrovalRequest1Params = Schema.Struct({ "timeViewMode": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time view mode used to display time entries." })) });
|
|
313
315
|
export const CreateApprrovalRequest1RequestJson = CreateApprovalRequestNoType;
|
|
314
316
|
export const CreateApprrovalRequest1201 = ApprovalRequestDtoV1;
|
|
315
|
-
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) });
|
|
317
|
+
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().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "archived": Schema.optionalKey(Schema.String) });
|
|
316
318
|
export const GetClients200 = Schema.Array(ClientWithCurrencyDtoV1);
|
|
317
319
|
export const CreateClientRequestJson = CreateClientRequestV1;
|
|
318
320
|
export const CreateClient201 = ClientWithCurrencyDtoV1;
|
|
@@ -334,11 +336,11 @@ export const GetDeletedEntityInfoParams = Schema.Struct({ "type": Schema.Array(S
|
|
|
334
336
|
export const GetDeletedEntityInfo200 = PageableCollectionLogBinDocumentDto;
|
|
335
337
|
export const GetUpdatedEntityInfoParams = Schema.Struct({ "type": Schema.Array(Schema.String.annotate({ "description": "Specifies the type of document to be retrieved. Expected values are ${changetracker.update.documentation.description}.This parameter can accept multiple values, and at least one option must be provided. Based on the input, the application will return results corresponding to the selected document types." })).annotate({ "description": "Specifies the type of document to be retrieved. Expected values are ${changetracker.update.documentation.description}.This parameter can accept multiple values, and at least one option must be provided. Based on the input, the application will return results corresponding to the selected document types." }), "start": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the start date in yyyy-MM-ddThh:mm:ssZ format. This parameter is optional; if no start date is provided, the application will set a default start date that matches the end date to create a date range of 30 days. If the end date is not specified either, the default behavior will apply from the current date." })), "end": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the end date in yyyy-MM-ddThh:mm:ssZ format. This parameter is optional; if no end date is provided, the application will set a default end date that matches the start date to create a date range of 30 days." })), "page": Schema.optionalKey(Schema.String), "limit": Schema.optionalKey(Schema.String) });
|
|
336
338
|
export const GetUpdatedEntityInfo200 = Schema.String;
|
|
337
|
-
export const GetExpensesParams = Schema.Struct({ "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))), "user-id": Schema.optionalKey(Schema.String) });
|
|
339
|
+
export const GetExpensesParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "user-id": Schema.optionalKey(Schema.String) });
|
|
338
340
|
export const GetExpenses200 = ExpensesAndTotalsDtoV1;
|
|
339
341
|
export const CreateExpenseRequestFormData = CreateExpenseV1Request;
|
|
340
342
|
export const CreateExpense201 = ExpenseDtoV1;
|
|
341
|
-
export const GetCategoriesParams = Schema.Struct({ "sort-column": Schema.optionalKey(Schema.Literal("NAME")), "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))), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to filter results based on whether category is archived or not." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of expense categories that matches the provided string in their name." })) });
|
|
343
|
+
export const GetCategoriesParams = Schema.Struct({ "sort-column": Schema.optionalKey(Schema.Literal("NAME")), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to filter results based on whether category is archived or not." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of expense categories that matches the provided string in their name." })) });
|
|
342
344
|
export const GetCategories200 = ExpenseCategoriesWithCountDtoV1;
|
|
343
345
|
export const CreateExpenseCategoryRequestJson = ExpenseCategoryV1Request;
|
|
344
346
|
export const CreateExpenseCategory201 = ExpenseCategoryDtoV1;
|
|
@@ -360,7 +362,7 @@ export const UpdateHoliday200 = HolidayDtoV1;
|
|
|
360
362
|
export const DeleteHoliday200 = HolidayDto;
|
|
361
363
|
export const SetWorkspaceHourlyRateRequestJson = RateWithCurrencyRequestV1;
|
|
362
364
|
export const SetWorkspaceHourlyRate200 = WorkspaceDtoV1;
|
|
363
|
-
export const GetInvoicesParams = Schema.Struct({ "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))), "statuses": Schema.optionalKey(Schema.Literals(["UNSENT", "SENT", "PAID", "PARTIALLY_PAID", "VOID", "OVERDUE"])), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "CLIENT", "DUE_ON", "ISSUE_DATE", "AMOUNT", "BALANCE"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])) });
|
|
365
|
+
export const GetInvoicesParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "statuses": Schema.optionalKey(Schema.Literals(["UNSENT", "SENT", "PAID", "PARTIALLY_PAID", "VOID", "OVERDUE"])), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "CLIENT", "DUE_ON", "ISSUE_DATE", "AMOUNT", "BALANCE"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])) });
|
|
364
366
|
export const GetInvoices200 = InvoicesListDtoV1;
|
|
365
367
|
export const CreateInvoiceRequestJson = CreateInvoiceRequest;
|
|
366
368
|
export const CreateInvoice201 = CreateInvoiceDtoV1;
|
|
@@ -378,7 +380,7 @@ export const AddInvoiceItem200 = InvoiceOverviewDtoV1;
|
|
|
378
380
|
export const ImportTimeEntriesAndExpensesRequestJson = ImportTimeEntriesAndExpensesRequestV1;
|
|
379
381
|
export const ImportTimeEntriesAndExpenses200 = InvoiceOverviewDtoV1;
|
|
380
382
|
export const RemoveInvoiceItem200 = InvoiceOverviewDtoV1;
|
|
381
|
-
export const GetPaymentsForInvoiceParams = Schema.Struct({ "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))) });
|
|
383
|
+
export const GetPaymentsForInvoiceParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))) });
|
|
382
384
|
export const GetPaymentsForInvoice200 = Schema.Array(InvoicePaymentDtoV1);
|
|
383
385
|
export const CreateInvoicePaymentRequestJson = CreateInvoicePaymentRequest;
|
|
384
386
|
export const CreateInvoicePayment201 = InvoiceOverviewDtoV1;
|
|
@@ -388,13 +390,13 @@ export const AddLimitedUsersRequestJson = AddLimitedUsersRequest;
|
|
|
388
390
|
export const GetMemberProfile200 = MemberProfileDtoV1;
|
|
389
391
|
export const UpdateMemberProfileWithAdditionalDataRequestJson = MemberProfileFullRequestV1;
|
|
390
392
|
export const UpdateMemberProfileWithAdditionalData200 = MemberProfileDtoV1;
|
|
391
|
-
export const GetProjectsParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of projects that contains the provided string in the project name." })), "strict-name-search": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to toggle on/off strict search mode. When set to true, search by name will only return projects whose name exactly matches the string value given for the 'name' parameter. When set to false, results will also include projects whose name contain the string value, but could be longer than the string value itself. For example, if there is a project with the name 'applications', and the search value is 'app', setting strict-name-search to true will not return that project in the results, whereas setting it to false will." })), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If provided and set to true, you'll only get archived projects. If omitted, you'll get both archived and non-archived projects." })), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If provided and set to true, you'll only get billable projects. If omitted, you'll get both billable and non-billable projects." })), "clients": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of projects that contain clients which match any of the provided ids." })).annotate({ "description": "If provided, you'll get a filtered list of projects that contain clients which match any of the provided ids." }).check(Schema.isUnique())), "contains-client": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, you'll get a filtered list of projects that contain clients which match the provided id(s) in 'clients' field. If set to false, you'll get a filtered list of projects which do NOT contain clients that match the provided id(s) in 'clients' field." })), "client-status": Schema.optionalKey(Schema.Literals(["ACTIVE", "ARCHIVED", "ALL"])), "users": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of projects that contain users which match any of the provided ids." })).annotate({ "description": "If provided, you'll get a filtered list of projects that contain users which match any of the provided ids." }).check(Schema.isUnique())), "contains-user": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, you'll get a filtered list of projects that contain users which match the provided id(s) in 'users' field. If set to false, you'll get a filtered list of projects which do NOT contain users which match the provided id(s) in 'users' field." })), "user-status": Schema.optionalKey(Schema.Literals(["PENDING", "ACTIVE", "DECLINED", "INACTIVE", "ALL"])), "is-template": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Filters projects based on whether they are used as a template or not." })), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "NAME", "CLIENT_NAME", "DURATION", "BUDGET", "PROGRESS"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])), "hydrated": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, results will contain additional information about the project." })), "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))), "access": Schema.optionalKey(Schema.Literals(["PUBLIC", "PRIVATE"])), "expense-limit": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the maximum number of expenses to fetch.", "format": "int32" }).check(Schema.isInt())), "expense-date": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you will get expenses dated before the provided value in yyyy-MM-dd format." })), "userGroups": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of projects that contain groups which match any of the provided ids." })).annotate({ "description": "If provided, you'll get a filtered list of projects that contain groups which match any of the provided ids." }).check(Schema.isUnique())), "contains-group": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, you'll get a filtered list of projects that contain groups which match the provided id(s) in 'userGroups' field. If set to false, you'll get a filtered list of projects which do NOT contain groups which match the provided id(s) in 'userGroups' field." })) });
|
|
393
|
+
export const GetProjectsParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of projects that contains the provided string in the project name." })), "strict-name-search": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to toggle on/off strict search mode. When set to true, search by name will only return projects whose name exactly matches the string value given for the 'name' parameter. When set to false, results will also include projects whose name contain the string value, but could be longer than the string value itself. For example, if there is a project with the name 'applications', and the search value is 'app', setting strict-name-search to true will not return that project in the results, whereas setting it to false will." })), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If provided and set to true, you'll only get archived projects. If omitted, you'll get both archived and non-archived projects." })), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If provided and set to true, you'll only get billable projects. If omitted, you'll get both billable and non-billable projects." })), "clients": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of projects that contain clients which match any of the provided ids." })).annotate({ "description": "If provided, you'll get a filtered list of projects that contain clients which match any of the provided ids." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "contains-client": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, you'll get a filtered list of projects that contain clients which match the provided id(s) in 'clients' field. If set to false, you'll get a filtered list of projects which do NOT contain clients that match the provided id(s) in 'clients' field." })), "client-status": Schema.optionalKey(Schema.Literals(["ACTIVE", "ARCHIVED", "ALL"])), "users": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of projects that contain users which match any of the provided ids." })).annotate({ "description": "If provided, you'll get a filtered list of projects that contain users which match any of the provided ids." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "contains-user": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, you'll get a filtered list of projects that contain users which match the provided id(s) in 'users' field. If set to false, you'll get a filtered list of projects which do NOT contain users which match the provided id(s) in 'users' field." })), "user-status": Schema.optionalKey(Schema.Literals(["PENDING", "ACTIVE", "DECLINED", "INACTIVE", "ALL"])), "is-template": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Filters projects based on whether they are used as a template or not." })), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "NAME", "CLIENT_NAME", "DURATION", "BUDGET", "PROGRESS"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])), "hydrated": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, results will contain additional information about the project." })), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "access": Schema.optionalKey(Schema.Literals(["PUBLIC", "PRIVATE"])), "expense-limit": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the maximum number of expenses to fetch.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "expense-date": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you will get expenses dated before the provided value in yyyy-MM-dd format." })), "userGroups": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of projects that contain groups which match any of the provided ids." })).annotate({ "description": "If provided, you'll get a filtered list of projects that contain groups which match any of the provided ids." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "contains-group": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, you'll get a filtered list of projects that contain groups which match the provided id(s) in 'userGroups' field. If set to false, you'll get a filtered list of projects which do NOT contain groups which match the provided id(s) in 'userGroups' field." })) });
|
|
392
394
|
export const GetProjects200 = Schema.Array(ProjectDtoV1);
|
|
393
395
|
export const CreateNewProjectRequestJson = ProjectRequest;
|
|
394
396
|
export const CreateNewProject201 = ProjectDtoImplV1;
|
|
395
397
|
export const CreateProjectFromTemplateRequestJson = CreateProjectFromTemplateV1;
|
|
396
398
|
export const CreateProjectFromTemplate200 = ProjectDtoImplV1;
|
|
397
|
-
export const GetProjectParams = Schema.Struct({ "hydrated": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, results will contain additional information about the project" })), "custom-field-entity-type": Schema.optionalKey(Schema.String), "expense-limit": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the maximum number of expenses to fetch.", "format": "int32" }).check(Schema.isInt())), "expense-date": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you will get expenses dated before the provided value in yyyy-MM-dd format." })) });
|
|
399
|
+
export const GetProjectParams = Schema.Struct({ "hydrated": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, results will contain additional information about the project" })), "custom-field-entity-type": Schema.optionalKey(Schema.String), "expense-limit": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the maximum number of expenses to fetch.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "expense-date": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you will get expenses dated before the provided value in yyyy-MM-dd format." })) });
|
|
398
400
|
export const GetProject200 = ProjectDtoV1;
|
|
399
401
|
export const UpdateProjectRequestJson = UpdateProjectRequest;
|
|
400
402
|
export const UpdateProject200 = ProjectDtoImplV1;
|
|
@@ -409,7 +411,7 @@ export const UpdateEstimate200 = ProjectDtoImplV1;
|
|
|
409
411
|
export const AddUsersToProjectRequestJson = AddUsersToProjectRequestV1;
|
|
410
412
|
export const UpdateMembershipsRequestJson = UpdateProjectMembershipsRequest;
|
|
411
413
|
export const UpdateMemberships200 = ProjectDtoImplV1;
|
|
412
|
-
export const GetTasksParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of tasks that matches the provided string in their name." })), "strict-name-search": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to toggle on/off strict search mode. When set to true, search by name only will return tasks whose name exactly matches the string value given for the 'name' parameter. When set to false, results will also include tasks whose name contain the string value, but could be longer than the string value itself. For example, if there is a task with the name 'applications', and the search value is 'app', setting strict-name-search to true will not return that task in the results, whereas setting it to false will." })), "is-active": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Filters search results whether task is active or not." })), "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))), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "NAME"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])) });
|
|
414
|
+
export const GetTasksParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of tasks that matches the provided string in their name." })), "strict-name-search": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to toggle on/off strict search mode. When set to true, search by name only will return tasks whose name exactly matches the string value given for the 'name' parameter. When set to false, results will also include tasks whose name contain the string value, but could be longer than the string value itself. For example, if there is a task with the name 'applications', and the search value is 'app', setting strict-name-search to true will not return that task in the results, whereas setting it to false will." })), "is-active": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Filters search results whether task is active or not." })), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "NAME"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])) });
|
|
413
415
|
export const GetTasks200 = Schema.Array(TaskDtoV1);
|
|
414
416
|
export const CreateTaskParams = Schema.Struct({ "contains-assignee": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether task will have assignee or none." })) });
|
|
415
417
|
export const CreateTaskRequestJson = TaskRequestV1;
|
|
@@ -429,9 +431,9 @@ export const AddUsersCostRateRequestJson = CostRateRequestV1;
|
|
|
429
431
|
export const AddUsersCostRate200 = ProjectDtoImplV1;
|
|
430
432
|
export const AddUsersHourlyRateRequestJson = CostRateRequestV1;
|
|
431
433
|
export const AddUsersHourlyRate200 = ProjectDtoImplV1;
|
|
432
|
-
export const GetAllAssignmentsParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, assignments will be filtered by name" })), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }), "end": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }), "sort-column": Schema.optionalKey(Schema.Literals(["PROJECT", "USER", "ID"])), "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))) });
|
|
434
|
+
export const GetAllAssignmentsParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, assignments will be filtered by name" })), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }), "end": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }), "sort-column": Schema.optionalKey(Schema.Literals(["PROJECT", "USER", "ID"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))) });
|
|
433
435
|
export const GetAllAssignments200 = Schema.Array(AssignmentHydratedDtoV1);
|
|
434
|
-
export const GetProjectTotalsParams = Schema.Struct({ "search": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a term for searching projects and clients by name." })), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }), "end": Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format." }), "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))) });
|
|
436
|
+
export const GetProjectTotalsParams = Schema.Struct({ "search": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a term for searching projects and clients by name." })), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }), "end": Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format." }), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))) });
|
|
435
437
|
export const GetProjectTotals200 = Schema.Array(SchedulingProjectsTotalsDtoV1);
|
|
436
438
|
export const GetFilteredProjectTotalsRequestJson = ProjectTotalsRequestV1;
|
|
437
439
|
export const GetFilteredProjectTotals200 = Schema.Array(SchedulingProjectsTotalsDtoV1);
|
|
@@ -448,11 +450,11 @@ export const EditRecurringPeriodRequestJson = RecurringAssignmentRequestV1;
|
|
|
448
450
|
export const EditRecurringPeriod200 = Schema.Array(AssignmentDtoV1);
|
|
449
451
|
export const GetUserTotalsRequestJson = GetUserTotalsRequestV1;
|
|
450
452
|
export const GetUserTotals200 = Schema.Array(SchedulingUsersTotalsDtoV1);
|
|
451
|
-
export const GetUserTotalsForSingleUserParams = Schema.Struct({ "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))), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }), "end": Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format." }) });
|
|
453
|
+
export const GetUserTotalsForSingleUserParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }), "end": Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format." }) });
|
|
452
454
|
export const GetUserTotalsForSingleUser200 = SchedulingUsersTotalsDtoV1;
|
|
453
455
|
export const CopyAssignmentRequestJson = CopyAssignmentRequestV1;
|
|
454
456
|
export const CopyAssignment200 = Schema.Array(AssignmentDtoV1);
|
|
455
|
-
export const GetTagsParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of tags that matches the provided string in their name." })), "strict-name-search": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to toggle on/off strict search mode. When set to true, search by name will only return tags whose name exactly matches the string value given for the 'name' parameter. When set to false, results will also include tags whose name contain the string value, but could be longer than the string value itself. For example, if there is a tag with the name 'applications', and the search value is 'app', setting strict-name-search to true will not return that tag in the results, whereas setting it to false will." })), "excluded-ids": Schema.optionalKey(Schema.String), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "NAME"])), "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))), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Filters the result whether tags are archived or not." })) });
|
|
457
|
+
export const GetTagsParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of tags that matches the provided string in their name." })), "strict-name-search": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to toggle on/off strict search mode. When set to true, search by name will only return tags whose name exactly matches the string value given for the 'name' parameter. When set to false, results will also include tags whose name contain the string value, but could be longer than the string value itself. For example, if there is a tag with the name 'applications', and the search value is 'app', setting strict-name-search to true will not return that tag in the results, whereas setting it to false will." })), "excluded-ids": Schema.optionalKey(Schema.String), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "NAME"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Filters the result whether tags are archived or not." })) });
|
|
456
458
|
export const GetTags200 = Schema.Array(TagDtoV1);
|
|
457
459
|
export const CreateNewTagRequestJson = TagRequest;
|
|
458
460
|
export const CreateNewTag201 = TagDtoV1;
|
|
@@ -460,7 +462,7 @@ export const GetTag200 = TagDtoV1;
|
|
|
460
462
|
export const UpdateTagRequestJson = UpdateTagRequest;
|
|
461
463
|
export const UpdateTag200 = TagDtoV1;
|
|
462
464
|
export const DeleteTag200 = TagDtoV1;
|
|
463
|
-
export const GetTemplatesParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of templates that contain the provided string in their name." })), "cleansed": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true will filter out inactive template projects and tasks." })), "hydrated": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true will return hydrated template projects and tasks." })), "page": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())), "page-size": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())) });
|
|
465
|
+
export const GetTemplatesParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of templates that contain the provided string in their name." })), "cleansed": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true will filter out inactive template projects and tasks." })), "hydrated": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true will return hydrated template projects and tasks." })), "page": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))) });
|
|
464
466
|
export const GetTemplates200 = Schema.Array(TemplateDto);
|
|
465
467
|
export const CreateManyRequestJson = Schema.Array(TemplateRequest);
|
|
466
468
|
export const CreateMany200 = Schema.Array(TemplateDtoImpl);
|
|
@@ -474,7 +476,7 @@ export const CreateTimeEntry201 = TimeEntryDtoImplV1;
|
|
|
474
476
|
export const GetMultipleTimeEntriesRequestJson = GetTimeEntriesByIdsRequest;
|
|
475
477
|
export const GetMultipleTimeEntries200 = Schema.Array(TimeEntryWithRatesDtoV1);
|
|
476
478
|
export const UpdateInvoicedStatusRequestJson = UpdateInvoicedStatusRequest;
|
|
477
|
-
export const GetInProgressTimeEntriesParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(1000))) });
|
|
479
|
+
export const GetInProgressTimeEntriesParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(1000).annotate({ "expected": "a value less than or equal to 1000" }))) });
|
|
478
480
|
export const GetTimeEntryParams = Schema.Struct({ "hydrated": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether to include additional information of a time entry or not." })) });
|
|
479
481
|
export const GetTimeEntry200 = TimeEntryWithRatesDtoV1;
|
|
480
482
|
export const UpdateTimeEntryRequestJson = UpdateTimeEntryRequest;
|
|
@@ -482,10 +484,10 @@ export const UpdateTimeEntry200 = TimeEntryDtoImplV1;
|
|
|
482
484
|
export const CreateBalanceAssignmentRequestJson = CreateBalanceAssignmentV1Request;
|
|
483
485
|
export const UpdateBalanceAssignmentRequestJson = UpdateBalanceAssignmentV1Request;
|
|
484
486
|
export const DeleteBalanceAssignmentRequestJson = DeleteBalanceAssignmentV1Request;
|
|
485
|
-
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"])) });
|
|
487
|
+
export const GetBalancesForPolicyParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isLessThanOrEqualTo(1000).annotate({ "expected": "a value less than or equal to 1000" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(200).annotate({ "expected": "a value less than or equal to 200" }))), "sort": Schema.optionalKey(Schema.Literals(["USER", "POLICY", "USED", "BALANCE", "TOTAL"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])) });
|
|
486
488
|
export const UpdateBalanceRequestJson = UpdateBalanceRequestV1;
|
|
487
489
|
export const GetBalancesForUserParams = Schema.Struct({ "page": Schema.optionalKey(Schema.String), "page-size": Schema.optionalKey(Schema.String), "sort": Schema.optionalKey(Schema.Literals(["USER", "POLICY", "USED", "BALANCE", "TOTAL"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])) });
|
|
488
|
-
export const FindPoliciesForWorkspaceParams = Schema.Struct({ "page": Schema.optionalKey(Schema.String), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(200))), "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of policies that contain the provided string in their name." })), "status": Schema.optionalKey(Schema.Literals(["ACTIVE", "ARCHIVED", "ALL"])), "sort-column": Schema.optionalKey(Schema.String), "sort-order": Schema.optionalKey(Schema.String) });
|
|
490
|
+
export const FindPoliciesForWorkspaceParams = Schema.Struct({ "page": Schema.optionalKey(Schema.String), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" })).check(Schema.isLessThanOrEqualTo(200).annotate({ "expected": "a value less than or equal to 200" }))), "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of policies that contain the provided string in their name." })), "status": Schema.optionalKey(Schema.Literals(["ACTIVE", "ARCHIVED", "ALL"])), "sort-column": Schema.optionalKey(Schema.String), "sort-order": Schema.optionalKey(Schema.String) });
|
|
489
491
|
export const FindPoliciesForWorkspace200 = Schema.Array(PolicyDtoV1);
|
|
490
492
|
export const CreatePolicyRequestJson = CreatePolicyRequestV1;
|
|
491
493
|
export const CreatePolicy201 = PolicyDtoV1;
|
|
@@ -494,16 +496,20 @@ export const UpdatePolicyRequestJson = UpdatePolicyRequestV1;
|
|
|
494
496
|
export const UpdatePolicy200 = PolicyDtoV1;
|
|
495
497
|
export const UpdatePolicyStatusRequestJson = ChangePolicyStatusRequestV1;
|
|
496
498
|
export const UpdatePolicyStatus200 = PolicyDtoV1;
|
|
499
|
+
export const CreateTimeOffRequestParams = Schema.Struct({ "timeViewMode": Schema.optionalKey(Schema.Literals(["TIME_SENSITIVE_VIEW", "AGGREGATED_TIME_VIEW"]).annotate({ "description": "Represents time view mode used to display dates." })) });
|
|
497
500
|
export const CreateTimeOffRequestRequestJson = CreateTimeOffRequestV1Request;
|
|
498
501
|
export const CreateTimeOffRequest200 = TimeOffRequestFullV1Dto;
|
|
502
|
+
export const DeleteTimeOffRequestParams = Schema.Struct({ "timeViewMode": Schema.optionalKey(Schema.Literals(["TIME_SENSITIVE_VIEW", "AGGREGATED_TIME_VIEW"]).annotate({ "description": "Represents time view mode used to display dates." })) });
|
|
499
503
|
export const DeleteTimeOffRequest200 = TimeOffRequestV1Dto;
|
|
504
|
+
export const ChangeTimeOffRequestStatusParams = Schema.Struct({ "timeViewMode": Schema.optionalKey(Schema.Literals(["TIME_SENSITIVE_VIEW", "AGGREGATED_TIME_VIEW"]).annotate({ "description": "Represents time view mode used to display dates." })) });
|
|
500
505
|
export const ChangeTimeOffRequestStatusRequestJson = StatusTimeOffRequestV1Request;
|
|
501
506
|
export const ChangeTimeOffRequestStatus200 = TimeOffRequestV1Dto;
|
|
507
|
+
export const CreateTimeOffRequestForOtherParams = Schema.Struct({ "timeViewMode": Schema.optionalKey(Schema.Literals(["TIME_SENSITIVE_VIEW", "AGGREGATED_TIME_VIEW"]).annotate({ "description": "Represents time view mode used to display dates." })) });
|
|
502
508
|
export const CreateTimeOffRequestForOtherRequestJson = CreateTimeOffRequestV1Request;
|
|
503
509
|
export const CreateTimeOffRequestForOther200 = TimeOffRequestFullV1Dto;
|
|
504
510
|
export const GetTimeOffRequestRequestJson = GetTimeOffRequestsV1Request;
|
|
505
511
|
export const GetTimeOffRequest200 = TimeOffRequestsWithCountV1Dto;
|
|
506
|
-
export const GetUserGroupsParams = Schema.Struct({ "project-id": Schema.optionalKey(Schema.String), "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of groups that matches the string provided in their name." })), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "NAME"])), "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))), "includeTeamManagers": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If provided, you'll get a list of team managers assigned to this user group." })) });
|
|
512
|
+
export const GetUserGroupsParams = Schema.Struct({ "project-id": Schema.optionalKey(Schema.String), "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of groups that matches the string provided in their name." })), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "NAME"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "includeTeamManagers": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If provided, you'll get a list of team managers assigned to this user group." })) });
|
|
507
513
|
export const GetUserGroups200 = Schema.Array(UserGroupDtoV1);
|
|
508
514
|
export const CreateUserGroupRequestJson = UserGroupRequest;
|
|
509
515
|
export const CreateUserGroup201 = UserGroupDtoV1;
|
|
@@ -513,20 +519,21 @@ export const DeleteUserGroup200 = UserGroupDtoV1;
|
|
|
513
519
|
export const AddUserRequestJson = UserGroupUserRequest;
|
|
514
520
|
export const AddUser200 = UserGroupDtoV1;
|
|
515
521
|
export const DeleteUser200 = UserGroupDtoV1;
|
|
516
|
-
export const GetTimeEntriesParams = Schema.Struct({ "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a term for searching time entries by description." })), "start": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." })), "end": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format." })), "project": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of time entries that matches the provided string in their project id." })), "task": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of time entries that matches the provided string in their task id." })), "tags": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of time entries that matches the provided string(s) in their tag id(s)." })).annotate({ "description": "If provided, you'll get a filtered list of time entries that matches the provided string(s) in their tag id(s)." }).check(Schema.isUnique())), "project-required": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether to only get time entries which have a project." })), "task-required": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether to only get time entries which have tasks." })), "hydrated": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether to include additional information on time entries or not." })), "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))), "in-progress": Schema.optionalKey(Schema.String), "get-week-before": Schema.optionalKey(Schema.String.annotate({ "description": "Valid yyyy-MM-ddThh:mm:ssZ format date. If provided, filters results within the week before the datetime provided and only those entries with assigned project or task." })) });
|
|
522
|
+
export const GetTimeEntriesParams = Schema.Struct({ "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a term for searching time entries by description." })), "start": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." })), "end": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format." })), "project": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of time entries that matches the provided string in their project id." })), "task": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of time entries that matches the provided string in their task id." })), "tags": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of time entries that matches the provided string(s) in their tag id(s)." })).annotate({ "description": "If provided, you'll get a filtered list of time entries that matches the provided string(s) in their tag id(s)." }).check(Schema.isUnique().annotate({ "expected": "an array with unique items" }))), "project-required": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether to only get time entries which have a project." })), "task-required": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether to only get time entries which have tasks." })), "hydrated": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether to include additional information on time entries or not." })), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "in-progress": Schema.optionalKey(Schema.String), "get-week-before": Schema.optionalKey(Schema.String.annotate({ "description": "Valid yyyy-MM-ddThh:mm:ssZ format date. If provided, filters results within the week before the datetime provided and only those entries with assigned project or task." })), "timeViewMode": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time view mode used to display time entries." })) });
|
|
517
523
|
export const GetTimeEntries200 = Schema.Array(TimeEntryWithRatesDtoV1);
|
|
518
|
-
export const ReplaceManyParams = Schema.Struct({ "hydrated": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, results will contain additional information about the time entry." })) });
|
|
519
|
-
export const ReplaceManyRequestJson = Schema.Array(UpdateTimeEntryBulkRequest).check(Schema.isMinLength(1));
|
|
524
|
+
export const ReplaceManyParams = Schema.Struct({ "hydrated": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, results will contain additional information about the time entry." })), "timeViewMode": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time view mode used to display time entries." })) });
|
|
525
|
+
export const ReplaceManyRequestJson = Schema.Array(UpdateTimeEntryBulkRequest).check(Schema.isMinLength(1).annotate({ "expected": "a value with a length of at least 1" }));
|
|
520
526
|
export const ReplaceMany200 = Schema.Array(TimeEntryDtoV1);
|
|
521
|
-
export const CreateForOthersParams = Schema.Struct({ "from-entry": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time entry identifier across the system." })) });
|
|
527
|
+
export const CreateForOthersParams = Schema.Struct({ "from-entry": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time entry identifier across the system." })), "timeViewMode": Schema.optionalKey(Schema.Literals(["TIME_SENSITIVE_VIEW", "AGGREGATED_TIME_VIEW"])) });
|
|
522
528
|
export const CreateForOthersRequestJson = CreateTimeEntryRequest;
|
|
523
529
|
export const CreateForOthers201 = TimeEntryDtoImplV1;
|
|
524
530
|
export const DeleteManyParams = Schema.Struct({ "time-entry-ids": Schema.Array(Schema.String.annotate({ "description": "Represents a list of time entry ids to delete." })).annotate({ "description": "Represents a list of time entry ids to delete." }) });
|
|
525
531
|
export const DeleteMany200 = Schema.Array(TimeEntryDtoImplV1);
|
|
526
532
|
export const StopRunningTimeEntryRequestJson = StopTimeEntryRequest;
|
|
527
533
|
export const StopRunningTimeEntry200 = TimeEntryDtoImplV1;
|
|
534
|
+
export const DuplicateTimeEntryParams = Schema.Struct({ "timeViewMode": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time view mode used to display time entries." })) });
|
|
528
535
|
export const DuplicateTimeEntry201 = TimeEntryDtoImplV1;
|
|
529
|
-
export const GetUsersOfWorkspaceParams = Schema.Struct({ "email": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of users that contain the provided string in their email address." })), "project-id": Schema.optionalKey(Schema.String), "status": Schema.optionalKey(Schema.Literals(["PENDING", "ACTIVE", "DECLINED", "INACTIVE", "ALL"])), "account-statuses": Schema.optionalKey(Schema.String), "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of users that contain the provided string in their name" })), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "EMAIL", "NAME", "NAME_LOWERCASE", "ACCESS", "HOURLYRATE", "COSTRATE"])), "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))), "memberships": Schema.optionalKey(Schema.Literals(["ALL", "NONE", "WORKSPACE", "PROJECT", "USERGROUP"])), "include-roles": Schema.String });
|
|
536
|
+
export const GetUsersOfWorkspaceParams = Schema.Struct({ "email": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of users that contain the provided string in their email address." })), "project-id": Schema.optionalKey(Schema.String), "status": Schema.optionalKey(Schema.Literals(["PENDING", "ACTIVE", "DECLINED", "INACTIVE", "ALL"])), "account-statuses": Schema.optionalKey(Schema.String), "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of users that contain the provided string in their name" })), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "EMAIL", "NAME", "NAME_LOWERCASE", "ACCESS", "HOURLYRATE", "COSTRATE"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "memberships": Schema.optionalKey(Schema.Literals(["ALL", "NONE", "WORKSPACE", "PROJECT", "USERGROUP"])), "include-roles": Schema.String });
|
|
530
537
|
export const GetUsersOfWorkspace200 = Schema.Array(UserDtoV1);
|
|
531
538
|
export const AddUsersParams = Schema.Struct({ "send-email": Schema.String });
|
|
532
539
|
export const AddUsersRequestJson = AddUserToWorkspaceRequest;
|
|
@@ -542,7 +549,7 @@ export const UpsertUserCustomFieldValueRequestJson = UpsertUserCustomFieldReques
|
|
|
542
549
|
export const UpsertUserCustomFieldValue201 = UserCustomFieldValueDtoV1;
|
|
543
550
|
export const SetHourlyRateForUserRequestJson = HourlyRateRequestV1;
|
|
544
551
|
export const SetHourlyRateForUser200 = WorkspaceDtoV1;
|
|
545
|
-
export const GetManagersOfUserParams = Schema.Struct({ "sort-column": Schema.optionalKey(Schema.Literals(["ID", "EMAIL", "NAME", "NAME_LOWERCASE", "ACCESS", "HOURLYRATE", "COSTRATE"])), "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))) });
|
|
552
|
+
export const GetManagersOfUserParams = Schema.Struct({ "sort-column": Schema.optionalKey(Schema.Literals(["ID", "EMAIL", "NAME", "NAME_LOWERCASE", "ACCESS", "HOURLYRATE", "COSTRATE"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))) });
|
|
546
553
|
export const GetManagersOfUser200 = Schema.Array(UserDtoV1);
|
|
547
554
|
export const CreateUserRoleRequestJson = RoleRequestV1;
|
|
548
555
|
export const CreateUserRole201 = Schema.Array(RoleDetailsDtoV1);
|
|
@@ -554,20 +561,20 @@ export const CreateWebhook201 = WebhookDtoV1;
|
|
|
554
561
|
export const GetWebhook200 = WebhookDtoV1;
|
|
555
562
|
export const UpdateWebhookRequestJson = UpdateWebhookRequestV1;
|
|
556
563
|
export const UpdateWebhook200 = WebhookDtoV1;
|
|
557
|
-
export const GetLogsForWebhookParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt())), "size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1))) });
|
|
564
|
+
export const GetLogsForWebhookParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))) });
|
|
558
565
|
export const GetLogsForWebhookRequestJson = WebhookLogSearchRequestV1;
|
|
559
566
|
export const GetLogsForWebhook200 = Schema.Array(WebhookLogDtoV1);
|
|
560
|
-
export const GetWebhookEventStatusesWithLatestLogParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt())), "size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1))), "statuses": Schema.optionalKey(Schema.Literals(["SUCCEEDED", "RETRYING", "FAILED"])) });
|
|
567
|
+
export const GetWebhookEventStatusesWithLatestLogParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "statuses": Schema.optionalKey(Schema.Literals(["SUCCEEDED", "RETRYING", "FAILED"])) });
|
|
561
568
|
export const GetWebhookEventStatusesWithLatestLog200 = Schema.Array(WebhookEventStatusWithLatestLogDtoV1);
|
|
562
569
|
export const GenerateNewToken200 = WebhookDtoV1;
|
|
563
|
-
export const GenerateSharedReportV1Params = Schema.Struct({ "dateRangeStart": Schema.optionalKey(Schema.String.annotate({ "description": "Provide the start date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" })), "dateRangeEnd": Schema.optionalKey(Schema.String.annotate({ "description": "Provide the end date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" })), "sortOrder": Schema.optionalKey(Schema.String.annotate({ "description": "Sort result in ascending or descending order" })), "sortColumn": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get result sorted by sort column." })), "exportType": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an export type of shared report" })), "page": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())) });
|
|
570
|
+
export const GenerateSharedReportV1Params = Schema.Struct({ "dateRangeStart": Schema.optionalKey(Schema.String.annotate({ "description": "Provide the start date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" })), "dateRangeEnd": Schema.optionalKey(Schema.String.annotate({ "description": "Provide the end date in format YYYY-MM-DDTHH:MM:SS.ssssss. The system interprets this value based on the user's timezone (provided in the timeZone request parameter or the timezone configured in the user profile)" })), "sortOrder": Schema.optionalKey(Schema.String.annotate({ "description": "Sort result in ascending or descending order" })), "sortColumn": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get result sorted by sort column." })), "exportType": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an export type of shared report" })), "page": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))) });
|
|
564
571
|
export const GenerateAttendanceReportRequestJson = AttendanceReportFilterV1;
|
|
565
572
|
export const GenerateDetailedReportRequestJson = DetailedReportFilterV1;
|
|
566
573
|
export const GenerateDetailedReportV1RequestJson = ExpenseReportFilterV1;
|
|
567
574
|
export const GenerateDetailedReportV1200 = ExpenseDetailedReportDtoV1;
|
|
568
575
|
export const GenerateSummaryReportRequestJson = SummaryReportFilterV1;
|
|
569
576
|
export const GenerateWeeklyReportRequestJson = WeeklyReportFilterV1;
|
|
570
|
-
export const GetSharedReportsV1Params = Schema.Struct({ "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.isGreaterThanOrEqualTo(1))), "sharedReportsFilter": Schema.optionalKey(Schema.Literals(["ALL", "ALL_ADMIN", "CREATED_BY_ME", "SHARED_WITH_ME"]).annotate({ "description": "Filters shared reports by origin." })) });
|
|
577
|
+
export const GetSharedReportsV1Params = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" }))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt().annotate({ "expected": "an integer" })).check(Schema.isGreaterThanOrEqualTo(1).annotate({ "expected": "a value greater than or equal to 1" }))), "sharedReportsFilter": Schema.optionalKey(Schema.Literals(["ALL", "ALL_ADMIN", "CREATED_BY_ME", "SHARED_WITH_ME"]).annotate({ "description": "Filters shared reports by origin." })) });
|
|
571
578
|
export const SaveSharedReportV1RequestJson = SharedReportRequestV1;
|
|
572
579
|
export const UpdateSharedReportV1RequestJson = UpdateSharedReportRequestV1;
|
|
573
580
|
export const GetAuditLogsRequestJson = AuditLogGetRequestV1;
|
|
@@ -619,21 +626,21 @@ export const make = (httpClient, options = {}) => {
|
|
|
619
626
|
"2xx": decodeSuccess(GetApprovalRequests200),
|
|
620
627
|
orElse: unexpectedStatus
|
|
621
628
|
}))),
|
|
622
|
-
"createApprrovalRequest": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests`).pipe(HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
629
|
+
"createApprrovalRequest": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests`).pipe(HttpClientRequest.setUrlParams({ "timeViewMode": options.params?.["timeViewMode"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
623
630
|
"2xx": decodeSuccess(CreateApprrovalRequest201),
|
|
624
631
|
orElse: unexpectedStatus
|
|
625
632
|
}))),
|
|
626
|
-
"resubmitApprovalRequest": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/resubmit-entries-for-approval`).pipe(HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
633
|
+
"resubmitApprovalRequest": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/resubmit-entries-for-approval`).pipe(HttpClientRequest.setUrlParams({ "timeViewMode": options.params?.["timeViewMode"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
627
634
|
orElse: unexpectedStatus
|
|
628
635
|
}))),
|
|
629
|
-
"createApprovalForOtherDeprecated": (workspaceId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/users/${userId}`).pipe(HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
636
|
+
"createApprovalForOtherDeprecated": (workspaceId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/users/${userId}`).pipe(HttpClientRequest.setUrlParams({ "timeViewMode": options.params?.["timeViewMode"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
630
637
|
"2xx": decodeSuccess(CreateApprovalForOtherDeprecated201),
|
|
631
638
|
orElse: unexpectedStatus
|
|
632
639
|
}))),
|
|
633
|
-
"resubmitApprovalRequestForOther": (workspaceId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/users/${userId}/resubmit-entries-for-approval`).pipe(HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
640
|
+
"resubmitApprovalRequestForOther": (workspaceId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/users/${userId}/resubmit-entries-for-approval`).pipe(HttpClientRequest.setUrlParams({ "timeViewMode": options.params?.["timeViewMode"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
634
641
|
orElse: unexpectedStatus
|
|
635
642
|
}))),
|
|
636
|
-
"createApprovalForOtherWithType": (workspaceId, userId, type, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/users/${userId}/${type}`).pipe(HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
643
|
+
"createApprovalForOtherWithType": (workspaceId, userId, type, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/users/${userId}/${type}`).pipe(HttpClientRequest.setUrlParams({ "timeViewMode": options.params?.["timeViewMode"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
637
644
|
"2xx": decodeSuccess(CreateApprovalForOtherWithType201),
|
|
638
645
|
orElse: unexpectedStatus
|
|
639
646
|
}))),
|
|
@@ -641,7 +648,7 @@ export const make = (httpClient, options = {}) => {
|
|
|
641
648
|
"2xx": decodeSuccess(UpdateApprovalStatus200),
|
|
642
649
|
orElse: unexpectedStatus
|
|
643
650
|
}))),
|
|
644
|
-
"createApprrovalRequest1": (workspaceId, type, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/${type}`).pipe(HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
651
|
+
"createApprrovalRequest1": (workspaceId, type, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/${type}`).pipe(HttpClientRequest.setUrlParams({ "timeViewMode": options.params?.["timeViewMode"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
645
652
|
"2xx": decodeSuccess(CreateApprrovalRequest1201),
|
|
646
653
|
orElse: unexpectedStatus
|
|
647
654
|
}))),
|
|
@@ -1092,19 +1099,19 @@ export const make = (httpClient, options = {}) => {
|
|
|
1092
1099
|
"2xx": decodeSuccess(UpdatePolicyStatus200),
|
|
1093
1100
|
orElse: unexpectedStatus
|
|
1094
1101
|
}))),
|
|
1095
|
-
"createTimeOffRequest": (workspaceId, policyId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/time-off/policies/${policyId}/requests`).pipe(HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1102
|
+
"createTimeOffRequest": (workspaceId, policyId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/time-off/policies/${policyId}/requests`).pipe(HttpClientRequest.setUrlParams({ "timeViewMode": options.params?.["timeViewMode"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1096
1103
|
"2xx": decodeSuccess(CreateTimeOffRequest200),
|
|
1097
1104
|
orElse: unexpectedStatus
|
|
1098
1105
|
}))),
|
|
1099
|
-
"deleteTimeOffRequest": (workspaceId, policyId, requestId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/time-off/policies/${policyId}/requests/${requestId}`).pipe(withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1106
|
+
"deleteTimeOffRequest": (workspaceId, policyId, requestId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/time-off/policies/${policyId}/requests/${requestId}`).pipe(HttpClientRequest.setUrlParams({ "timeViewMode": options?.params?.["timeViewMode"] }), withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1100
1107
|
"2xx": decodeSuccess(DeleteTimeOffRequest200),
|
|
1101
1108
|
orElse: unexpectedStatus
|
|
1102
1109
|
}))),
|
|
1103
|
-
"changeTimeOffRequestStatus": (workspaceId, policyId, requestId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/time-off/policies/${policyId}/requests/${requestId}`).pipe(HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1110
|
+
"changeTimeOffRequestStatus": (workspaceId, policyId, requestId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/time-off/policies/${policyId}/requests/${requestId}`).pipe(HttpClientRequest.setUrlParams({ "timeViewMode": options.params?.["timeViewMode"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1104
1111
|
"2xx": decodeSuccess(ChangeTimeOffRequestStatus200),
|
|
1105
1112
|
orElse: unexpectedStatus
|
|
1106
1113
|
}))),
|
|
1107
|
-
"createTimeOffRequestForOther": (workspaceId, policyId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/time-off/policies/${policyId}/users/${userId}/requests`).pipe(HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1114
|
+
"createTimeOffRequestForOther": (workspaceId, policyId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/time-off/policies/${policyId}/users/${userId}/requests`).pipe(HttpClientRequest.setUrlParams({ "timeViewMode": options.params?.["timeViewMode"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1108
1115
|
"2xx": decodeSuccess(CreateTimeOffRequestForOther200),
|
|
1109
1116
|
orElse: unexpectedStatus
|
|
1110
1117
|
}))),
|
|
@@ -1136,15 +1143,15 @@ export const make = (httpClient, options = {}) => {
|
|
|
1136
1143
|
"2xx": decodeSuccess(DeleteUser200),
|
|
1137
1144
|
orElse: unexpectedStatus
|
|
1138
1145
|
}))),
|
|
1139
|
-
"getTimeEntries": (workspaceId, userId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries`).pipe(HttpClientRequest.setUrlParams({ "description": options?.params?.["description"], "start": options?.params?.["start"], "end": options?.params?.["end"], "project": options?.params?.["project"], "task": options?.params?.["task"], "tags": options?.params?.["tags"], "project-required": options?.params?.["project-required"], "task-required": options?.params?.["task-required"], "hydrated": options?.params?.["hydrated"], "page": options?.params?.["page"], "page-size": options?.params?.["page-size"], "in-progress": options?.params?.["in-progress"], "get-week-before": options?.params?.["get-week-before"] }), withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1146
|
+
"getTimeEntries": (workspaceId, userId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries`).pipe(HttpClientRequest.setUrlParams({ "description": options?.params?.["description"], "start": options?.params?.["start"], "end": options?.params?.["end"], "project": options?.params?.["project"], "task": options?.params?.["task"], "tags": options?.params?.["tags"], "project-required": options?.params?.["project-required"], "task-required": options?.params?.["task-required"], "hydrated": options?.params?.["hydrated"], "page": options?.params?.["page"], "page-size": options?.params?.["page-size"], "in-progress": options?.params?.["in-progress"], "get-week-before": options?.params?.["get-week-before"], "timeViewMode": options?.params?.["timeViewMode"] }), withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1140
1147
|
"2xx": decodeSuccess(GetTimeEntries200),
|
|
1141
1148
|
orElse: unexpectedStatus
|
|
1142
1149
|
}))),
|
|
1143
|
-
"replaceMany": (workspaceId, userId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries`).pipe(HttpClientRequest.setUrlParams({ "hydrated": options.params?.["hydrated"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1150
|
+
"replaceMany": (workspaceId, userId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries`).pipe(HttpClientRequest.setUrlParams({ "hydrated": options.params?.["hydrated"], "timeViewMode": options.params?.["timeViewMode"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1144
1151
|
"2xx": decodeSuccess(ReplaceMany200),
|
|
1145
1152
|
orElse: unexpectedStatus
|
|
1146
1153
|
}))),
|
|
1147
|
-
"createForOthers": (workspaceId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries`).pipe(HttpClientRequest.setUrlParams({ "from-entry": options.params?.["from-entry"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1154
|
+
"createForOthers": (workspaceId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries`).pipe(HttpClientRequest.setUrlParams({ "from-entry": options.params?.["from-entry"], "timeViewMode": options.params?.["timeViewMode"] }), HttpClientRequest.bodyJsonUnsafe(options.payload), withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1148
1155
|
"2xx": decodeSuccess(CreateForOthers201),
|
|
1149
1156
|
orElse: unexpectedStatus
|
|
1150
1157
|
}))),
|
|
@@ -1156,7 +1163,7 @@ export const make = (httpClient, options = {}) => {
|
|
|
1156
1163
|
"2xx": decodeSuccess(StopRunningTimeEntry200),
|
|
1157
1164
|
orElse: unexpectedStatus
|
|
1158
1165
|
}))),
|
|
1159
|
-
"duplicateTimeEntry": (workspaceId, userId, id, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries/${id}/duplicate`).pipe(withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1166
|
+
"duplicateTimeEntry": (workspaceId, userId, id, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries/${id}/duplicate`).pipe(HttpClientRequest.setUrlParams({ "timeViewMode": options?.params?.["timeViewMode"] }), withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1160
1167
|
"2xx": decodeSuccess(DuplicateTimeEntry201),
|
|
1161
1168
|
orElse: unexpectedStatus
|
|
1162
1169
|
}))),
|