@knpkv/clockify-api-client 0.3.0 → 1.0.1
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 +29 -0
- package/README.md +92 -80
- package/dist/ClockifyApiClient.d.ts +44 -45
- package/dist/ClockifyApiClient.d.ts.map +1 -1
- package/dist/ClockifyApiClient.js +52 -121
- package/dist/ClockifyApiClient.js.map +1 -1
- package/dist/generated/ClockifyApi.d.ts +14432 -0
- package/dist/generated/ClockifyApi.d.ts.map +1 -0
- package/dist/generated/ClockifyApi.js +1239 -0
- package/dist/generated/ClockifyApi.js.map +1 -0
- package/dist/index.d.ts +4 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/package.json +15 -21
- package/scripts/regenerate.ts +182 -201
- package/scripts/tsconfig.json +13 -0
- package/src/ClockifyApiClient.ts +125 -226
- package/src/generated/ClockifyApi.ts +3020 -0
- package/src/index.ts +10 -14
- package/test/ClockifyApiClient.test.ts +195 -0
- package/vitest.config.ts +7 -0
- package/.specs/VERSION +0 -1
- package/.specs/clockify-v1.json +0 -31670
- package/.specs/clockify-v1.patch.json +0 -48
- package/dist/ClockifyApiError.d.ts +0 -11
- package/dist/ClockifyApiError.d.ts.map +0 -1
- package/dist/ClockifyApiError.js +0 -14
- package/dist/ClockifyApiError.js.map +0 -1
- package/dist/OpenApiFetchClient.d.ts +0 -55
- package/dist/OpenApiFetchClient.d.ts.map +0 -1
- package/dist/OpenApiFetchClient.js +0 -63
- package/dist/OpenApiFetchClient.js.map +0 -1
- package/dist/generated/index.d.ts +0 -2
- package/dist/generated/index.d.ts.map +0 -1
- package/dist/generated/index.js +0 -2
- package/dist/generated/index.js.map +0 -1
- package/dist/generated/schema.d.ts +0 -16204
- package/src/ClockifyApiError.ts +0 -17
- package/src/OpenApiFetchClient.ts +0 -92
- package/src/generated/index.ts +0 -1
- package/src/generated/schema.d.ts +0 -16204
- package/tsconfig.tsbuildinfo +0 -1
|
@@ -0,0 +1,3020 @@
|
|
|
1
|
+
import * as Data from "effect/Data"
|
|
2
|
+
import * as Effect from "effect/Effect"
|
|
3
|
+
import type { SchemaError } from "effect/Schema"
|
|
4
|
+
import * as Schema from "effect/Schema"
|
|
5
|
+
import type * as HttpClient from "effect/unstable/http/HttpClient"
|
|
6
|
+
import * as HttpClientError from "effect/unstable/http/HttpClientError"
|
|
7
|
+
import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest"
|
|
8
|
+
import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"
|
|
9
|
+
// non-recursive definitions
|
|
10
|
+
export type AccountStatus = "ACTIVE" | "PENDING_EMAIL_VERIFICATION" | "DELETED" | "NOT_REGISTERED" | "LIMITED" | "LIMITED_DELETED"
|
|
11
|
+
export const AccountStatus = Schema.Literals(["ACTIVE", "PENDING_EMAIL_VERIFICATION", "DELETED", "NOT_REGISTERED", "LIMITED", "LIMITED_DELETED"]).annotate({ "description": "Represents account status enum." })
|
|
12
|
+
export type AddUserToWorkspaceRequest = { readonly "email": string }
|
|
13
|
+
export const AddUserToWorkspaceRequest = Schema.Struct({ "email": Schema.String.annotate({ "description": "Represents an email address of the user." }).check(Schema.isMinLength(1)) })
|
|
14
|
+
export type ApplyTaxes = never
|
|
15
|
+
export const ApplyTaxes = Schema.Never
|
|
16
|
+
export type ApprovalRequestCreatorDtoV1 = { readonly "userEmail"?: string, readonly "userId"?: string, readonly "userName"?: string }
|
|
17
|
+
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." })
|
|
18
|
+
export type ApprovalRequestOwnerDtoV1 = { readonly "startOfWeek"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "timeZone"?: string, readonly "userId"?: string, readonly "userName"?: string }
|
|
19
|
+
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." })
|
|
20
|
+
export type ApprovalRequestStatusDtoV1 = { readonly "note"?: string, readonly "state"?: "PENDING" | "APPROVED" | "WITHDRAWN_SUBMISSION" | "WITHDRAWN_APPROVAL" | "REJECTED", readonly "updatedAt"?: string, readonly "updatedBy"?: string, readonly "updatedByUserName"?: string }
|
|
21
|
+
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." })
|
|
22
|
+
export type AssignmentPerDayDto = { readonly "date"?: string, readonly "hasAssignment"?: boolean }
|
|
23
|
+
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." })
|
|
24
|
+
export type AssignmentUpdateRequestV1 = { readonly "billable"?: boolean, readonly "end": string, readonly "hoursPerDay"?: number, readonly "includeNonWorkingDays"?: boolean, readonly "note"?: string, readonly "seriesUpdateOption"?: "THIS_ONE" | "THIS_AND_FOLLOWING" | "ALL", readonly "start": string, readonly "startTime"?: string, readonly "taskId"?: string }
|
|
25
|
+
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())), "includeNonWorkingDays": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to include non-working days or not." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an assignment note." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(100))), "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." })) })
|
|
26
|
+
export type AuthorizationSourceDtoV1 = { readonly "id"?: string, readonly "type"?: "USER_GROUP" }
|
|
27
|
+
export const AuthorizationSourceDtoV1 = Schema.Struct({ "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents authorization source identifier across the system." })), "type": Schema.optionalKey(Schema.Literal("USER_GROUP").annotate({ "description": "Represents a valid authorization source type." })) }).annotate({ "description": "Represents an authorization data transfer object." })
|
|
28
|
+
export type AutomaticAccrualDto = { readonly "amount"?: number, readonly "period"?: "MONTH" | "YEAR", readonly "timeUnit"?: "DAYS" | "HOURS" }
|
|
29
|
+
export const AutomaticAccrualDto = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents automatic accrual's amount", "format": "double" }).check(Schema.isFinite())), "period": Schema.optionalKey(Schema.Literals(["MONTH", "YEAR"]).annotate({ "description": "Represents automatic accrual's period" })), "timeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Represents automatic accrual's time unit" })) }).annotate({ "description": "Represents automatic approval settings." })
|
|
30
|
+
export type AutomaticAccrualRequest = { readonly "amount": number, readonly "period"?: "MONTH" | "YEAR", readonly "timeUnit"?: "DAYS" | "HOURS" }
|
|
31
|
+
export const AutomaticAccrualRequest = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents amount of automatic accrual.", "format": "double" }).check(Schema.isFinite()).check(Schema.isGreaterThanOrEqualTo(0)), "period": Schema.optionalKey(Schema.Literals(["MONTH", "YEAR"]).annotate({ "description": "Represents automatic accrual period." })), "timeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Represents automatic accrual time unit." })) }).annotate({ "description": "Provide automatic accrual settings." })
|
|
32
|
+
export type AutomaticLockDtoV1 = { readonly "changeDay"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "dayOfMonth"?: number, readonly "firstDay"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "olderThanPeriod"?: "DAYS" | "WEEKS" | "MONTHS", readonly "olderThanValue"?: number, readonly "type"?: "WEEKLY" | "MONTHLY" | "OLDER_THAN" }
|
|
33
|
+
export const AutomaticLockDtoV1 = Schema.Struct({ "changeDay": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a day of the week." })), "dayOfMonth": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a day of month as integer.", "format": "int32" }).check(Schema.isInt())), "firstDay": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a day of the week." })), "olderThanPeriod": Schema.optionalKey(Schema.Literals(["DAYS", "WEEKS", "MONTHS"]).annotate({ "description": "Represents a time entry automatic lock period enum." })), "olderThanValue": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an integer as the criteria for locking time entries.", "format": "int32" }).check(Schema.isInt())), "type": Schema.optionalKey(Schema.Literals(["WEEKLY", "MONTHLY", "OLDER_THAN"]).annotate({ "description": "Represents a time entry automatic lock type enum." })) }).annotate({ "description": "Represents an automatic lock object." })
|
|
34
|
+
export type BalanceDtoV1 = { readonly "balance"?: number, readonly "id"?: string, readonly "negativeBalanceAmount"?: number, readonly "negativeBalanceLimit"?: boolean, readonly "policyArchived"?: boolean, readonly "policyId"?: string, readonly "policyName"?: string, readonly "policyTimeUnit"?: "DAYS" | "HOURS", readonly "total"?: number, readonly "used"?: number, readonly "userId"?: string, readonly "userName"?: string, readonly "workspaceId"?: string }
|
|
35
|
+
export const BalanceDtoV1 = Schema.Struct({ "balance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the balance amount of the time unit", "format": "double" }).check(Schema.isFinite())), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represent balance identifier across the system." })), "negativeBalanceAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represent negative balance amount.", "format": "double" }).check(Schema.isFinite())), "negativeBalanceLimit": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the negative balance limit is allowed." })), "policyArchived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy is archived." })), "policyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represent policy identifier across the system." })), "policyName": Schema.optionalKey(Schema.String.annotate({ "description": "Represent policy name." })), "policyTimeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Represent policy time unit." })), "total": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the total amount", "format": "double" }).check(Schema.isFinite())), "used": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the balance used amount", "format": "double" }).check(Schema.isFinite())), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represent user identifier across the system." })), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represent user's username." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represent workspace identifier across the system." })) }).annotate({ "description": "Represent the list of balances." })
|
|
36
|
+
export type BaseFilterRequest = { readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN" | "CONTAINS_ONLY", readonly "ids"?: ReadonlyArray<string> }
|
|
37
|
+
export const BaseFilterRequest = Schema.Struct({ "contains": Schema.optionalKey(Schema.Literals(["CONTAINS", "DOES_NOT_CONTAIN", "CONTAINS_ONLY"]).annotate({ "description": "Filter type." })), "ids": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of filter identifiers." })).annotate({ "description": "Represents a list of filter identifiers." }).check(Schema.isUnique())) }).annotate({ "description": "Represents a company filter object. If provided, you'll get a filtered list of invoices that matches the specified company filter." })
|
|
38
|
+
export type CalculationType = never
|
|
39
|
+
export const CalculationType = Schema.Never
|
|
40
|
+
export type ChangeInvoiceStatusRequestV1 = { readonly "invoiceStatus"?: "UNSENT" | "SENT" | "PAID" | "PARTIALLY_PAID" | "VOID" | "OVERDUE" }
|
|
41
|
+
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." })) })
|
|
42
|
+
export type ChangePolicyStatusRequestV1 = { readonly "status": "ACTIVE" | "ARCHIVED" | "ALL" }
|
|
43
|
+
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." }) })
|
|
44
|
+
export type ClientDtoV1 = { readonly "address"?: string, readonly "archived"?: boolean, readonly "ccEmails"?: ReadonlyArray<string>, readonly "currencyId"?: string, readonly "email"?: string, readonly "id"?: string, readonly "name"?: string, readonly "note"?: string, readonly "workspaceId"?: string }
|
|
45
|
+
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." })) })
|
|
46
|
+
export type ClientWithCurrencyDtoV1 = { readonly "address"?: string, readonly "archived"?: boolean, readonly "ccEmails"?: ReadonlyArray<string>, readonly "currencyCode"?: string, readonly "currencyId"?: string, readonly "email"?: string, readonly "id"?: string, readonly "name"?: string, readonly "note"?: string, readonly "workspaceId"?: string }
|
|
47
|
+
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." })) })
|
|
48
|
+
export type ContainsArchivedFilterRequest = { readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN" | "CONTAINS_ONLY", readonly "ids"?: ReadonlyArray<string>, readonly "status"?: "ACTIVE" | "ARCHIVED" | "ALL" }
|
|
49
|
+
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())), "status": Schema.optionalKey(Schema.Literals(["ACTIVE", "ARCHIVED", "ALL"]).annotate({ "description": "Filters entities by status." })) }).annotate({ "description": "Represents a project filter for imported items." })
|
|
50
|
+
export type ContainsUserGroupFilterRequest = { readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN" | "CONTAINS_ONLY", readonly "ids"?: ReadonlyArray<string>, readonly "status"?: "PENDING" | "ACTIVE" | "DECLINED" | "INACTIVE" | "ALL" }
|
|
51
|
+
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())), "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." })
|
|
52
|
+
export type ContainsUserGroupFilterRequestV1 = { readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN" | "CONTAINS_ONLY", readonly "ids"?: ReadonlyArray<string>, readonly "status"?: "PENDING" | "ACTIVE" | "DECLINED" | "INACTIVE" | "ALL" }
|
|
53
|
+
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())), "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." })
|
|
54
|
+
export type ContainsUsersFilterRequestForHoliday = { readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN" | "CONTAINS_ONLY", readonly "ids"?: ReadonlyArray<string>, readonly "status"?: "ALL" | "ACTIVE" | "INACTIVE", readonly "statuses"?: ReadonlyArray<string> }
|
|
55
|
+
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())), "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." })
|
|
56
|
+
export type ContainsUsersFilterRequestV1 = { readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN" | "CONTAINS_ONLY", readonly "ids"?: ReadonlyArray<string>, readonly "sourceType"?: "USER_GROUP", readonly "status"?: "PENDING" | "ACTIVE" | "DECLINED" | "INACTIVE" | "ALL", readonly "statuses"?: ReadonlyArray<"PENDING" | "ACTIVE" | "DECLINED" | "INACTIVE" | "ALL"> }
|
|
57
|
+
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())), "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." })
|
|
58
|
+
export type CopyAssignmentRequestV1 = { readonly "seriesUpdateOption"?: "THIS_ONE" | "THIS_AND_FOLLOWING" | "ALL", readonly "userId": string }
|
|
59
|
+
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." }) })
|
|
60
|
+
export type CostRateRequest = { readonly "amount"?: number, readonly "since"?: string, readonly "sinceAsInstant"?: string }
|
|
61
|
+
export const CostRateRequest = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(0))), "since": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a datetime in yyyy-MM-ddThh:mm:ssZ format." })), "sinceAsInstant": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })) }).annotate({ "description": "Represents a cost rate request object." })
|
|
62
|
+
export type CostRateRequestV1 = { readonly "amount": number, readonly "since"?: string }
|
|
63
|
+
export const CostRateRequestV1 = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(0)), "since": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date and time in yyyy-MM-ddThh:mm:ssZ format." })) })
|
|
64
|
+
export type CreateApprovalRequest = { readonly "period"?: "WEEKLY" | "SEMI_MONTHLY" | "MONTHLY", readonly "periodStart": string }
|
|
65
|
+
export const CreateApprovalRequest = Schema.Struct({ "period": Schema.optionalKey(Schema.Literals(["WEEKLY", "SEMI_MONTHLY", "MONTHLY"]).annotate({ "description": "Specifies the approval period. It has to match the workspace approval period setting." })), "periodStart": Schema.String.annotate({ "description": "Specifies an approval period start date in yyyy-MM-ddThh:mm:ssZ format." }).check(Schema.isMinLength(1)) })
|
|
66
|
+
export type CreateClientRequestV1 = { readonly "address"?: string, readonly "email"?: string, readonly "name"?: string, readonly "note"?: string }
|
|
67
|
+
export const CreateClientRequestV1 = Schema.Struct({ "address": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client's address." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3000))), "email": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client email.", "format": "email" })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client name." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(100))), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents additional notes for the client." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3000))) })
|
|
68
|
+
export type CreateCustomAttributeRequest = { readonly "name": string, readonly "namespace": string, readonly "value": string }
|
|
69
|
+
export const CreateCustomAttributeRequest = Schema.Struct({ "name": Schema.String.annotate({ "description": "Represents custom attribute name." }).check(Schema.isMinLength(1)), "namespace": Schema.String.annotate({ "description": "Represents custom attribute namespace." }).check(Schema.isMinLength(1)), "value": Schema.String.annotate({ "description": "Represents custom attribute value." }).check(Schema.isMinLength(1)) }).annotate({ "description": "Represents a list of create custom field request objects." })
|
|
70
|
+
export type CreateExpenseV1Request = { readonly "amount": number, readonly "billable"?: boolean, readonly "categoryId": string, readonly "date": string, readonly "file": string, readonly "notes"?: string, readonly "projectId": string, readonly "taskId"?: string, readonly "userId": string }
|
|
71
|
+
export const CreateExpenseV1Request = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents an expense amount as the double data type.", "format": "double" }).check(Schema.isFinite()).check(Schema.isLessThanOrEqualTo(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)).check(Schema.isMaxLength(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)) })
|
|
72
|
+
export type CreateInvoiceDtoV1 = { readonly "billFrom"?: string, readonly "clientId"?: string, readonly "currency"?: string, readonly "dueDate"?: string, readonly "id"?: string, readonly "issuedDate"?: string, readonly "number"?: string }
|
|
73
|
+
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." })) })
|
|
74
|
+
export type CreateInvoiceItemRequestV1 = { readonly "applyTaxes": "TAX1" | "TAX2" | "TAX1TAX2" | "NONE", readonly "description": string, readonly "itemType": string, readonly "quantity": number, readonly "unitPrice": number }
|
|
75
|
+
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." }).check(Schema.isMinLength(1)), "quantity": Schema.Number.annotate({ "description": "Represents an item quantity.", "format": "int64" }).check(Schema.isInt()), "unitPrice": Schema.Number.annotate({ "description": "Represents an item unit price.", "format": "int64" }).check(Schema.isInt()) })
|
|
76
|
+
export type CreateInvoicePaymentRequest = { readonly "amount"?: number, readonly "note"?: string, readonly "paymentDate"?: string }
|
|
77
|
+
export const CreateInvoicePaymentRequest = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice payment amount as long.", "format": "int64" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1))), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice payment note." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(1000))), "paymentDate": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an invoice payment date in yyyy-MM-ddThh:mm:ssZ format." })) })
|
|
78
|
+
export type CreateInvoiceRequest = { readonly "clientId": string, readonly "currency": string, readonly "dueDate": string, readonly "issuedDate": string, readonly "number": string, readonly "timeViewMode"?: "TIME_SENSITIVE_VIEW" | "AGGREGATED_TIME_VIEW" }
|
|
79
|
+
export const CreateInvoiceRequest = Schema.Struct({ "clientId": Schema.String.annotate({ "description": "Represents a client identifier across the system." }).check(Schema.isMinLength(1)), "currency": Schema.String.annotate({ "description": "Represents the currency used by the invoice." }).check(Schema.isMinLength(1)), "dueDate": Schema.String.annotate({ "description": "Represents an invoice due date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }), "issuedDate": Schema.String.annotate({ "description": "Represents an invoice issued date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }), "number": Schema.String.annotate({ "description": "Represents an invoice number." }).check(Schema.isMinLength(1)), "timeViewMode": Schema.optionalKey(Schema.Literals(["TIME_SENSITIVE_VIEW", "AGGREGATED_TIME_VIEW"])) })
|
|
80
|
+
export type CreateProjectFromTemplateV1 = { readonly "clientId"?: string, readonly "color"?: string, readonly "isPublic"?: boolean, readonly "name": string, readonly "templateProjectId": string }
|
|
81
|
+
export const CreateProjectFromTemplateV1 = Schema.Struct({ "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client identifier across the system." })), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Color format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." }).check(Schema.isPattern(new RegExp("^#(?:[0-9a-fA-F]{6}){1}$")))), "isPublic": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the project is public or not." })), "name": Schema.String.annotate({ "description": "Represents a project name." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(250)), "templateProjectId": Schema.String.annotate({ "description": "Represents a project identifier across the system." }).check(Schema.isMinLength(1)) })
|
|
82
|
+
export type CreateRecurringAssignmentRequestV1 = { readonly "repeat"?: boolean, readonly "weeks": number }
|
|
83
|
+
export const CreateRecurringAssignmentRequestV1 = Schema.Struct({ "repeat": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is recurring or not." })), "weeks": Schema.Number.annotate({ "description": "Indicates number of weeks for assignment.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(99)) }).annotate({ "description": "Represents a recurring assignment object. This parameter is optional." })
|
|
84
|
+
export type CreateWebhookRequestV1 = { readonly "name"?: string, readonly "triggerSource": ReadonlyArray<string>, readonly "triggerSourceType": "PROJECT_ID" | "USER_ID" | "TAG_ID" | "TASK_ID" | "WORKSPACE_ID" | "ASSIGNMENT_ID" | "EXPENSE_ID", readonly "url": string, readonly "webhookEvent": "NEW_PROJECT" | "NEW_TASK" | "NEW_CLIENT" | "NEW_TIMER_STARTED" | "TIMER_STOPPED" | "TIME_ENTRY_UPDATED" | "TIME_ENTRY_DELETED" | "TIME_ENTRY_SPLIT" | "NEW_TIME_ENTRY" | "TIME_ENTRY_RESTORED" | "NEW_TAG" | "USER_DELETED_FROM_WORKSPACE" | "USER_JOINED_WORKSPACE" | "USER_DEACTIVATED_ON_WORKSPACE" | "USER_ACTIVATED_ON_WORKSPACE" | "USER_EMAIL_CHANGED" | "USER_UPDATED" | "NEW_INVOICE" | "INVOICE_UPDATED" | "NEW_APPROVAL_REQUEST" | "APPROVAL_REQUEST_STATUS_UPDATED" | "TIME_OFF_REQUESTED" | "TIME_OFF_REQUEST_UPDATED" | "TIME_OFF_REQUEST_APPROVED" | "TIME_OFF_REQUEST_REJECTED" | "TIME_OFF_REQUEST_STARTED" | "TIME_OFF_REQUEST_WITHDRAWN" | "BALANCE_UPDATED" | "TAG_UPDATED" | "TAG_DELETED" | "TASK_UPDATED" | "CLIENT_UPDATED" | "TASK_DELETED" | "CLIENT_DELETED" | "EXPENSE_RESTORED" | "ASSIGNMENT_CREATED" | "ASSIGNMENT_DELETED" | "ASSIGNMENT_PUBLISHED" | "ASSIGNMENT_UPDATED" | "EXPENSE_CREATED" | "EXPENSE_DELETED" | "EXPENSE_UPDATED" | "PROJECT_UPDATED" | "PROJECT_DELETED" | "USER_GROUP_CREATED" | "USER_GROUP_UPDATED" | "USER_GROUP_DELETED" | "USERS_INVITED_TO_WORKSPACE" | "LIMITED_USERS_ADDED_TO_WORKSPACE" | "COST_RATE_UPDATED" | "BILLABLE_RATE_UPDATED" }
|
|
85
|
+
export const CreateWebhookRequestV1 = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a webhook name." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(30))), "triggerSource": Schema.Array(Schema.String.annotate({ "description": "Represents a list of trigger sources." })).annotate({ "description": "Represents a list of trigger sources." }), "triggerSourceType": Schema.Literals(["PROJECT_ID", "USER_ID", "TAG_ID", "TASK_ID", "WORKSPACE_ID", "ASSIGNMENT_ID", "EXPENSE_ID"]).annotate({ "description": "Represents a webhook event trigger source type." }), "url": Schema.String.annotate({ "description": "Represents a webhook target url." }).check(Schema.isMinLength(1)), "webhookEvent": Schema.Literals(["NEW_PROJECT", "NEW_TASK", "NEW_CLIENT", "NEW_TIMER_STARTED", "TIMER_STOPPED", "TIME_ENTRY_UPDATED", "TIME_ENTRY_DELETED", "TIME_ENTRY_SPLIT", "NEW_TIME_ENTRY", "TIME_ENTRY_RESTORED", "NEW_TAG", "USER_DELETED_FROM_WORKSPACE", "USER_JOINED_WORKSPACE", "USER_DEACTIVATED_ON_WORKSPACE", "USER_ACTIVATED_ON_WORKSPACE", "USER_EMAIL_CHANGED", "USER_UPDATED", "NEW_INVOICE", "INVOICE_UPDATED", "NEW_APPROVAL_REQUEST", "APPROVAL_REQUEST_STATUS_UPDATED", "TIME_OFF_REQUESTED", "TIME_OFF_REQUEST_UPDATED", "TIME_OFF_REQUEST_APPROVED", "TIME_OFF_REQUEST_REJECTED", "TIME_OFF_REQUEST_STARTED", "TIME_OFF_REQUEST_WITHDRAWN", "BALANCE_UPDATED", "TAG_UPDATED", "TAG_DELETED", "TASK_UPDATED", "CLIENT_UPDATED", "TASK_DELETED", "CLIENT_DELETED", "EXPENSE_RESTORED", "ASSIGNMENT_CREATED", "ASSIGNMENT_DELETED", "ASSIGNMENT_PUBLISHED", "ASSIGNMENT_UPDATED", "EXPENSE_CREATED", "EXPENSE_DELETED", "EXPENSE_UPDATED", "PROJECT_UPDATED", "PROJECT_DELETED", "USER_GROUP_CREATED", "USER_GROUP_UPDATED", "USER_GROUP_DELETED", "USERS_INVITED_TO_WORKSPACE", "LIMITED_USERS_ADDED_TO_WORKSPACE", "COST_RATE_UPDATED", "BILLABLE_RATE_UPDATED"]).annotate({ "description": "Represents a webhook event type." }) })
|
|
86
|
+
export type CreateWorkspaceRequestV1 = { readonly "name"?: string, readonly "organizationId"?: string }
|
|
87
|
+
export const CreateWorkspaceRequestV1 = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a workspace name." }).check(Schema.isMinLength(1)).check(Schema.isMaxLength(50))), "organizationId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the Cake organization identifier across the system." })) })
|
|
88
|
+
export type CurrencyWithDefaultInfoDtoV1 = { readonly "code"?: string, readonly "id"?: string, readonly "isDefault"?: boolean }
|
|
89
|
+
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." })
|
|
90
|
+
export type CustomFieldDefaultValuesDtoV1 = { readonly "projectId"?: string, readonly "status"?: string, readonly "value"?: { } }
|
|
91
|
+
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." })
|
|
92
|
+
export type CustomFieldProjectDefaultValuesRequest = { readonly "defaultValue"?: { }, readonly "status"?: "INACTIVE" | "VISIBLE" | "INVISIBLE" }
|
|
93
|
+
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." })) })
|
|
94
|
+
export type CustomFieldRequestV1 = { readonly "allowedValues"?: ReadonlyArray<string>, readonly "description"?: string, readonly "entityType"?: "TIMEENTRY" | "USER", readonly "name": string, readonly "onlyAdminCanEdit"?: boolean, readonly "placeholder"?: string, readonly "status"?: "INACTIVE" | "VISIBLE" | "INVISIBLE", readonly "type": "TXT" | "NUMBER" | "DROPDOWN_SINGLE" | "DROPDOWN_MULTIPLE" | "CHECKBOX" | "LINK", readonly "workspaceDefaultValue"?: { } }
|
|
95
|
+
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>" })) })
|
|
96
|
+
export type CustomFieldType = never
|
|
97
|
+
export const CustomFieldType = Schema.Never
|
|
98
|
+
export type CustomFieldValueDto = { readonly "customFieldId"?: string, readonly "sourceType"?: "WORKSPACE" | "PROJECT" | "TIMEENTRY", readonly "timeEntryId"?: string, readonly "value"?: { } }
|
|
99
|
+
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." })
|
|
100
|
+
export type CustomFieldValueDtoV1 = { readonly "customFieldId"?: string, readonly "name"?: string, readonly "timeEntryId"?: string, readonly "type"?: string, readonly "value"?: { } }
|
|
101
|
+
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." })
|
|
102
|
+
export type DatePeriod = { readonly "endDate"?: string, readonly "startDate"?: string }
|
|
103
|
+
export const DatePeriod = Schema.Struct({ "endDate": Schema.optionalKey(Schema.String.annotate({ "format": "date" })), "startDate": Schema.optionalKey(Schema.String.annotate({ "format": "date" })) }).annotate({ "description": "Represents startDate and endDate of the holiday. Date is in format yyyy-mm-dd" })
|
|
104
|
+
export type DatePeriodRequest = { readonly "endDate": string, readonly "startDate": string }
|
|
105
|
+
export const DatePeriodRequest = Schema.Struct({ "endDate": Schema.String.annotate({ "description": "yyyy-MM-dd format date" }).check(Schema.isMinLength(1)), "startDate": Schema.String.annotate({ "description": "yyyy-MM-dd format date" }).check(Schema.isMinLength(1)) }).annotate({ "description": "Provide startDate and endDate for the holiday." })
|
|
106
|
+
export type DateRangeDto = { readonly "end"?: string, readonly "start"?: string }
|
|
107
|
+
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." })
|
|
108
|
+
export type DefaultEntitiesDto = { readonly "projectId"?: string, readonly "taskId"?: string }
|
|
109
|
+
export const DefaultEntitiesDto = Schema.Struct({ "projectId": Schema.optionalKey(Schema.String), "taskId": Schema.optionalKey(Schema.String) })
|
|
110
|
+
export type DefaultEntitiesRequest = { readonly "projectId"?: string, readonly "taskId"?: string }
|
|
111
|
+
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." })
|
|
112
|
+
export type EntityCreationPermission = never
|
|
113
|
+
export const EntityCreationPermission = Schema.Never
|
|
114
|
+
export type EntityIdNameDto = { readonly "id"?: string, readonly "name"?: string }
|
|
115
|
+
export const EntityIdNameDto = Schema.Struct({ "id": Schema.optionalKey(Schema.String), "name": Schema.optionalKey(Schema.String) }).annotate({ "description": "Contains names of user groups that are assigned to holiday." })
|
|
116
|
+
export type EstimateDtoV1 = { readonly "estimate"?: string, readonly "type"?: "AUTO" | "MANUAL" }
|
|
117
|
+
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." })
|
|
118
|
+
export type EstimateRequest = { readonly "estimate"?: string, readonly "type"?: "AUTO" | "MANUAL" }
|
|
119
|
+
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." })
|
|
120
|
+
export type EstimateResetDto = { readonly "dayOfMonth"?: number, readonly "dayOfWeek"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "hour"?: number, readonly "interval"?: "WEEKLY" | "MONTHLY" | "YEARLY", readonly "month"?: "JANUARY" | "FEBRUARY" | "MARCH" | "APRIL" | "MAY" | "JUNE" | "JULY" | "AUGUST" | "SEPTEMBER" | "OCTOBER" | "NOVEMBER" | "DECEMBER" }
|
|
121
|
+
export const EstimateResetDto = Schema.Struct({ "dayOfMonth": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())), "dayOfWeek": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"])), "hour": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())), "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" })
|
|
122
|
+
export type EstimateResetRequest = { readonly "active"?: boolean, readonly "dayOfMonth"?: number, readonly "dayOfWeek"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "hour"?: number, readonly "interval"?: "WEEKLY" | "MONTHLY" | "YEARLY", readonly "isActive"?: boolean, readonly "month"?: "JANUARY" | "FEBRUARY" | "MARCH" | "APRIL" | "MAY" | "JUNE" | "JULY" | "AUGUST" | "SEPTEMBER" | "OCTOBER" | "NOVEMBER" | "DECEMBER" }
|
|
123
|
+
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()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(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()).check(Schema.isGreaterThanOrEqualTo(0)).check(Schema.isLessThanOrEqualTo(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." })
|
|
124
|
+
export type EstimateWithOptionsDto = { readonly "active"?: boolean, readonly "estimate"?: number, readonly "includeExpenses"?: boolean, readonly "resetOption"?: "WEEKLY" | "MONTHLY" | "YEARLY", readonly "type"?: "AUTO" | "MANUAL" }
|
|
125
|
+
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())), "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." })
|
|
126
|
+
export type EstimateWithOptionsRequest = { readonly "active"?: boolean, readonly "estimate"?: number, readonly "includeExpenses"?: boolean, readonly "resetOption"?: "WEEKLY" | "MONTHLY" | "YEARLY", readonly "type"?: "AUTO" | "MANUAL" }
|
|
127
|
+
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()).check(Schema.isGreaterThanOrEqualTo(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." })
|
|
128
|
+
export type ExpenseCategoryArchiveV1Request = { readonly "archived"?: boolean }
|
|
129
|
+
export const ExpenseCategoryArchiveV1Request = Schema.Struct({ "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag whether to archive the expense category or not." })) })
|
|
130
|
+
export type ExpenseCategoryDto = { readonly "archived"?: boolean, readonly "hasUnitPrice"?: boolean, readonly "id"?: string, readonly "name"?: string, readonly "priceInCents"?: number, readonly "unit"?: string, readonly "workspaceId"?: string }
|
|
131
|
+
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())), "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." })
|
|
132
|
+
export type ExpenseCategoryDtoV1 = { readonly "archived"?: boolean, readonly "hasUnitPrice"?: boolean, readonly "id"?: string, readonly "name"?: string, readonly "priceInCents"?: number, readonly "unit"?: string, readonly "workspaceId"?: string }
|
|
133
|
+
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())), "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." })
|
|
134
|
+
export type ExpenseCategoryV1Request = { readonly "hasUnitPrice"?: boolean, readonly "name": string, readonly "priceInCents"?: number, readonly "unit"?: string }
|
|
135
|
+
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)).check(Schema.isMaxLength(250)), "priceInCents": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents price in cents as integer.", "format": "int32" }).check(Schema.isInt())), "unit": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a valid expense category unit." })) })
|
|
136
|
+
export type ExpenseDailyTotalsDtoV1 = { readonly "date"?: string, readonly "dateAsInstant"?: string, readonly "total"?: number }
|
|
137
|
+
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({ "description": "Represents a list of expense daily total data transfer objects." })
|
|
138
|
+
export type ExpenseDtoV1 = { readonly "billable"?: boolean, readonly "categoryId"?: string, readonly "date"?: string, readonly "fileId"?: string, readonly "id"?: string, readonly "isLocked"?: boolean, readonly "locked"?: boolean, readonly "notes"?: string, readonly "projectId"?: string, readonly "quantity"?: number, readonly "taskId"?: string, readonly "total"?: number, readonly "userId"?: string, readonly "workspaceId"?: string }
|
|
139
|
+
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())), "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())), "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." })) })
|
|
140
|
+
export type ExpenseWeeklyTotalsDtoV1 = { readonly "date"?: string, readonly "total"?: number }
|
|
141
|
+
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({ "description": "Represents a list of expense weekly total data transfer objects." })
|
|
142
|
+
export type Feature = never
|
|
143
|
+
export const Feature = Schema.Never
|
|
144
|
+
export type FeaturePlan = never
|
|
145
|
+
export const FeaturePlan = Schema.Never
|
|
146
|
+
export type GetTimeOffRequestsV1Request = { readonly "end"?: string, readonly "page"?: number, readonly "pageSize"?: number, readonly "start"?: string, readonly "statuses"?: ReadonlyArray<"PENDING" | "APPROVED" | "REJECTED" | "ALL">, readonly "userGroups"?: ReadonlyArray<string>, readonly "users"?: ReadonlyArray<string> }
|
|
147
|
+
export const GetTimeOffRequestsV1Request = Schema.Struct({ "end": Schema.optionalKey(Schema.String.annotate({ "description": "Provide the end of the filtering period. Used with `start` to filter for time-off requests periods that occur (fully or partially) within this range. Both parameters must be provided for filtering to take effect. Provide end in format YYYY-MM-DDTHH:MM:SS.ssssssZ", "format": "date-time" })), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt()).check(Schema.isLessThanOrEqualTo(1000))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(200))), "start": Schema.optionalKey(Schema.String.annotate({ "description": "Provide the beginning of the filtering period. Used with `end` to filter for time-off requests periods that occur (fully or partially) within this range. Both parameters must be provided for filtering to take effect. Provide start in format YYYY-MM-DDTHH:MM:SS.ssssssZ", "format": "date-time" })), "statuses": Schema.optionalKey(Schema.Array(Schema.Literals(["PENDING", "APPROVED", "REJECTED", "ALL"]).annotate({ "description": "Filters time off requests by status." })).annotate({ "description": "Filters time off requests by status." }).check(Schema.isUnique())), "userGroups": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Provide the user group ids of time off requests." })).annotate({ "description": "Provide the user group ids of time off requests." }).check(Schema.isUnique())), "users": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Provide the user ids of time off requests. If empty, will return time off requests of all users (with a maximum of 5000 users)." })).annotate({ "description": "Provide the user ids of time off requests. If empty, will return time off requests of all users (with a maximum of 5000 users)." }).check(Schema.isUnique())) })
|
|
148
|
+
export type GetUsersRequestV1 = { readonly "accountStatuses"?: ReadonlyArray<string>, readonly "email"?: string, readonly "includeRoles"?: boolean, readonly "memberships"?: "ALL" | "NONE" | "WORKSPACE" | "PROJECT" | "USERGROUP", readonly "name"?: string, readonly "page"?: number, readonly "pageSize"?: number, readonly "projectId"?: string, readonly "roles"?: ReadonlyArray<"WORKSPACE_ADMIN" | "OWNER" | "TEAM_MANAGER" | "PROJECT_MANAGER">, readonly "sortColumn"?: "ID" | "EMAIL" | "NAME" | "NAME_LOWERCASE" | "ACCESS" | "HOURLYRATE" | "COSTRATE", readonly "sortOrder"?: "ASCENDING" | "DESCENDING", readonly "status"?: "PENDING" | "ACTIVE" | "DECLINED" | "INACTIVE" | "ALL", readonly "userGroups"?: ReadonlyArray<string> }
|
|
149
|
+
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())), "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())), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(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())), "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())) })
|
|
150
|
+
export type HourlyRateDtoV1 = { readonly "amount"?: number, readonly "currency"?: string }
|
|
151
|
+
export const HourlyRateDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt())), "currency": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a currency." })) }).annotate({ "description": "Represents an hourly rate object." })
|
|
152
|
+
export type HourlyRateRequest = { readonly "amount": number, readonly "since"?: string }
|
|
153
|
+
export const HourlyRateRequest = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents a cost rate amount as integer.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(0)), "since": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a datetime in yyyy-MM-ddThh:mm:ssZ format." })) }).annotate({ "description": "Represents an hourly rate request object." })
|
|
154
|
+
export type HourlyRateRequestV1 = { readonly "amount": number, readonly "since"?: string }
|
|
155
|
+
export const HourlyRateRequestV1 = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents an hourly rate amount as integer.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(0)), "since": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date and time in yyyy-MM-ddThh:mm:ssZ format." })) })
|
|
156
|
+
export type InvoiceDefaultSettingsDto = { readonly "companyId"?: string, readonly "defaultImportExpenseItemTypeId"?: string, readonly "defaultImportTimeItemTypeId"?: string, readonly "dueDays"?: number, readonly "itemType"?: string, readonly "itemTypeId"?: string, readonly "notes"?: string, readonly "subject"?: string, readonly "tax"?: number, readonly "tax2"?: number, readonly "tax2Percent"?: number, readonly "taxPercent"?: number, readonly "taxType"?: "COMPOUND" | "SIMPLE" | "NONE" }
|
|
157
|
+
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())), "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())), "tax2": Schema.optionalKey(Schema.Number.annotate({ "format": "int64" }).check(Schema.isInt())), "tax2Percent": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a tax amount in percentage.", "format": "double" }).check(Schema.isFinite())), "taxPercent": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a tax amount in percentage.", "format": "double" }).check(Schema.isFinite())), "taxType": Schema.optionalKey(Schema.Literals(["COMPOUND", "SIMPLE", "NONE"]).annotate({ "description": "Represents a tax type." })) }).annotate({ "description": "Represents an invoice default settings object." })
|
|
158
|
+
export type InvoiceDefaultSettingsRequestV1 = { readonly "companyId"?: string, readonly "dueDays"?: number, readonly "itemTypeId"?: string, readonly "notes": string, readonly "subject": string, readonly "tax2Percent"?: number, readonly "taxPercent"?: number, readonly "taxType"?: "COMPOUND" | "SIMPLE" | "NONE" }
|
|
159
|
+
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())), "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())), "taxPercent": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a tax amount in percentage.", "format": "double" }).check(Schema.isFinite())), "taxType": Schema.optionalKey(Schema.Literals(["COMPOUND", "SIMPLE", "NONE"]).annotate({ "description": "Represents a tax type." })) }).annotate({ "description": "Represents an invoice default settings object." })
|
|
160
|
+
export type InvoiceDtoV1 = { readonly "amount"?: number, readonly "balance"?: number, readonly "clientId"?: string, readonly "clientName"?: string, readonly "currency"?: string, readonly "dueDate"?: string, readonly "id"?: string, readonly "issuedDate"?: string, readonly "number"?: string, readonly "paid"?: number, readonly "status"?: "UNSENT" | "SENT" | "PAID" | "PARTIALLY_PAID" | "VOID" | "OVERDUE" }
|
|
161
|
+
export const InvoiceDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice amount as long.", "format": "int64" }).check(Schema.isInt())), "balance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice balance amount as long.", "format": "int64" }).check(Schema.isInt())), "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())), "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." })
|
|
162
|
+
export type InvoiceExportFields = { readonly "RTL"?: boolean, readonly "itemType"?: boolean, readonly "quantity"?: boolean, readonly "rtl"?: boolean, readonly "tax"?: boolean, readonly "tax2"?: boolean, readonly "unitPrice"?: boolean }
|
|
163
|
+
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." })
|
|
164
|
+
export type InvoiceExportFieldsRequest = { readonly "itemType"?: boolean, readonly "quantity"?: boolean, readonly "rtl"?: boolean, readonly "tax"?: boolean, readonly "tax2"?: boolean, readonly "unitPrice"?: boolean }
|
|
165
|
+
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." })
|
|
166
|
+
export type InvoicePaymentDtoV1 = { readonly "amount"?: number, readonly "author"?: string, readonly "date"?: string, readonly "id"?: string, readonly "note"?: string }
|
|
167
|
+
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." })) })
|
|
168
|
+
export type LabelsCustomization = { readonly "amount"?: string, readonly "billFrom"?: string, readonly "billTo"?: string, readonly "description"?: string, readonly "discount"?: string, readonly "dueDate"?: string, readonly "issueDate"?: string, readonly "itemType"?: string, readonly "notes"?: string, readonly "paid"?: string, readonly "quantity"?: string, readonly "subtotal"?: string, readonly "tax"?: string, readonly "tax2"?: string, readonly "total"?: string, readonly "totalAmount"?: string, readonly "unitPrice"?: string }
|
|
169
|
+
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." })
|
|
170
|
+
export type LabelsCustomizationRequest = { readonly "amount": string, readonly "billFrom": string, readonly "billTo": string, readonly "description": string, readonly "discount": string, readonly "dueDate": string, readonly "issueDate": string, readonly "itemType": string, readonly "notes": string, readonly "paid": string, readonly "quantity": string, readonly "subtotal": string, readonly "tax": string, readonly "tax2": string, readonly "total": string, readonly "totalAmountDue": string, readonly "unitPrice": string }
|
|
171
|
+
export const LabelsCustomizationRequest = Schema.Struct({ "amount": Schema.String.annotate({ "description": "Represents invoice amount label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "billFrom": Schema.String.annotate({ "description": "Represents invoice bill from label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "billTo": Schema.String.annotate({ "description": "Represents invoice bill to label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "description": Schema.String.annotate({ "description": "Represents invoice description label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "discount": Schema.String.annotate({ "description": "Represents invoice discount amount label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "dueDate": Schema.String.annotate({ "description": "Represents invoice due date label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "issueDate": Schema.String.annotate({ "description": "Represents invoice issue date label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "itemType": Schema.String.annotate({ "description": "Represents invoice item type label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "notes": Schema.String.annotate({ "description": "Represents invoice notes label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "paid": Schema.String.annotate({ "description": "Represents invoice paid amount label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "quantity": Schema.String.annotate({ "description": "Represents invoice quantity label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "subtotal": Schema.String.annotate({ "description": "Represents invoice subtotal label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "tax": Schema.String.annotate({ "description": "Represents invoice tax amount label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "tax2": Schema.String.annotate({ "description": "Represents invoice tax 2 amount label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "total": Schema.String.annotate({ "description": "Represents invoice total amount label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "totalAmountDue": Schema.String.annotate({ "description": "Represents invoice total amount due label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)), "unitPrice": Schema.String.annotate({ "description": "Represents invoice unit price label." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(20)) }).annotate({ "description": "Represents a label customization object." })
|
|
172
|
+
export type LogBinDocumentDto = { readonly "deletedAt"?: string, readonly "document"?: { }, readonly "documentCode"?: string, readonly "id"?: string }
|
|
173
|
+
export const LogBinDocumentDto = Schema.Struct({ "deletedAt": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "document": Schema.optionalKey(Schema.Struct({ })), "documentCode": Schema.optionalKey(Schema.String), "id": Schema.optionalKey(Schema.String) })
|
|
174
|
+
export type MilestoneDto = { readonly "date"?: string, readonly "id"?: string, readonly "name"?: string, readonly "projectId"?: string, readonly "workspaceId"?: string }
|
|
175
|
+
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." })
|
|
176
|
+
export type NegativeBalanceDto = { readonly "amount"?: number, readonly "period"?: string, readonly "shouldReset"?: boolean, readonly "timeUnit"?: string }
|
|
177
|
+
export const NegativeBalanceDto = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "format": "double" }).check(Schema.isFinite())), "period": Schema.optionalKey(Schema.String), "shouldReset": Schema.optionalKey(Schema.Boolean), "timeUnit": Schema.optionalKey(Schema.String) }).annotate({ "description": "Represents the data about negative balance including amount, time unit and period." })
|
|
178
|
+
export type NegativeBalanceRequest = { readonly "amount": number, readonly "period"?: "MONTH" | "YEAR", readonly "shouldReset"?: boolean }
|
|
179
|
+
export const NegativeBalanceRequest = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents negative balance amount.", "format": "double" }).check(Schema.isFinite()).check(Schema.isGreaterThanOrEqualTo(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." })
|
|
180
|
+
export type PatchProjectTemplateRequest = { readonly "isTemplate"?: boolean }
|
|
181
|
+
export const PatchProjectTemplateRequest = Schema.Struct({ "isTemplate": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is a template or not." })) })
|
|
182
|
+
export type Period = { readonly "end"?: string, readonly "start"?: string }
|
|
183
|
+
export const Period = Schema.Struct({ "end": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "start": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })) })
|
|
184
|
+
export type PeriodV1Request = { readonly "days"?: number, readonly "end"?: string, readonly "start"?: string }
|
|
185
|
+
export const PeriodV1Request = Schema.Struct({ "days": Schema.optionalKey(Schema.Number.annotate({ "description": "Provide number of days.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(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." })
|
|
186
|
+
export type PolicyApprovalDto = { readonly "requiresApproval"?: boolean, readonly "specificMembers"?: boolean, readonly "teamManagers"?: boolean, readonly "userIds"?: ReadonlyArray<string> }
|
|
187
|
+
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({ "description": "Represents approval settings." })
|
|
188
|
+
export type ProjectInfoDto = { readonly "clientId"?: string, readonly "clientName"?: string, readonly "color"?: string, readonly "id"?: string, readonly "name"?: string }
|
|
189
|
+
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." })
|
|
190
|
+
export type ProjectTaskTupleDto = { readonly "projectId"?: string, readonly "taskId"?: string }
|
|
191
|
+
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." })
|
|
192
|
+
export type ProjectTaskTupleRequest = { readonly "projectId": string, readonly "taskId"?: string, readonly "type"?: string }
|
|
193
|
+
export const ProjectTaskTupleRequest = Schema.Struct({ "projectId": Schema.String.annotate({ "description": "Represents a project identifier across the system." }).check(Schema.isMinLength(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." })
|
|
194
|
+
export type ProjectTotalsRequestV1 = { readonly "end": string, readonly "page"?: number, readonly "pageSize"?: number, readonly "search"?: string, readonly "start": string, readonly "statusFilter"?: "PUBLISHED" | "UNPUBLISHED" | "ALL" }
|
|
195
|
+
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())), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isLessThanOrEqualTo(200))), "search": Schema.optionalKey(Schema.String.annotate({ "description": "Represents 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." })) })
|
|
196
|
+
export type RateDto = { readonly "amount"?: number, readonly "currency"?: string }
|
|
197
|
+
export const RateDto = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt())), "currency": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a currency." })) }).annotate({ "description": "Represents cost rate object." })
|
|
198
|
+
export type RateDtoV1 = { readonly "amount"?: number, readonly "currency"?: string }
|
|
199
|
+
export const RateDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt())), "currency": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a currency." })) }).annotate({ "description": "Represents cost rate object." })
|
|
200
|
+
export type RateWithCurrencyRequestV1 = { readonly "amount": number, readonly "currency": string, readonly "since"?: string }
|
|
201
|
+
export const RateWithCurrencyRequestV1 = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents an amount as integer.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(0)), "currency": Schema.String.annotate({ "description": "Represents a currency." }).check(Schema.isMinLength(1)).check(Schema.isMaxLength(100)), "since": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date and time in yyyy-MM-ddThh:mm:ssZ format." })) })
|
|
202
|
+
export type RecurringAssignmentDto = { readonly "repeat"?: boolean, readonly "seriesId"?: string, readonly "weeks"?: number }
|
|
203
|
+
export const RecurringAssignmentDto = Schema.Struct({ "repeat": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is recurring or not." })), "seriesId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents series identifier." })), "weeks": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents number of weeks for thhis assignment.", "format": "int32" }).check(Schema.isInt())) }).annotate({ "description": "Represents recurring assignment object." })
|
|
204
|
+
export type RecurringAssignmentRequestV1 = { readonly "repeat"?: boolean, readonly "weeks": number }
|
|
205
|
+
export const RecurringAssignmentRequestV1 = Schema.Struct({ "repeat": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is recurring or not." })), "weeks": Schema.Number.annotate({ "description": "Indicates number of weeks for assignment.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(99)) })
|
|
206
|
+
export type RoleRequestV1 = { readonly "entityId": string, readonly "role": "WORKSPACE_ADMIN" | "TEAM_MANAGER" | "PROJECT_MANAGER", readonly "sourceType"?: "USER_GROUP" }
|
|
207
|
+
export const RoleRequestV1 = Schema.Struct({ "entityId": Schema.String.annotate({ "description": "Represents an entity identifier across the system." }).check(Schema.isMinLength(1)), "role": Schema.Literals(["WORKSPACE_ADMIN", "TEAM_MANAGER", "PROJECT_MANAGER"]).annotate({ "description": "Represents a valid role." }), "sourceType": Schema.optionalKey(Schema.Literal("USER_GROUP").annotate({ "description": "Optional field used to indicate that the target of the operation is a\nuser group, in which case the value USER_GROUP should be used, alongside a valid user group\nID for the entityId field. If omitted, a user ID should be used for the entityId field.\n" })) })
|
|
208
|
+
export type RoundDto = { readonly "minutes"?: string, readonly "round"?: string }
|
|
209
|
+
export const RoundDto = Schema.Struct({ "minutes": Schema.optionalKey(Schema.String), "round": Schema.optionalKey(Schema.String) }).annotate({ "description": "Represents a time rounding object." })
|
|
210
|
+
export type SchedulingExcludeDay = { readonly "date"?: string, readonly "type"?: "WEEKEND" | "HOLIDAY" | "TIME_OFF" }
|
|
211
|
+
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" })
|
|
212
|
+
export type StatusTimeOffRequestV1Request = { readonly "note"?: string, readonly "status"?: "APPROVED" | "REJECTED" }
|
|
213
|
+
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." })) })
|
|
214
|
+
export type StopTimeEntryRequest = { readonly "end": string }
|
|
215
|
+
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" }) })
|
|
216
|
+
export type SummaryReportSettingsDtoV1 = { readonly "group": string, readonly "subgroup": string }
|
|
217
|
+
export const SummaryReportSettingsDtoV1 = Schema.Struct({ "group": Schema.String.check(Schema.isMinLength(1)), "subgroup": Schema.String.check(Schema.isMinLength(1)) }).annotate({ "description": "Represents a summary report settings object." })
|
|
218
|
+
export type TagDto = { readonly "archived": boolean, readonly "id": string, readonly "name": string, readonly "workspaceId": string }
|
|
219
|
+
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." })
|
|
220
|
+
export type TagDtoV1 = { readonly "archived": boolean, readonly "id": string, readonly "name": string, readonly "workspaceId": string }
|
|
221
|
+
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." }) })
|
|
222
|
+
export type TagRequest = { readonly "name"?: string }
|
|
223
|
+
export const TagRequest = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a tag name." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(100))) })
|
|
224
|
+
export type TaskInfoDto = { readonly "id"?: string, readonly "name"?: string }
|
|
225
|
+
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." })
|
|
226
|
+
export type TaskRequestV1 = { readonly "assigneeId"?: string, readonly "assigneeIds"?: ReadonlyArray<string>, readonly "budgetEstimate"?: number, readonly "estimate"?: string, readonly "id"?: string, readonly "name": string, readonly "status"?: "ACTIVE" | "DONE" | "ALL", readonly "userGroupIds"?: ReadonlyArray<string> }
|
|
227
|
+
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())), "budgetEstimate": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents a task budget estimate as long.", "format": "int64" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(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)).check(Schema.isMaxLength(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())) })
|
|
228
|
+
export type TaskStatus = never
|
|
229
|
+
export const TaskStatus = Schema.Never
|
|
230
|
+
export type TaxType = never
|
|
231
|
+
export const TaxType = Schema.Never
|
|
232
|
+
export type TemplateDto = { readonly "id"?: string, readonly "name"?: string, readonly "userId"?: string, readonly "workspaceId"?: string }
|
|
233
|
+
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." })) })
|
|
234
|
+
export type TemplatePatchRequest = { readonly "name": string }
|
|
235
|
+
export const TemplatePatchRequest = Schema.Struct({ "name": Schema.String.annotate({ "description": "Represents a template name." }).check(Schema.isMinLength(1)) })
|
|
236
|
+
export type TimeEntryId = { readonly "dateOfCreationFromObjectId"?: string }
|
|
237
|
+
export const TimeEntryId = Schema.Struct({ "dateOfCreationFromObjectId": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })) }).annotate({ "description": "Represents a list of invoiced time entry ids" })
|
|
238
|
+
export type TimeEstimateDto = { readonly "active"?: boolean, readonly "estimate"?: string, readonly "includeNonBillable"?: boolean, readonly "resetOption"?: "WEEKLY" | "MONTHLY" | "YEARLY", readonly "type"?: "AUTO" | "MANUAL" }
|
|
239
|
+
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." })
|
|
240
|
+
export type TimeEstimateRequest = { readonly "active"?: boolean, readonly "estimate"?: string, readonly "includeNonBillable"?: boolean, readonly "resetOption"?: "WEEKLY" | "MONTHLY" | "YEARLY", readonly "type"?: "AUTO" | "MANUAL" }
|
|
241
|
+
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." })
|
|
242
|
+
export type TimeIntervalDto = { readonly "duration"?: string | null, readonly "end"?: string, readonly "offsetEnd"?: number, readonly "offsetStart"?: number, readonly "start": string, readonly "timeZone"?: string, readonly "zonedEnd"?: string, readonly "zonedStart"?: string }
|
|
243
|
+
export const TimeIntervalDto = Schema.Struct({ "duration": Schema.optionalKey(Schema.Union([Schema.String, Schema.Null])), "end": Schema.optionalKey(Schema.Union([Schema.String.annotate({ "format": "date-time" })])), "offsetEnd": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())), "offsetStart": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())), "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." })
|
|
244
|
+
export type TimeIntervalDtoV1 = { readonly "duration"?: string | null, readonly "end"?: string | null, readonly "start"?: string }
|
|
245
|
+
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" })) }).annotate({ "description": "Represents a time interval object." })
|
|
246
|
+
export type TimeOffRequestStatus = { readonly "changedAt"?: string, readonly "changedByUserId"?: string, readonly "changedByUserName"?: string, readonly "changedForUserName"?: string, readonly "note"?: string, readonly "statusType"?: "PENDING" | "APPROVED" | "REJECTED" | "ALL" }
|
|
247
|
+
export const TimeOffRequestStatus = Schema.Struct({ "changedAt": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "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." })
|
|
248
|
+
export type TimeRangeRequestDtoV1 = { readonly "issue-date-end"?: string, readonly "issue-date-start"?: string }
|
|
249
|
+
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." })
|
|
250
|
+
export type TotalsPerDayDto = { readonly "date"?: string, readonly "totalHours"?: number }
|
|
251
|
+
export const TotalsPerDayDto = Schema.Struct({ "date": Schema.optionalKey(Schema.String.annotate({ "format": "date-time" })), "totalHours": Schema.optionalKey(Schema.Number.annotate({ "format": "double" }).check(Schema.isFinite())) }).annotate({ "description": "Represents total hours per day object." })
|
|
252
|
+
export type UpdateApprovalRequest = { readonly "note"?: string, readonly "state": "PENDING" | "APPROVED" | "WITHDRAWN_SUBMISSION" | "WITHDRAWN_APPROVAL" | "REJECTED" }
|
|
253
|
+
export const UpdateApprovalRequest = Schema.Struct({ "note": Schema.optionalKey(Schema.String.annotate({ "description": "Additional notes for the approval request." })), "state": Schema.Literals(["PENDING", "APPROVED", "WITHDRAWN_SUBMISSION", "WITHDRAWN_APPROVAL", "REJECTED"]).annotate({ "description": "Specifies the approval state to set." }) })
|
|
254
|
+
export type UpdateBalanceRequestV1 = { readonly "note"?: string, readonly "userIds": ReadonlyArray<string>, readonly "value": number }
|
|
255
|
+
export const UpdateBalanceRequestV1 = Schema.Struct({ "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a new balance note value." })), "userIds": Schema.Array(Schema.String.annotate({ "description": "Represents the list of users' identifiers whose balance is to be updated." })).annotate({ "description": "Represents the list of users' identifiers whose balance is to be updated." }).check(Schema.isMinLength(1)).check(Schema.isUnique()), "value": Schema.Number.annotate({ "description": "Represents a new balance value.", "format": "double" }).check(Schema.isFinite()).check(Schema.isGreaterThanOrEqualTo(-10000)).check(Schema.isLessThanOrEqualTo(10000)) })
|
|
256
|
+
export type UpdateClientRequestV1 = { readonly "address"?: string, readonly "archived"?: boolean, readonly "ccEmails"?: ReadonlyArray<string>, readonly "currencyId"?: string, readonly "email"?: string, readonly "name"?: string, readonly "note"?: string }
|
|
257
|
+
export const UpdateClientRequestV1 = Schema.Struct({ "address": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client's address." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3000))), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates if client will be archived or not." })), "ccEmails": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "format": "email" })).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3))), "currencyId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a currency identifier across the system." })), "email": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client email.", "format": "email" })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a client name." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(100))), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents additional notes for the client." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3000))) })
|
|
258
|
+
export type UpdateCustomFieldRequest = { readonly "customFieldId": string, readonly "sourceType"?: "WORKSPACE" | "PROJECT" | "TIMEENTRY", readonly "value"?: { } }
|
|
259
|
+
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." })
|
|
260
|
+
export type UpdateCustomFieldRequestV1 = { readonly "allowedValues"?: ReadonlyArray<string>, readonly "description"?: string, readonly "name": string, readonly "onlyAdminCanEdit"?: boolean, readonly "placeholder"?: string, readonly "required"?: boolean, readonly "status"?: "INACTIVE" | "VISIBLE" | "INVISIBLE", readonly "type": "TXT" | "NUMBER" | "DROPDOWN_SINGLE" | "DROPDOWN_MULTIPLE" | "CHECKBOX" | "LINK", readonly "workspaceDefaultValue"?: { } }
|
|
261
|
+
export const UpdateCustomFieldRequestV1 = 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 a custom field description." })), "name": Schema.String.annotate({ "description": "Represents a custom field name." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(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." })), "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" })), "type": Schema.Literals(["TXT", "NUMBER", "DROPDOWN_SINGLE", "DROPDOWN_MULTIPLE", "CHECKBOX", "LINK"]).annotate({ "description": "Represents a custom field type." }), "workspaceDefaultValue": Schema.optionalKey(Schema.Struct({ }).annotate({ "description": "Represents a custom field's default value in the workspace." })) })
|
|
262
|
+
export type UpdateExpenseV1Request = { readonly "amount": number, readonly "billable"?: boolean, readonly "categoryId": string, readonly "changeFields": ReadonlyArray<"USER" | "DATE" | "PROJECT" | "TASK" | "CATEGORY" | "NOTES" | "AMOUNT" | "BILLABLE" | "FILE">, readonly "date": string, readonly "file": string, readonly "notes"?: string, readonly "projectId"?: string, readonly "taskId"?: string, readonly "userId": string }
|
|
263
|
+
export const UpdateExpenseV1Request = Schema.Struct({ "amount": Schema.Number.annotate({ "description": "Represents an expense amount as the double data type.", "format": "double" }).check(Schema.isFinite()).check(Schema.isGreaterThanOrEqualTo(0)).check(Schema.isLessThanOrEqualTo(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)).check(Schema.isMaxLength(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)) })
|
|
264
|
+
export type UpdateTagRequest = { readonly "archived"?: boolean, readonly "name"?: string }
|
|
265
|
+
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)).check(Schema.isMaxLength(100))) })
|
|
266
|
+
export type UpdateTaskRequest = { readonly "assigneeId"?: string, readonly "assigneeIds"?: ReadonlyArray<string>, readonly "billable"?: boolean, readonly "budgetEstimate"?: number, readonly "estimate"?: string, readonly "name": string, readonly "status"?: "ACTIVE" | "DONE" | "ALL", readonly "userGroupIds"?: ReadonlyArray<string> }
|
|
267
|
+
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())), "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()).check(Schema.isGreaterThanOrEqualTo(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)).check(Schema.isMaxLength(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())) })
|
|
268
|
+
export type UpdateUserGroupRequest = { readonly "name"?: string }
|
|
269
|
+
export const UpdateUserGroupRequest = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a user group name." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(100))) })
|
|
270
|
+
export type UpdateUserStatusRequest = { readonly "status": "ACTIVE" | "INACTIVE" }
|
|
271
|
+
export const UpdateUserStatusRequest = Schema.Struct({ "status": Schema.Literals(["ACTIVE", "INACTIVE"]).annotate({ "description": "Represents membership status." }) })
|
|
272
|
+
export type UpdateWebhookRequestV1 = { readonly "name"?: string, readonly "triggerSource": ReadonlyArray<string>, readonly "triggerSourceType": "PROJECT_ID" | "USER_ID" | "TAG_ID" | "TASK_ID" | "WORKSPACE_ID" | "ASSIGNMENT_ID" | "EXPENSE_ID", readonly "url": string, readonly "webhookEvent": "NEW_PROJECT" | "NEW_TASK" | "NEW_CLIENT" | "NEW_TIMER_STARTED" | "TIMER_STOPPED" | "TIME_ENTRY_UPDATED" | "TIME_ENTRY_DELETED" | "TIME_ENTRY_SPLIT" | "NEW_TIME_ENTRY" | "TIME_ENTRY_RESTORED" | "NEW_TAG" | "USER_DELETED_FROM_WORKSPACE" | "USER_JOINED_WORKSPACE" | "USER_DEACTIVATED_ON_WORKSPACE" | "USER_ACTIVATED_ON_WORKSPACE" | "USER_EMAIL_CHANGED" | "USER_UPDATED" | "NEW_INVOICE" | "INVOICE_UPDATED" | "NEW_APPROVAL_REQUEST" | "APPROVAL_REQUEST_STATUS_UPDATED" | "TIME_OFF_REQUESTED" | "TIME_OFF_REQUEST_UPDATED" | "TIME_OFF_REQUEST_APPROVED" | "TIME_OFF_REQUEST_REJECTED" | "TIME_OFF_REQUEST_STARTED" | "TIME_OFF_REQUEST_WITHDRAWN" | "BALANCE_UPDATED" | "TAG_UPDATED" | "TAG_DELETED" | "TASK_UPDATED" | "CLIENT_UPDATED" | "TASK_DELETED" | "CLIENT_DELETED" | "EXPENSE_RESTORED" | "ASSIGNMENT_CREATED" | "ASSIGNMENT_DELETED" | "ASSIGNMENT_PUBLISHED" | "ASSIGNMENT_UPDATED" | "EXPENSE_CREATED" | "EXPENSE_DELETED" | "EXPENSE_UPDATED" | "PROJECT_UPDATED" | "PROJECT_DELETED" | "USER_GROUP_CREATED" | "USER_GROUP_UPDATED" | "USER_GROUP_DELETED" | "USERS_INVITED_TO_WORKSPACE" | "LIMITED_USERS_ADDED_TO_WORKSPACE" | "COST_RATE_UPDATED" | "BILLABLE_RATE_UPDATED" }
|
|
273
|
+
export const UpdateWebhookRequestV1 = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a webhook name." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(30))), "triggerSource": Schema.Array(Schema.String.annotate({ "description": "Represents a list of trigger sources." })).annotate({ "description": "Represents a list of trigger sources." }), "triggerSourceType": Schema.Literals(["PROJECT_ID", "USER_ID", "TAG_ID", "TASK_ID", "WORKSPACE_ID", "ASSIGNMENT_ID", "EXPENSE_ID"]).annotate({ "description": "Represents a webhook event trigger source type." }), "url": Schema.String.annotate({ "description": "Represents a workspace identifier across the system." }).check(Schema.isMinLength(1)), "webhookEvent": Schema.Literals(["NEW_PROJECT", "NEW_TASK", "NEW_CLIENT", "NEW_TIMER_STARTED", "TIMER_STOPPED", "TIME_ENTRY_UPDATED", "TIME_ENTRY_DELETED", "TIME_ENTRY_SPLIT", "NEW_TIME_ENTRY", "TIME_ENTRY_RESTORED", "NEW_TAG", "USER_DELETED_FROM_WORKSPACE", "USER_JOINED_WORKSPACE", "USER_DEACTIVATED_ON_WORKSPACE", "USER_ACTIVATED_ON_WORKSPACE", "USER_EMAIL_CHANGED", "USER_UPDATED", "NEW_INVOICE", "INVOICE_UPDATED", "NEW_APPROVAL_REQUEST", "APPROVAL_REQUEST_STATUS_UPDATED", "TIME_OFF_REQUESTED", "TIME_OFF_REQUEST_UPDATED", "TIME_OFF_REQUEST_APPROVED", "TIME_OFF_REQUEST_REJECTED", "TIME_OFF_REQUEST_STARTED", "TIME_OFF_REQUEST_WITHDRAWN", "BALANCE_UPDATED", "TAG_UPDATED", "TAG_DELETED", "TASK_UPDATED", "CLIENT_UPDATED", "TASK_DELETED", "CLIENT_DELETED", "EXPENSE_RESTORED", "ASSIGNMENT_CREATED", "ASSIGNMENT_DELETED", "ASSIGNMENT_PUBLISHED", "ASSIGNMENT_UPDATED", "EXPENSE_CREATED", "EXPENSE_DELETED", "EXPENSE_UPDATED", "PROJECT_UPDATED", "PROJECT_DELETED", "USER_GROUP_CREATED", "USER_GROUP_UPDATED", "USER_GROUP_DELETED", "USERS_INVITED_TO_WORKSPACE", "LIMITED_USERS_ADDED_TO_WORKSPACE", "COST_RATE_UPDATED", "BILLABLE_RATE_UPDATED"]).annotate({ "description": "Represents a webhook event type." }) })
|
|
274
|
+
export type UploadFileResponseV1 = { readonly "name"?: string, readonly "url"?: string }
|
|
275
|
+
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" })) })
|
|
276
|
+
export type UpsertUserCustomFieldRequest = { readonly "customFieldId": string, readonly "value"?: { } }
|
|
277
|
+
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." })
|
|
278
|
+
export type UpsertUserCustomFieldRequestV1 = { readonly "value"?: { } }
|
|
279
|
+
export const UpsertUserCustomFieldRequestV1 = Schema.Struct({ "value": Schema.optionalKey(Schema.Struct({ }).annotate({ "description": "Represents custom field value." })) })
|
|
280
|
+
export type UserGroupIdsSchema = { readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN", readonly "ids"?: ReadonlyArray<string>, readonly "status"?: "ALL" | "ACTIVE" | "INACTIVE" }
|
|
281
|
+
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())), "status": Schema.optionalKey(Schema.Literals(["ALL", "ACTIVE", "INACTIVE"]).annotate({ "description": "Represents user status." })) }).annotate({ "description": "Provide list with user group ids and corresponding status." })
|
|
282
|
+
export type UserGroupRequest = { readonly "name"?: string }
|
|
283
|
+
export const UserGroupRequest = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a user group name." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(100))) })
|
|
284
|
+
export type UserGroupUserRequest = { readonly "userId": string }
|
|
285
|
+
export const UserGroupUserRequest = Schema.Struct({ "userId": Schema.String.annotate({ "description": "Represents a user identifier across the system." }) })
|
|
286
|
+
export type UserIdsSchema = { readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN", readonly "ids"?: ReadonlyArray<string>, readonly "status"?: "ALL" | "ACTIVE" | "INACTIVE" }
|
|
287
|
+
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())), "status": Schema.optionalKey(Schema.Literals(["ALL", "ACTIVE", "INACTIVE"]).annotate({ "description": "Represents user status." })) }).annotate({ "description": "Provide list with user ids and corresponding status." })
|
|
288
|
+
export type UserRedactedDtoV1 = { readonly "id"?: string, readonly "name"?: string }
|
|
289
|
+
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." })
|
|
290
|
+
export type VisibleZeroFieldsInvoice = never
|
|
291
|
+
export const VisibleZeroFieldsInvoice = Schema.Never
|
|
292
|
+
export type WebhookEventStatusWithLatestLogDtoV1 = { readonly "id"?: string, readonly "requestBody"?: string, readonly "respondedAt"?: string, readonly "responseBody"?: string, readonly "retryCount"?: number, readonly "status"?: string, readonly "statusCode"?: number, readonly "webhookId"?: string, readonly "webhookLogId"?: string }
|
|
293
|
+
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())), "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())), "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." })) })
|
|
294
|
+
export type WebhookEventTriggerSourceType = never
|
|
295
|
+
export const WebhookEventTriggerSourceType = Schema.Never
|
|
296
|
+
export type WebhookEventType = never
|
|
297
|
+
export const WebhookEventType = Schema.Never
|
|
298
|
+
export type WebhookLogDtoV1 = { readonly "id"?: string, readonly "requestBody"?: string, readonly "respondedAt"?: string, readonly "responseBody"?: string, readonly "statusCode"?: number, readonly "webhookEventStatusId"?: string, readonly "webhookId"?: string }
|
|
299
|
+
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())), "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." })) })
|
|
300
|
+
export type WebhookLogSearchRequestV1 = { readonly "from"?: string, readonly "sortByNewest"?: boolean, readonly "status"?: "ALL" | "SUCCEEDED" | "FAILED", readonly "to"?: string }
|
|
301
|
+
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.Boolean.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" })) })
|
|
302
|
+
export type WorkspaceSubdomainDtoV1 = { readonly "enabled"?: boolean, readonly "name"?: string }
|
|
303
|
+
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" })
|
|
304
|
+
export type AmountDto = { readonly "type"?: "EARNED" | "COST" | "PROFIT" | "HIDE_AMOUNT" | "EXPORT", readonly "value"?: number }
|
|
305
|
+
export const AmountDto = Schema.Struct({ "type": Schema.optionalKey(Schema.Literals(["EARNED", "COST", "PROFIT", "HIDE_AMOUNT", "EXPORT"]).annotate({ "description": "Represents amount type" })), "value": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents amount value" }).check(Schema.isFinite())) }).annotate({ "description": "List of amounts" })
|
|
306
|
+
export type AttendanceDto = { readonly "break"?: number, readonly "capacity"?: number, readonly "date"?: string, readonly "endTime"?: string, readonly "hasRunningEntry"?: boolean, readonly "imageUrl"?: string, readonly "overtime"?: number, readonly "remainingCapacity"?: number, readonly "startTime"?: string, readonly "timeOff"?: number, readonly "totalDuration"?: number, readonly "userId"?: string, readonly "userName"?: string }
|
|
307
|
+
export const AttendanceDto = Schema.Struct({ "break": Schema.optionalKey(Schema.Number.annotate({ "format": "int64" }).check(Schema.isInt())), "capacity": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())), "date": Schema.optionalKey(Schema.String), "endTime": Schema.optionalKey(Schema.String), "hasRunningEntry": Schema.optionalKey(Schema.Boolean), "imageUrl": Schema.optionalKey(Schema.String), "overtime": Schema.optionalKey(Schema.Number.annotate({ "format": "int64" }).check(Schema.isInt())), "remainingCapacity": Schema.optionalKey(Schema.Number.annotate({ "format": "int64" }).check(Schema.isInt())), "startTime": Schema.optionalKey(Schema.String), "timeOff": Schema.optionalKey(Schema.Number.annotate({ "format": "int64" }).check(Schema.isInt())), "totalDuration": Schema.optionalKey(Schema.Number.annotate({ "format": "int64" }).check(Schema.isInt())), "userId": Schema.optionalKey(Schema.String), "userName": Schema.optionalKey(Schema.String) }).annotate({ "description": "List of entities" })
|
|
308
|
+
export type AuditFilterV1 = { readonly "duration"?: number, readonly "durationShorter"?: boolean, readonly "withoutProject"?: boolean, readonly "withoutTask"?: boolean }
|
|
309
|
+
export const AuditFilterV1 = Schema.Struct({ "duration": Schema.optionalKey(Schema.Number.annotate({ "description": "Represent audit duration.", "format": "int32" }).check(Schema.isInt())), "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." })) })
|
|
310
|
+
export type CompareBalanceFilter = { readonly "filtrationType"?: "EXACTLY" | "LARGER_THAN" | "SMALLER_THAN", readonly "value"?: string }
|
|
311
|
+
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." })) })
|
|
312
|
+
export type CompareBreakFilter = { readonly "filtrationType"?: "EXACTLY" | "LARGER_THAN" | "SMALLER_THAN", readonly "value"?: string }
|
|
313
|
+
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" })) })
|
|
314
|
+
export type CompareCapacityFilter = { readonly "filtrationType"?: "EXACTLY" | "LARGER_THAN" | "SMALLER_THAN", readonly "value"?: string }
|
|
315
|
+
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." })) })
|
|
316
|
+
export type CompareEndFilter = { readonly "filtrationType"?: "EXACTLY" | "LARGER_THAN" | "SMALLER_THAN", readonly "value"?: string }
|
|
317
|
+
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." })) })
|
|
318
|
+
export type CompareOvertimeFilter = { readonly "filtrationType"?: "EXACTLY" | "LARGER_THAN" | "SMALLER_THAN", readonly "value"?: string }
|
|
319
|
+
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." })) })
|
|
320
|
+
export type CompareStartFilter = { readonly "filtrationType"?: "EXACTLY" | "LARGER_THAN" | "SMALLER_THAN", readonly "value"?: string }
|
|
321
|
+
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." })) })
|
|
322
|
+
export type CompareUndertimeFilter = { readonly "filtrationType"?: "EXACTLY" | "LARGER_THAN" | "SMALLER_THAN", readonly "value"?: string }
|
|
323
|
+
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." })) })
|
|
324
|
+
export type CompareWorkFilter = { readonly "filtrationType"?: "EXACTLY" | "LARGER_THAN" | "SMALLER_THAN", readonly "value"?: string }
|
|
325
|
+
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." })) })
|
|
326
|
+
export type ContainsArchivedFilterV1 = { readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN" | "CONTAINS_ONLY", readonly "ids"?: ReadonlyArray<string>, readonly "status"?: "ACTIVE" | "ARCHIVED" | "ALL" }
|
|
327
|
+
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())), "status": Schema.optionalKey(Schema.Literals(["ACTIVE", "ARCHIVED", "ALL"]).annotate({ "description": "Filter entities in 'contains' by their status." })) })
|
|
328
|
+
export type ContainsTagFilterV1 = { readonly "containedInTimeentry"?: "CONTAINS" | "DOES_NOT_CONTAIN" | "CONTAINS_ONLY", readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN" | "CONTAINS_ONLY", readonly "ids"?: ReadonlyArray<string>, readonly "status"?: "ACTIVE" | "ARCHIVED" | "ALL" }
|
|
329
|
+
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())), "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." })
|
|
330
|
+
export type ContainsTaskFilterV1 = { readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN" | "CONTAINS_ONLY", readonly "ids"?: ReadonlyArray<string>, readonly "status"?: "ACTIVE" | "ARCHIVED" | "ALL" }
|
|
331
|
+
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())), "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." })
|
|
332
|
+
export type ContainsUsersFilterV1 = { readonly "contains"?: "CONTAINS" | "DOES_NOT_CONTAIN" | "CONTAINS_ONLY", readonly "ids"?: ReadonlyArray<string>, readonly "status"?: "ALL" | "ACTIVE_WITH_PENDING" | "ACTIVE" | "PENDING" | "INACTIVE" }
|
|
333
|
+
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())), "status": Schema.optionalKey(Schema.Literals(["ALL", "ACTIVE_WITH_PENDING", "ACTIVE", "PENDING", "INACTIVE"]).annotate({ "description": "Filter entities in 'contains' by their status." })) })
|
|
334
|
+
export type CustomFieldFilterV1 = { readonly "id"?: string, readonly "isEmpty"?: boolean, readonly "numberCondition"?: "EQUAL" | "GREATER_THAN" | "LESS_THAN", readonly "type"?: "TXT" | "NUMBER" | "DROPDOWN_SINGLE" | "DROPDOWN_MULTIPLE" | "CHECKBOX" | "LINK", readonly "value"?: { } }
|
|
335
|
+
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." })
|
|
336
|
+
export type DailyTotalDto = { readonly "amount"?: number, readonly "date"?: string, readonly "duration"?: number }
|
|
337
|
+
export const DailyTotalDto = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.check(Schema.isFinite())), "date": Schema.optionalKey(Schema.String), "duration": Schema.optionalKey(Schema.Number.check(Schema.isFinite())) }).annotate({ "description": "Represents list of days" })
|
|
338
|
+
export type DetailedOptionsV1 = { readonly "totals"?: "CALCULATE" | "EXCLUDE" }
|
|
339
|
+
export const DetailedOptionsV1 = Schema.Struct({ "totals": Schema.optionalKey(Schema.Literals(["CALCULATE", "EXCLUDE"])) })
|
|
340
|
+
export type EntityName = { readonly "id"?: string, readonly "name"?: string }
|
|
341
|
+
export const EntityName = Schema.Struct({ "id": Schema.optionalKey(Schema.String), "name": Schema.optionalKey(Schema.String) })
|
|
342
|
+
export type ExpenseTotalsDtoV1 = { readonly "expensesCount"?: number, readonly "totalAmount"?: number, readonly "totalAmountBillable"?: number }
|
|
343
|
+
export const ExpenseTotalsDtoV1 = Schema.Struct({ "expensesCount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expenses count", "format": "int32" }).check(Schema.isInt())), "totalAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents total amount of expenses", "format": "double" }).check(Schema.isFinite())), "totalAmountBillable": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents total billable amount of expenses", "format": "double" }).check(Schema.isFinite())) }).annotate({ "description": "Represents expense totals" })
|
|
344
|
+
export type ReportTagDto = { readonly "id"?: string, readonly "name"?: string }
|
|
345
|
+
export const ReportTagDto = Schema.Struct({ "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents tag identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents tag name." })) }).annotate({ "description": "List of tags" })
|
|
346
|
+
export type ReportTimeIntervalDto = { readonly "duration"?: number, readonly "end"?: string, readonly "start"?: string }
|
|
347
|
+
export const ReportTimeIntervalDto = Schema.Struct({ "duration": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the duration of interval.", "format": "int32" }).check(Schema.isInt())), "end": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the end datetime. Date is in format YYYY-MM-DDTHH:MM:SS.ssssssZ" })), "start": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the start datetime. Date is in format YYYY-MM-DDTHH:MM:SS.ssssssZ" })) }).annotate({ "description": "Represents time interval" })
|
|
348
|
+
export type SummaryFilterV1 = { readonly "groups"?: ReadonlyArray<string>, readonly "sortColumn"?: "GROUP" | "DURATION" | "AMOUNT" | "EARNED" | "COST" | "PROFIT", readonly "summaryChartType"?: "BILLABILITY" | "PROJECT" }
|
|
349
|
+
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." })
|
|
350
|
+
export type SummaryReportChartDto = { readonly "earned"?: number, readonly "id"?: string, readonly "totalAmount"?: number, readonly "totalBillableTime"?: number, readonly "totalTime"?: number }
|
|
351
|
+
export const SummaryReportChartDto = Schema.Struct({ "earned": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents how much is earned" }).check(Schema.isFinite())), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents summary report identifier across the system." })), "totalAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents total amount" }).check(Schema.isFinite())), "totalBillableTime": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents total billable time" }).check(Schema.isFinite())), "totalTime": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents total time" }).check(Schema.isFinite())) }).annotate({ "description": "List of summary report charts" })
|
|
352
|
+
export type UpdateSharedReportRequestV1 = { readonly "fixedDate"?: boolean, readonly "isPublic"?: boolean, readonly "name": string, readonly "visibleToUserGroups"?: ReadonlyArray<string>, readonly "visibleToUsers"?: ReadonlyArray<string> }
|
|
353
|
+
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())), "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())) })
|
|
354
|
+
export type UserDto = { readonly "dateFormat"?: string, readonly "email": string, readonly "id": string, readonly "name": string, readonly "timeFormat"?: string, readonly "timeZone"?: string, readonly "weekStart"?: string, readonly "activeWorkspace": string, readonly "defaultWorkspace": string, readonly "profilePicture"?: string, readonly "status": string }
|
|
355
|
+
export const UserDto = Schema.Struct({ "dateFormat": Schema.optionalKey(Schema.String), "email": Schema.String, "id": Schema.String, "name": Schema.String, "timeFormat": Schema.optionalKey(Schema.String), "timeZone": Schema.optionalKey(Schema.String), "weekStart": Schema.optionalKey(Schema.String), "activeWorkspace": Schema.String, "defaultWorkspace": Schema.String, "profilePicture": Schema.optionalKey(Schema.String), "status": Schema.String })
|
|
356
|
+
export type WeeklyFilterV1 = { readonly "group"?: string, readonly "subgroup"?: string }
|
|
357
|
+
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." })
|
|
358
|
+
export type InvoicingInfo = { readonly "invoiceId"?: string, readonly "manuallyInvoiced"?: boolean }
|
|
359
|
+
export const InvoicingInfo = Schema.Struct({ "invoiceId": Schema.optionalKey(Schema.String), "manuallyInvoiced": Schema.optionalKey(Schema.Boolean) }).annotate({ "description": "Expense's invoicing info." })
|
|
360
|
+
export type AuditLogDtoV1 = { readonly "action"?: "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", readonly "content"?: string, readonly "previousContent"?: string, readonly "timestamp"?: string, readonly "userEmail"?: string, readonly "userId"?: string, readonly "userName"?: string, readonly "workspaceId"?: string }
|
|
361
|
+
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." })) })
|
|
362
|
+
export type Authors = { readonly "authorIds": ReadonlyArray<string>, readonly "contains": "CONTAINS" | "DOES_NOT_CONTAIN" }
|
|
363
|
+
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()), "contains": Schema.Literals(["CONTAINS", "DOES_NOT_CONTAIN"]) }).annotate({ "description": "Represents the audit log author filter." })
|
|
364
|
+
export type InvoiceItemDto = { readonly "amount"?: number, readonly "applyTaxes"?: ApplyTaxes, readonly "description"?: string, readonly "expenseIds"?: ReadonlyArray<string>, readonly "importType"?: "NOT_IMPORTED" | "TIME_ENTRY_IMPORT" | "EXPENSE_IMPORT", readonly "itemType"?: string, readonly "order"?: number, readonly "quantity"?: number, readonly "timeEntryIds"?: ReadonlyArray<string>, readonly "unitPrice"?: number }
|
|
365
|
+
export const InvoiceItemDto = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents item amount.", "format": "int64" }).check(Schema.isInt())), "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())), "quantity": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents item quantity.", "format": "int64" }).check(Schema.isInt())), "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({ "description": "Represents a list of invoice item datatransfer objects." })
|
|
366
|
+
export type RoleDtoV1 = { readonly "id"?: string, readonly "name"?: string, readonly "source"?: AuthorizationSourceDtoV1 }
|
|
367
|
+
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." })
|
|
368
|
+
export type ImportTimeEntriesAndExpensesRequestV1 = { readonly "expenseFieldsForDetailedGroup"?: ReadonlyArray<"PROJECT" | "TASK" | "CATEGORY" | "NOTE" | "DATE" | "USER">, readonly "expensesGroupBy"?: "CATEGORY" | "PROJECT" | "USER", readonly "expensesGroupType"?: "GROUPED" | "DETAILED", readonly "from": string, readonly "importExpenses": boolean, readonly "projectFilter": ContainsArchivedFilterRequest, readonly "roundTimeEntryDuration"?: boolean, readonly "timeEntryFieldsForDetailedGroup"?: ReadonlyArray<"PROJECT" | "TASK" | "TAGS" | "DESCRIPTION" | "DATE" | "USER">, readonly "timeEntryGroupType": "SINGLE_ITEM" | "GROUPED" | "DETAILED", readonly "timeEntryPrimaryGroupBy"?: "USER" | "PROJECT" | "DATE", readonly "timeEntrySecondaryGroupBy"?: "PROJECT" | "USER" | "TASK" | "DATE" | "DESCRIPTION" | "NONE", readonly "to": string }
|
|
369
|
+
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())), "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())), "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." }) })
|
|
370
|
+
export type GetUserTotalsRequestV1 = { readonly "end": string, readonly "page"?: number, readonly "pageSize"?: number, readonly "search"?: string, readonly "start": string, readonly "statusFilter"?: "PUBLISHED" | "UNPUBLISHED" | "ALL", readonly "userFilter"?: ContainsUsersFilterRequestV1, readonly "userGroupFilter"?: ContainsUserGroupFilterRequestV1 }
|
|
371
|
+
export const GetUserTotalsRequestV1 = Schema.Struct({ "end": Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt())), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isLessThanOrEqualTo(200))), "search": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the keyword for searching users by name or email." })), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }), "statusFilter": Schema.optionalKey(Schema.Literals(["PUBLISHED", "UNPUBLISHED", "ALL"]).annotate({ "description": "Filters assignments by status." })), "userFilter": Schema.optionalKey(ContainsUsersFilterRequestV1), "userGroupFilter": Schema.optionalKey(ContainsUserGroupFilterRequestV1) })
|
|
372
|
+
export type PublishAssignmentsRequestV1 = { readonly "end": string, readonly "notifyUsers"?: boolean, readonly "search"?: string, readonly "start": string, readonly "userFilter"?: ContainsUsersFilterRequestV1, readonly "userGroupFilter"?: ContainsUserGroupFilterRequestV1, readonly "viewType"?: "PROJECTS" | "TEAM" | "ALL" }
|
|
373
|
+
export const PublishAssignmentsRequestV1 = Schema.Struct({ "end": Schema.String.annotate({ "description": "Represents end date in yyyy-MM-ddThh:mm:ssZ format." }), "notifyUsers": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to notify users when assignment is published." })), "search": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a search string." })), "start": Schema.String.annotate({ "description": "Represents start date in yyyy-MM-ddThh:mm:ssZ format." }), "userFilter": Schema.optionalKey(ContainsUsersFilterRequestV1), "userGroupFilter": Schema.optionalKey(ContainsUserGroupFilterRequestV1), "viewType": Schema.optionalKey(Schema.Literals(["PROJECTS", "TEAM", "ALL"]).annotate({ "description": "Represents view type." })) })
|
|
374
|
+
export type AssignmentCreateRequestV1 = { readonly "billable"?: boolean, readonly "end": string, readonly "hoursPerDay": number, readonly "includeNonWorkingDays"?: boolean, readonly "note"?: string, readonly "projectId": string, readonly "recurringAssignment"?: CreateRecurringAssignmentRequestV1, readonly "start": string, readonly "startTime"?: string, readonly "taskId"?: string, readonly "userId": string }
|
|
375
|
+
export const AssignmentCreateRequestV1 = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is billable or not." })), "end": Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format." }), "hoursPerDay": Schema.Number.annotate({ "description": "Represents assignment total hours per day.", "format": "double" }).check(Schema.isFinite()), "includeNonWorkingDays": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether to include non-working days or not." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an assignment note." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(100))), "projectId": Schema.String.annotate({ "description": "Represents a project identifier across the system." }).check(Schema.isMinLength(1)), "recurringAssignment": Schema.optionalKey(CreateRecurringAssignmentRequestV1), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }), "startTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a start time in the hh:mm:ss format." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task identifier across the system." })), "userId": Schema.String.annotate({ "description": "Represents a user identifier across the system." }).check(Schema.isMinLength(1)) })
|
|
376
|
+
export type CustomFieldDtoV1 = { readonly "allowedValues"?: ReadonlyArray<string>, readonly "description"?: string, readonly "entityType"?: string, readonly "id"?: string, readonly "name"?: string, readonly "onlyAdminCanEdit"?: boolean, readonly "placeholder"?: string, readonly "projectDefaultValues"?: ReadonlyArray<CustomFieldDefaultValuesDtoV1>, readonly "required"?: boolean, readonly "status"?: string, readonly "type"?: string, readonly "workspaceDefaultValue"?: { }, readonly "workspaceId"?: string }
|
|
377
|
+
export const CustomFieldDtoV1 = Schema.Struct({ "allowedValues": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of custom field's allowed values." })).annotate({ "description": "Represents a list of custom field's allowed values." })), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field description." })), "entityType": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field entity type" })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field name." })), "onlyAdminCanEdit": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether custom field is modifiable only by admin users." })), "placeholder": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field placeholder value." })), "projectDefaultValues": Schema.optionalKey(Schema.Array(CustomFieldDefaultValuesDtoV1).annotate({ "description": "Represents a list of custom field default values data transfer objects." })), "required": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether custom field is mandatory or not." })), "status": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field status" })), "type": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field type." })), "workspaceDefaultValue": Schema.optionalKey(Schema.Struct({ }).annotate({ "description": "Represents a custom field's default value in the workspace." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
|
|
378
|
+
export type UserCustomFieldValueDtoV1 = { readonly "customFieldId"?: string, readonly "customFieldName"?: string, readonly "customFieldType"?: CustomFieldType, readonly "userId"?: string, readonly "value"?: { } }
|
|
379
|
+
export const UserCustomFieldValueDtoV1 = Schema.Struct({ "customFieldId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field identifier across the system." })), "customFieldName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field name." })), "customFieldType": Schema.optionalKey(CustomFieldType), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "value": Schema.optionalKey(Schema.Struct({ }).annotate({ "description": "Represents custom field value." })) }).annotate({ "description": "Represents a list of value objects for user’s custom fields." })
|
|
380
|
+
export type HolidayDtoV1 = { readonly "automaticTimeEntryCreation"?: boolean, readonly "datePeriod"?: DatePeriod, readonly "everyoneIncludingNew"?: boolean, readonly "id"?: string, readonly "name"?: string, readonly "occursAnnually"?: boolean, readonly "projectId"?: string, readonly "taskId"?: string, readonly "userGroupIds"?: ReadonlyArray<string>, readonly "userIds"?: ReadonlyArray<string>, readonly "workspaceId"?: string }
|
|
381
|
+
export const HolidayDtoV1 = Schema.Struct({ "automaticTimeEntryCreation": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates that time entries will be automatically created for this holiday." })), "datePeriod": Schema.optionalKey(DatePeriod), "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday is shown to new users." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents holiday identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the name of the holiday." })), "occursAnnually": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday occurs annually." })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents projectId for automatic time entry creation." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents taskId for automatic time entry creation." })), "userGroupIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Indicates which user groups are included." })).annotate({ "description": "Indicates which user groups are included." }).check(Schema.isUnique())), "userIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Indicates which users are included." })).annotate({ "description": "Indicates which users are included." }).check(Schema.isUnique())), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
|
|
382
|
+
export type ApprovalRequestDtoV1 = { readonly "creator"?: ApprovalRequestCreatorDtoV1, readonly "dateRange"?: DateRangeDto, readonly "id"?: string, readonly "owner"?: ApprovalRequestOwnerDtoV1, readonly "status"?: ApprovalRequestStatusDtoV1, readonly "workspaceId"?: string }
|
|
383
|
+
export const ApprovalRequestDtoV1 = Schema.Struct({ "creator": Schema.optionalKey(ApprovalRequestCreatorDtoV1), "dateRange": Schema.optionalKey(DateRangeDto), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents approval request identifier across the workspace." })), "owner": Schema.optionalKey(ApprovalRequestOwnerDtoV1), "status": Schema.optionalKey(ApprovalRequestStatusDtoV1), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) }).annotate({ "description": "Represents a valid approval request data transfer object." })
|
|
384
|
+
export type AssignmentHydratedDtoV1 = { readonly "billable"?: boolean, readonly "clientId"?: string, readonly "clientName"?: string, readonly "hoursPerDay"?: number, readonly "id"?: string, readonly "note"?: string, readonly "period"?: DateRangeDto, readonly "projectArchived"?: boolean, readonly "projectBillable"?: boolean, readonly "projectColor"?: string, readonly "projectId"?: string, readonly "projectName"?: string, readonly "startTime"?: string, readonly "taskId"?: string, readonly "taskName"?: string, readonly "userId"?: string, readonly "userName"?: string, readonly "workspaceId"?: string }
|
|
385
|
+
export const AssignmentHydratedDtoV1 = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is billable or not." })), "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client identifier across the system." })), "clientName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project name." })), "hoursPerDay": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents number of hours per day as double.", "format": "double" }).check(Schema.isFinite())), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents assignment identifier across the system." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents assignment note." })), "period": Schema.optionalKey(DateRangeDto), "projectArchived": Schema.optionalKey(Schema.Boolean), "projectBillable": Schema.optionalKey(Schema.Boolean), "projectColor": Schema.optionalKey(Schema.String.annotate({ "description": "Color format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "projectName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project name." })), "startTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents start time in hh:mm:ss format." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task identifier across the system." })), "taskName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task name." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user name." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
|
|
386
|
+
export type AutomaticTimeEntryCreationDto = { readonly "defaultEntities"?: DefaultEntitiesDto, readonly "enabled"?: boolean }
|
|
387
|
+
export const AutomaticTimeEntryCreationDto = Schema.Struct({ "defaultEntities": Schema.optionalKey(DefaultEntitiesDto), "enabled": Schema.optionalKey(Schema.Boolean) }).annotate({ "description": "Represents automatic time entry creation settings." })
|
|
388
|
+
export type AutomaticTimeEntryCreationRequest = { readonly "defaultEntities": DefaultEntitiesRequest, readonly "enabled"?: boolean }
|
|
389
|
+
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." })
|
|
390
|
+
export type EntityCreationPermissionsDtoV1 = { readonly "whoCanCreateProjectsAndClients"?: EntityCreationPermission, readonly "whoCanCreateTags"?: EntityCreationPermission, readonly "whoCanCreateTasks"?: EntityCreationPermission }
|
|
391
|
+
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." })
|
|
392
|
+
export type ExpenseCategoriesWithCountDtoV1 = { readonly "categories"?: ReadonlyArray<ExpenseCategoryDtoV1>, readonly "count"?: number }
|
|
393
|
+
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())) })
|
|
394
|
+
export type MembershipRequest = { readonly "hourlyRate"?: HourlyRateRequest, readonly "membershipStatus"?: "PENDING" | "ACTIVE" | "DECLINED" | "INACTIVE" | "ALL", readonly "membershipType"?: "WORKSPACE" | "PROJECT" | "USERGROUP", readonly "userId"?: string }
|
|
395
|
+
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." })
|
|
396
|
+
export type TaskRequest = { readonly "assigneeId"?: string, readonly "assigneeIds"?: ReadonlyArray<string>, readonly "billable"?: boolean, readonly "budgetEstimate"?: number, readonly "costRate"?: CostRateRequest, readonly "estimate"?: string, readonly "hourlyRate"?: HourlyRateRequest, readonly "id"?: string, readonly "name": string, readonly "projectId"?: string, readonly "status"?: string, readonly "userGroupIds"?: ReadonlyArray<string> }
|
|
397
|
+
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())), "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()).check(Schema.isGreaterThanOrEqualTo(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({ "description": "Represents a list of task request objects." })
|
|
398
|
+
export type UpdateProjectRequest = { readonly "archived"?: boolean, readonly "billable"?: boolean, readonly "clientId"?: string, readonly "color"?: string, readonly "costRate"?: CostRateRequestV1, readonly "hourlyRate"?: HourlyRateRequestV1, readonly "isPublic"?: boolean, readonly "name"?: string, readonly "note"?: string }
|
|
399
|
+
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}$")))), "costRate": Schema.optionalKey(CostRateRequestV1), "hourlyRate": Schema.optionalKey(HourlyRateRequestV1), "isPublic": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is public or not." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project name." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(250))), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project note." }).check(Schema.isMaxLength(16384))) })
|
|
400
|
+
export type UserIdWithRatesRequest = { readonly "costRate"?: CostRateRequestV1, readonly "hourlyRate"?: HourlyRateRequestV1, readonly "userId": string }
|
|
401
|
+
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." })
|
|
402
|
+
export type InvoicesListDtoV1 = { readonly "invoices"?: ReadonlyArray<InvoiceDtoV1>, readonly "total"?: number }
|
|
403
|
+
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())) })
|
|
404
|
+
export type InvoiceSettingsDtoV1 = { readonly "defaults"?: InvoiceDefaultSettingsDto, readonly "exportFields"?: InvoiceExportFields, readonly "labels"?: LabelsCustomization }
|
|
405
|
+
export const InvoiceSettingsDtoV1 = Schema.Struct({ "defaults": Schema.optionalKey(InvoiceDefaultSettingsDto), "exportFields": Schema.optionalKey(InvoiceExportFields), "labels": Schema.optionalKey(LabelsCustomization) })
|
|
406
|
+
export type UpdateInvoiceSettingsRequestV1 = { readonly "defaults"?: InvoiceDefaultSettingsRequestV1, readonly "exportFields"?: InvoiceExportFieldsRequest, readonly "labels": LabelsCustomizationRequest }
|
|
407
|
+
export const UpdateInvoiceSettingsRequestV1 = Schema.Struct({ "defaults": Schema.optionalKey(InvoiceDefaultSettingsRequestV1), "exportFields": Schema.optionalKey(InvoiceExportFieldsRequest), "labels": LabelsCustomizationRequest })
|
|
408
|
+
export type PageableCollectionLogBinDocumentDto = { readonly "response"?: ReadonlyArray<LogBinDocumentDto> }
|
|
409
|
+
export const PageableCollectionLogBinDocumentDto = Schema.Struct({ "response": Schema.optionalKey(Schema.Array(LogBinDocumentDto)) })
|
|
410
|
+
export type SchedulingProjectsTotalsDtoV1 = { readonly "assignments"?: ReadonlyArray<AssignmentPerDayDto>, readonly "clientName"?: string, readonly "milestones"?: ReadonlyArray<MilestoneDto>, readonly "projectArchived"?: boolean, readonly "projectBillable"?: boolean, readonly "projectColor"?: string, readonly "projectId"?: string, readonly "projectName"?: string, readonly "taskId"?: string, readonly "taskName"?: string, readonly "totalHours"?: number, readonly "workspaceId"?: string }
|
|
411
|
+
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())), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
|
|
412
|
+
export type TimeOffRequestPeriodDto = { readonly "halfDay"?: boolean, readonly "halfDayHours"?: Period, readonly "halfDayPeriod"?: string, readonly "period"?: Period }
|
|
413
|
+
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." })
|
|
414
|
+
export type TimeOffRequestPeriodV1Request = { readonly "halfDayPeriod"?: "FIRST_HALF" | "SECOND_HALF" | "NOT_DEFINED", readonly "isHalfDay"?: boolean, readonly "period": PeriodV1Request, readonly "timeOffHalfDayPeriod"?: "FIRST_HALF" | "SECOND_HALF" | "NOT_DEFINED" }
|
|
415
|
+
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`." })
|
|
416
|
+
export type TemplateRequest = { readonly "name": string, readonly "projectsAndTasks": ReadonlyArray<ProjectTaskTupleRequest>, readonly "timeEntryIds"?: ReadonlyArray<string>, readonly "weekStart"?: string }
|
|
417
|
+
export const TemplateRequest = Schema.Struct({ "name": Schema.String.annotate({ "description": "Represents a template name." }).check(Schema.isMinLength(1)), "projectsAndTasks": Schema.Array(ProjectTaskTupleRequest).annotate({ "description": "Represents a list of template's projects and tasks." }), "timeEntryIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a set of template time entry ids." })).annotate({ "description": "Represents a set of template time entry ids." }).check(Schema.isUnique())), "weekStart": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a date of the starting day of the week in the yyyy-MM-dd format.", "format": "date" })) })
|
|
418
|
+
export type MembershipDtoV1 = { readonly "costRate"?: RateDtoV1, readonly "hourlyRate"?: HourlyRateDtoV1, readonly "membershipStatus"?: "PENDING" | "ACTIVE" | "DECLINED" | "INACTIVE" | "ALL", readonly "membershipType"?: "WORKSPACE" | "PROJECT" | "USERGROUP", readonly "targetId"?: string, readonly "userId"?: string }
|
|
419
|
+
export const MembershipDtoV1 = Schema.Struct({ "costRate": Schema.optionalKey(RateDtoV1), "hourlyRate": Schema.optionalKey(HourlyRateDtoV1), "membershipStatus": Schema.optionalKey(Schema.Literals(["PENDING", "ACTIVE", "DECLINED", "INACTIVE", "ALL"]).annotate({ "description": "Represents a membership status enum." })), "membershipType": Schema.optionalKey(Schema.Literals(["WORKSPACE", "PROJECT", "USERGROUP"]).annotate({ "description": "Represents membership type enum." })), "targetId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents target identifier across the system." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })) }).annotate({ "description": "Represents a list of membership objects." })
|
|
420
|
+
export type AssignmentDtoV1 = { readonly "billable"?: boolean, readonly "excludeDays"?: ReadonlyArray<SchedulingExcludeDay>, readonly "hoursPerDay"?: number, readonly "id"?: string, readonly "includeNonWorkingDays"?: boolean, readonly "note"?: string, readonly "period"?: DateRangeDto, readonly "projectId"?: string, readonly "published"?: boolean, readonly "recurring"?: RecurringAssignmentDto, readonly "startTime"?: string, readonly "taskId"?: string, readonly "userId"?: string, readonly "workspaceId"?: string }
|
|
421
|
+
export const AssignmentDtoV1 = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is billable or not." })), "excludeDays": Schema.optionalKey(Schema.Array(SchedulingExcludeDay).annotate({ "description": "Represents a list of excluded days objects" }).check(Schema.isUnique())), "hoursPerDay": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents assignment total hours per day.", "format": "double" }).check(Schema.isFinite())), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents assignment identifier across the system." })), "includeNonWorkingDays": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment should include non-working days or not." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents assignment note." })), "period": Schema.optionalKey(DateRangeDto), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "published": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether assignment is published or not." })), "recurring": Schema.optionalKey(RecurringAssignmentDto), "startTime": Schema.optionalKey(Schema.String.annotate({ "description": "Represents start time in hh:mm:ss format." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task identifier across the system." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
|
|
422
|
+
export type UserSettingsDtoV1 = { readonly "alerts"?: boolean, readonly "approval"?: boolean, readonly "collapseAllProjectLists"?: boolean, readonly "dashboardPinToTop"?: boolean, readonly "dashboardSelection"?: "ME" | "TEAM", readonly "dashboardViewType"?: "PROJECT" | "BILLABILITY", readonly "dateFormat": string, readonly "groupSimilarEntriesDisabled"?: boolean, readonly "invoiceReminders"?: boolean, readonly "isCompactViewOn"?: boolean, readonly "lang"?: string, readonly "longRunning"?: boolean, readonly "multiFactorEnabled"?: boolean, readonly "myStartOfDay"?: string, readonly "onboarding"?: boolean, readonly "projectListCollapse"?: number, readonly "projectPickerTaskFilter"?: boolean, readonly "pto"?: boolean, readonly "reminders"?: boolean, readonly "scheduledReports"?: boolean, readonly "scheduling"?: boolean, readonly "sendNewsletter"?: boolean, readonly "showOnlyWorkingDays"?: boolean, readonly "summaryReportSettings"?: SummaryReportSettingsDtoV1, readonly "theme"?: "DARK" | "DEFAULT", readonly "timeFormat": "HOUR12" | "HOUR24", readonly "timeTrackingManual"?: boolean, readonly "timeZone": string, readonly "weekStart"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "weeklyUpdates"?: boolean }
|
|
423
|
+
export const UserSettingsDtoV1 = Schema.Struct({ "alerts": Schema.optionalKey(Schema.Boolean), "approval": Schema.optionalKey(Schema.Boolean), "collapseAllProjectLists": Schema.optionalKey(Schema.Boolean), "dashboardPinToTop": Schema.optionalKey(Schema.Boolean), "dashboardSelection": Schema.optionalKey(Schema.Literals(["ME", "TEAM"])), "dashboardViewType": Schema.optionalKey(Schema.Literals(["PROJECT", "BILLABILITY"])), "dateFormat": Schema.String.annotate({ "description": "Represents a date format." }).check(Schema.isMinLength(1)), "groupSimilarEntriesDisabled": Schema.optionalKey(Schema.Boolean), "invoiceReminders": Schema.optionalKey(Schema.Boolean), "isCompactViewOn": Schema.optionalKey(Schema.Boolean), "lang": Schema.optionalKey(Schema.String), "longRunning": Schema.optionalKey(Schema.Boolean), "multiFactorEnabled": Schema.optionalKey(Schema.Boolean), "myStartOfDay": Schema.optionalKey(Schema.String), "onboarding": Schema.optionalKey(Schema.Boolean), "projectListCollapse": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())), "projectPickerTaskFilter": Schema.optionalKey(Schema.Boolean), "pto": Schema.optionalKey(Schema.Boolean), "reminders": Schema.optionalKey(Schema.Boolean), "scheduledReports": Schema.optionalKey(Schema.Boolean), "scheduling": Schema.optionalKey(Schema.Boolean), "sendNewsletter": Schema.optionalKey(Schema.Boolean), "showOnlyWorkingDays": Schema.optionalKey(Schema.Boolean), "summaryReportSettings": Schema.optionalKey(SummaryReportSettingsDtoV1), "theme": Schema.optionalKey(Schema.Literals(["DARK", "DEFAULT"])), "timeFormat": Schema.Literals(["HOUR12", "HOUR24"]).annotate({ "description": "Represents a time format enum." }), "timeTrackingManual": Schema.optionalKey(Schema.Boolean), "timeZone": Schema.String.annotate({ "description": "Represents a valid timezone ID" }).check(Schema.isMinLength(1)), "weekStart": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a day of the week." })), "weeklyUpdates": Schema.optionalKey(Schema.Boolean) }).annotate({ "description": "Represents user settings object." })
|
|
424
|
+
export type ExpenseHydratedDto = { readonly "approvalRequestId"?: string, readonly "approvalStatus"?: "PENDING" | "APPROVED" | "UNSUBMITTED" | "REJECTED" | "WITHDRAWN_APPROVAL" | "WITHDRAWN_SUBMISSION", readonly "billable"?: boolean, readonly "category"?: ExpenseCategoryDto, readonly "currency"?: string, readonly "date"?: string, readonly "detailedApprovalStatus"?: "PENDING" | "APPROVED" | "UNSUBMITTED" | "REJECTED" | "WITHDRAWN_APPROVAL" | "WITHDRAWN_SUBMISSION", readonly "fileId"?: string, readonly "fileName"?: string, readonly "fileUrl"?: string, readonly "id"?: string, readonly "isLocked"?: boolean, readonly "locked"?: boolean, readonly "notes"?: string, readonly "project"?: ProjectInfoDto, readonly "quantity"?: number, readonly "task"?: TaskInfoDto, readonly "total"?: number, readonly "userId"?: string, readonly "workspaceId"?: string }
|
|
425
|
+
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())), "task": Schema.optionalKey(TaskInfoDto), "total": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expense total as double data type.", "format": "double" }).check(Schema.isFinite())), "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." })
|
|
426
|
+
export type ExpenseHydratedDtoV1 = { readonly "billable"?: boolean, readonly "category"?: ExpenseCategoryDto, readonly "date"?: string, readonly "fileId"?: string, readonly "fileName"?: string, readonly "id"?: string, readonly "isLocked"?: boolean, readonly "locked"?: boolean, readonly "notes"?: string, readonly "project"?: ProjectInfoDto, readonly "quantity"?: number, readonly "task"?: TaskInfoDto, readonly "total"?: number, readonly "userId"?: string, readonly "workspaceId"?: string }
|
|
427
|
+
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())), "task": Schema.optionalKey(TaskInfoDto), "total": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expense total as double data type.", "format": "double" }).check(Schema.isFinite())), "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." })
|
|
428
|
+
export type TaskDtoV1 = { readonly "assigneeId"?: string, readonly "assigneeIds"?: ReadonlyArray<string>, readonly "billable"?: boolean, readonly "budgetEstimate"?: number, readonly "costRate"?: RateDtoV1, readonly "duration"?: string, readonly "estimate"?: string, readonly "hourlyRate"?: RateDtoV1, readonly "id"?: string, readonly "name"?: string, readonly "projectId"?: string, readonly "status"?: TaskStatus, readonly "userGroupIds"?: ReadonlyArray<string> }
|
|
429
|
+
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())), "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())), "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())) })
|
|
430
|
+
export type UpdateInvoiceRequestV1 = { readonly "clientId"?: string, readonly "companyId"?: string, readonly "currency": string, readonly "discountPercent": number, readonly "dueDate": string, readonly "issuedDate": string, readonly "note"?: string, readonly "number": string, readonly "subject"?: string, readonly "tax2Percent": number, readonly "taxPercent": number, readonly "taxType"?: TaxType, readonly "visibleZeroFields"?: "TAX" | "TAX_2" | "DISCOUNT" }
|
|
431
|
+
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)).check(Schema.isMaxLength(100)), "discountPercent": Schema.Number.annotate({ "description": "Represents an invoice discount percent as double.", "format": "double" }).check(Schema.isFinite()), "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)), "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()), "taxPercent": Schema.Number.annotate({ "description": "Represents an invoice tax percent as double.", "format": "double" }).check(Schema.isFinite()), "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." })) })
|
|
432
|
+
export type UpdateInvoicedStatusRequest = { readonly "invoiced": boolean, readonly "timeEntryIds": ReadonlyArray<TimeEntryId> }
|
|
433
|
+
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)).check(Schema.isUnique()) })
|
|
434
|
+
export type ProjectEstimateRequest = { readonly "budgetEstimate"?: EstimateWithOptionsRequest, readonly "estimateReset"?: EstimateResetRequest, readonly "timeEstimate"?: TimeEstimateRequest }
|
|
435
|
+
export const ProjectEstimateRequest = Schema.Struct({ "budgetEstimate": Schema.optionalKey(EstimateWithOptionsRequest), "estimateReset": Schema.optionalKey(EstimateResetRequest), "timeEstimate": Schema.optionalKey(TimeEstimateRequest) })
|
|
436
|
+
export type TimeEntryInfoDto = { readonly "approvalRequestId"?: string, readonly "billable"?: boolean, readonly "costRate"?: RateDto, readonly "customFieldValues"?: ReadonlyArray<CustomFieldValueDto>, readonly "description"?: string, readonly "hourlyRate"?: RateDto, readonly "id"?: string, readonly "isLocked"?: boolean, readonly "project"?: ProjectInfoDto, readonly "tags"?: ReadonlyArray<TagDto>, readonly "task"?: TaskInfoDto, readonly "timeInterval"?: TimeIntervalDto, readonly "type"?: "REGULAR" | "BREAK" | "HOLIDAY" | "TIME_OFF" }
|
|
437
|
+
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." })
|
|
438
|
+
export type TimeEntryWithCustomFieldsDto = { readonly "billable"?: boolean, readonly "customFieldValues"?: ReadonlyArray<CustomFieldValueDto>, readonly "description"?: string, readonly "id"?: string, readonly "projectId"?: string, readonly "tagIds"?: ReadonlyArray<string>, readonly "taskId"?: string, readonly "timeInterval"?: TimeIntervalDto, readonly "type"?: "REGULAR" | "BREAK" | "HOLIDAY" | "TIME_OFF", readonly "userId"?: string, readonly "workspaceId"?: string }
|
|
439
|
+
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." })
|
|
440
|
+
export type TimeEntryDtoImplV1 = { readonly "billable": boolean, readonly "customFieldValues"?: ReadonlyArray<CustomFieldValueDtoV1>, readonly "description": string, readonly "id": string, readonly "isLocked"?: boolean, readonly "kioskId"?: string | null, readonly "projectId"?: string | null, readonly "tagIds"?: ReadonlyArray<string> | null, readonly "taskId"?: string | null, readonly "timeInterval": TimeIntervalDtoV1, readonly "type"?: "REGULAR" | "BREAK" | "HOLIDAY" | "TIME_OFF", readonly "userId": string, readonly "workspaceId": string }
|
|
441
|
+
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." }) })
|
|
442
|
+
export type TimeEntryDtoV1 = { readonly "billable"?: boolean, readonly "customFieldValues"?: ReadonlyArray<CustomFieldValueDtoV1>, readonly "description"?: string, readonly "id"?: string, readonly "isLocked"?: boolean, readonly "kioskId"?: string | null, readonly "projectId"?: string | null, readonly "tagIds"?: ReadonlyArray<string> | null, readonly "taskId"?: string | null, readonly "timeInterval"?: TimeIntervalDtoV1, readonly "type"?: "REGULAR" | "BREAK" | "HOLIDAY" | "TIME_OFF", readonly "userId"?: string, readonly "workspaceId"?: string }
|
|
443
|
+
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." })) })
|
|
444
|
+
export type TimeEntryWithRatesDtoV1 = { readonly "billable": boolean, readonly "costRate"?: RateDtoV1, readonly "customFieldValues"?: ReadonlyArray<CustomFieldValueDtoV1>, readonly "description": string, readonly "hourlyRate"?: RateDtoV1, readonly "id": string, readonly "isLocked"?: boolean, readonly "kioskId"?: string | null, readonly "projectId"?: string | null, readonly "tagIds"?: ReadonlyArray<string> | null, readonly "taskId"?: string | null, readonly "timeInterval": TimeIntervalDtoV1, readonly "type"?: "REGULAR" | "BREAK" | "HOLIDAY" | "TIME_OFF", readonly "userId": string, readonly "workspaceId": string }
|
|
445
|
+
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." }) })
|
|
446
|
+
export type InvoiceFilterRequestV1 = { readonly "clients"?: ContainsArchivedFilterRequest, readonly "companies"?: BaseFilterRequest, readonly "exactAmount"?: number, readonly "exactBalance"?: number, readonly "greaterThanAmount"?: number, readonly "greaterThanBalance"?: number, readonly "invoiceNumber"?: string, readonly "issueDate"?: TimeRangeRequestDtoV1, readonly "lessThanAmount"?: number, readonly "lessThanBalance"?: number, readonly "page"?: number, readonly "pageSize"?: number, readonly "sortColumn"?: "ID" | "CLIENT" | "DUE_ON" | "ISSUE_DATE" | "AMOUNT" | "BALANCE", readonly "sortOrder"?: "ASCENDING" | "DESCENDING", readonly "statuses"?: ReadonlyArray<"UNSENT" | "SENT" | "PAID" | "PARTIALLY_PAID" | "VOID" | "OVERDUE">, readonly "strictSearch"?: boolean }
|
|
447
|
+
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())), "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())), "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())), "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())), "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())), "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())), "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())), "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." })) })
|
|
448
|
+
export type SchedulingUsersTotalsDtoV1 = { readonly "capacityPerDay"?: number, readonly "totalHoursPerDay"?: ReadonlyArray<TotalsPerDayDto>, readonly "userId"?: string, readonly "userImage"?: string, readonly "userName"?: string, readonly "userStatus"?: string, readonly "workingDays"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "workspaceId"?: string }
|
|
449
|
+
export const SchedulingUsersTotalsDtoV1 = Schema.Struct({ "capacityPerDay": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents capacity per day in seconds. For a 7hr work day, value is 25200.", "format": "double" }).check(Schema.isFinite())), "totalHoursPerDay": Schema.optionalKey(Schema.Array(TotalsPerDayDto).annotate({ "description": "Represents total hours per day object." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "userImage": Schema.optionalKey(Schema.String.annotate({ "description": "Represents url path to user image." })), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user name." })), "userStatus": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user status." })), "workingDays": Schema.optionalKey(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents list of days of the week." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
|
|
450
|
+
export type CreateTimeEntryRequest = { readonly "billable"?: boolean, readonly "customAttributes"?: ReadonlyArray<CreateCustomAttributeRequest>, readonly "customFields"?: ReadonlyArray<UpdateCustomFieldRequest>, readonly "description": string, readonly "end"?: string, readonly "projectId"?: string, readonly "start": string, readonly "tagIds"?: ReadonlyArray<string>, readonly "taskId"?: string, readonly "type"?: "REGULAR" | "BREAK" }
|
|
451
|
+
export const CreateTimeEntryRequest = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether a time entry is billable or not." })), "customAttributes": Schema.optionalKey(Schema.Array(CreateCustomAttributeRequest).annotate({ "description": "Represents a list of create custom field request objects." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(10))), "customFields": Schema.optionalKey(Schema.Array(UpdateCustomFieldRequest).annotate({ "description": "Represents a list of value objects for user’s custom fields." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(50))), "description": Schema.String.annotate({ "description": "Represents time entry description." }).check(Schema.isMaxLength(3000)), "end": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an end date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project identifier across the system." })), "start": Schema.String.annotate({ "description": "Represents a start date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }), "tagIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of tag ids." })).annotate({ "description": "Represents a list of tag ids." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task identifier across the system." })), "type": Schema.optionalKey(Schema.Literals(["REGULAR", "BREAK"]).annotate({ "description": "Valid time entry type." })) })
|
|
452
|
+
export type UpdateTimeEntryBulkRequest = { readonly "billable"?: boolean, readonly "customFields"?: ReadonlyArray<UpdateCustomFieldRequest>, readonly "description"?: string, readonly "end"?: string, readonly "id": string, readonly "projectId"?: string, readonly "start"?: string, readonly "tagIds"?: ReadonlyArray<string>, readonly "taskId"?: string, readonly "type"?: "REGULAR" | "BREAK" }
|
|
453
|
+
export const UpdateTimeEntryBulkRequest = Schema.Struct({ "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether a time entry is billable or not." })), "customFields": Schema.optionalKey(Schema.Array(UpdateCustomFieldRequest).check(Schema.isMinLength(0)).check(Schema.isMaxLength(50))), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time entry description." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3000))), "end": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an end date in the yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "id": Schema.String.annotate({ "description": "Represents a time entry identifier across the system." }).check(Schema.isMinLength(1)), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project identifier across the system." })), "start": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "tagIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of tag ids." })).annotate({ "description": "Represents a list of tag ids." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task identifier across the system." })), "type": Schema.optionalKey(Schema.Literals(["REGULAR", "BREAK"])) })
|
|
454
|
+
export type UpdateTimeEntryRequest = { readonly "billable"?: boolean, readonly "customFields"?: ReadonlyArray<UpdateCustomFieldRequest>, readonly "description"?: string, readonly "end"?: string, readonly "projectId"?: string, readonly "start": string, readonly "tagIds"?: ReadonlyArray<string>, readonly "taskId"?: string, readonly "type"?: "REGULAR" | "BREAK" }
|
|
455
|
+
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)).check(Schema.isMaxLength(50))), "description": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time entry description." }).check(Schema.isMinLength(0)).check(Schema.isMaxLength(3000))), "end": Schema.optionalKey(Schema.String.annotate({ "description": "Represents an end date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project identifier across the system." })), "start": Schema.String.annotate({ "description": "Represents a start date in yyyy-MM-ddThh:mm:ssZ format.", "format": "date-time" }), "tagIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents a list of tag ids." })).annotate({ "description": "Represents a list of tag ids." })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task identifier across the system." })), "type": Schema.optionalKey(Schema.Literals(["REGULAR", "BREAK"])) })
|
|
456
|
+
export type LimitedUserRequest = { readonly "costRate"?: number, readonly "hourlyRate"?: number, readonly "name": string, readonly "userCustomFields"?: ReadonlyArray<UpsertUserCustomFieldRequest>, readonly "userGroups"?: ReadonlyArray<string>, readonly "weekStart"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "workCapacity"?: string, readonly "workingDays"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY" }
|
|
457
|
+
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()).check(Schema.isGreaterThanOrEqualTo(0))), "hourlyRate": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents hourly rate of user. Example: 12300 for 123", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(0))), "name": Schema.String.annotate({ "description": "Represents name of the user." }).check(Schema.isMinLength(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({ "description": "Represents the user group names of the user" }).check(Schema.isUnique())), "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." })) })
|
|
458
|
+
export type MemberProfileFullRequestV1 = { readonly "imageUrl"?: string, readonly "name"?: string, readonly "removeProfileImage"?: boolean, readonly "userCustomFields"?: ReadonlyArray<UpsertUserCustomFieldRequest>, readonly "weekStart"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "workCapacity"?: string, readonly "workingDays"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY" }
|
|
459
|
+
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)).check(Schema.isMaxLength(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." })) })
|
|
460
|
+
export type AddUsersToProjectRequestV1 = { readonly "remove"?: boolean, readonly "userGroups"?: UserGroupIdsSchema, readonly "userIds"?: ReadonlyArray<string> }
|
|
461
|
+
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." })) })
|
|
462
|
+
export type UserGroupDtoV1 = { readonly "id"?: string, readonly "name"?: string, readonly "teamManagers"?: ReadonlyArray<UserRedactedDtoV1>, readonly "userIds"?: ReadonlyArray<string>, readonly "workspaceId"?: string }
|
|
463
|
+
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." })) })
|
|
464
|
+
export type InvoiceInfoV1 = { readonly "amount"?: number, readonly "balance"?: number, readonly "billFrom"?: string, readonly "clientId"?: string, readonly "clientName"?: string, readonly "currency"?: string, readonly "daysOverdue"?: number, readonly "dueDate"?: string, readonly "id"?: string, readonly "issuedDate"?: string, readonly "number"?: string, readonly "paid"?: number, readonly "status"?: "UNSENT" | "SENT" | "PAID" | "PARTIALLY_PAID" | "VOID" | "OVERDUE", readonly "visibleZeroFields"?: VisibleZeroFieldsInvoice }
|
|
465
|
+
export const InvoiceInfoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice amount as long.", "format": "int64" }).check(Schema.isInt())), "balance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice balance amount as long.", "format": "int64" }).check(Schema.isInt())), "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())), "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())), "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." })
|
|
466
|
+
export type WebhookDtoV1 = { readonly "authToken"?: string, readonly "deliveryEnabled"?: boolean, readonly "enabled"?: boolean, readonly "id"?: string, readonly "name"?: string, readonly "planEnabled"?: boolean, readonly "triggerSource"?: ReadonlyArray<string>, readonly "triggerSourceType"?: WebhookEventTriggerSourceType, readonly "url"?: string, readonly "userId"?: string, readonly "webhookEvent"?: WebhookEventType, readonly "workspaceId"?: string }
|
|
467
|
+
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." })) })
|
|
468
|
+
export type TimeEntryReportTotals = { readonly "amounts"?: ReadonlyArray<AmountDto>, readonly "entriesCount"?: number, readonly "id"?: string, readonly "totalBillableTime"?: number, readonly "totalTime"?: number }
|
|
469
|
+
export const TimeEntryReportTotals = Schema.Struct({ "amounts": Schema.optionalKey(Schema.Array(AmountDto).annotate({ "description": "List of amounts" })), "entriesCount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents entries count", "format": "int32" }).check(Schema.isInt())), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents time entry report identifier across the system." })), "totalBillableTime": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents total billable time" }).check(Schema.isFinite())), "totalTime": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents total time" }).check(Schema.isFinite())) }).annotate({ "description": "List of totals" })
|
|
470
|
+
export type AttendanceFilterV1 = { readonly "balanceFilters"?: ReadonlyArray<CompareBalanceFilter>, readonly "breakFilters"?: ReadonlyArray<CompareBreakFilter>, readonly "capacityFilters"?: ReadonlyArray<CompareCapacityFilter>, readonly "endFilters"?: ReadonlyArray<CompareEndFilter>, readonly "groups"?: ReadonlyArray<string>, readonly "hasTimeOff"?: boolean, readonly "overtimeFilters"?: ReadonlyArray<CompareOvertimeFilter>, readonly "page"?: number, readonly "pageSize"?: number, readonly "sortColumn"?: "GROUP" | "USER" | "DATE" | "START" | "END" | "BREAK" | "WORK" | "CAPACITY" | "OVERTIME" | "UNDERTIME" | "BALANCE" | "TIME_OFF", readonly "startFilters"?: ReadonlyArray<CompareStartFilter>, readonly "undertimeFilters"?: ReadonlyArray<CompareUndertimeFilter>, readonly "workFilters"?: ReadonlyArray<CompareWorkFilter> }
|
|
471
|
+
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()).check(Schema.isGreaterThanOrEqualTo(1))), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "description": "Specifies page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(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." })
|
|
472
|
+
export type ExpenseReportFilterV1 = { readonly "approvalState"?: "APPROVED" | "UNAPPROVED" | "ALL", readonly "billable"?: boolean, readonly "categories"?: ContainsArchivedFilterV1, readonly "clients"?: ContainsArchivedFilterV1, readonly "currency"?: ContainsArchivedFilterV1, readonly "dateRangeEnd": string, readonly "dateRangeStart": string, readonly "dateRangeType"?: "ABSOLUTE" | "TODAY" | "YESTERDAY" | "THIS_WEEK" | "LAST_WEEK" | "PAST_TWO_WEEKS" | "THIS_MONTH" | "LAST_MONTH" | "THIS_YEAR" | "LAST_YEAR", readonly "exportType"?: "JSON" | "JSON_V1" | "PDF" | "CSV" | "XLSX" | "ZIP", readonly "invoicingState"?: "INVOICED" | "UNINVOICED" | "ALL", readonly "note"?: string, readonly "page"?: number, readonly "pageSize"?: number, readonly "projects"?: ContainsArchivedFilterV1, readonly "sortColumn"?: "ID" | "PROJECT" | "USER" | "CATEGORY" | "DATE" | "AMOUNT", readonly "sortOrder"?: "ASCENDING" | "DESCENDING", readonly "tasks"?: ContainsTaskFilterV1, readonly "timeZone"?: string, readonly "userGroups"?: ContainsUsersFilterV1, readonly "userLocale"?: string, readonly "users"?: ContainsUsersFilterV1, readonly "weekStart"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "withoutNote"?: boolean, readonly "zoomLevel"?: "WEEK" | "MONTH" | "YEAR" }
|
|
473
|
+
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" })) })
|
|
474
|
+
export type DetailedFilterV1 = { readonly "auditFilter"?: AuditFilterV1, readonly "options"?: DetailedOptionsV1, readonly "page"?: number, readonly "pageSize"?: number, readonly "sortColumn"?: "ID" | "DESCRIPTION" | "USER" | "DURATION" | "DATE" | "ZONED_DATE" | "NATURAL" | "USER_DATE" }
|
|
475
|
+
export const DetailedFilterV1 = Schema.Struct({ "auditFilter": Schema.optionalKey(AuditFilterV1), "options": Schema.optionalKey(DetailedOptionsV1), "page": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())), "pageSize": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt())), "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." })
|
|
476
|
+
export type SharedReportDtoV1 = { readonly "fixedDate"?: boolean, readonly "id"?: string, readonly "isPublic"?: boolean, readonly "link"?: string, readonly "name"?: string, readonly "reportAuthor"?: string, readonly "type"?: "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", readonly "visibleToUserGroups"?: ReadonlyArray<EntityName>, readonly "visibleToUsers"?: ReadonlyArray<EntityName> }
|
|
477
|
+
export const SharedReportDtoV1 = Schema.Struct({ "fixedDate": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the shared report has a fixed date range" })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a shared report identifier across the system." })), "isPublic": Schema.optionalKey(Schema.Boolean), "link": Schema.optionalKey(Schema.String.annotate({ "description": "Represents URI link of shared report.", "format": "uri" })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents shared report's name." })), "reportAuthor": Schema.optionalKey(Schema.String.annotate({ "description": "Represents report author (user) identifier across the system." })), "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": "Represents shared report type" })), "visibleToUserGroups": Schema.optionalKey(Schema.Array(EntityName)), "visibleToUsers": Schema.optionalKey(Schema.Array(EntityName).annotate({ "description": "Represents ids of user to whom are visible shared report." })) }).annotate({ "description": "Represents the array of reports." })
|
|
478
|
+
export type TimeEntryDto = { readonly "approvalRequestId"?: string, readonly "billable": boolean, readonly "clientId"?: string, readonly "clientName"?: string, readonly "description": string, readonly "locked"?: boolean, readonly "projectColor"?: string, readonly "projectId"?: string, readonly "projectName"?: string, readonly "tags"?: ReadonlyArray<ReportTagDto>, readonly "taskId"?: string, readonly "taskName"?: string, readonly "timeInterval": ReportTimeIntervalDto, readonly "userEmail"?: string, readonly "userId": string, readonly "userName"?: string, readonly "id": string, readonly "workspaceId": string, readonly "type"?: string, readonly "isLocked"?: boolean, readonly "tagIds"?: ReadonlyArray<string> }
|
|
479
|
+
export const TimeEntryDto = Schema.Struct({ "approvalRequestId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents approval request identifier across the system." })), "billable": Schema.Boolean.annotate({ "description": "Indicates whether the time entry is billable" }), "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client identifier across the system." })), "clientName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client name" })), "description": Schema.String.annotate({ "description": "Represents time entry description" }), "locked": Schema.optionalKey(Schema.Boolean), "projectColor": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project color" })), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "projectName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project name." })), "tags": Schema.optionalKey(Schema.Array(ReportTagDto).annotate({ "description": "List of tags" })), "taskId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task identifier across the system." })), "taskName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents task name." })), "timeInterval": ReportTimeIntervalDto, "userEmail": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user email." })), "userId": Schema.String.annotate({ "description": "Represents user identifier across the system." }), "userName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user's name" })), "id": Schema.String.annotate({ "description": "Represents time entry identifier across the system." }), "workspaceId": Schema.String, "type": Schema.optionalKey(Schema.String), "isLocked": Schema.optionalKey(Schema.Boolean), "tagIds": Schema.optionalKey(Schema.Array(Schema.String)) }).annotate({ "description": "time entry" })
|
|
480
|
+
export type ExpenseReportDtoV1 = { readonly "amount"?: number, readonly "approvalRequestId"?: string, readonly "billable"?: boolean, readonly "categoryHasUnitPrice"?: boolean, readonly "categoryId"?: string, readonly "categoryName"?: string, readonly "categoryUnit"?: string, readonly "date"?: string, readonly "exportFields"?: ReadonlyArray<"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">, readonly "fileId"?: string, readonly "fileName"?: string, readonly "id"?: string, readonly "invoicingInfo"?: InvoicingInfo, readonly "locked"?: boolean, readonly "notes"?: string, readonly "projectColor"?: string, readonly "projectId"?: string, readonly "projectName"?: string, readonly "quantity"?: number, readonly "reportName"?: string, readonly "time"?: string, readonly "userEmail"?: string, readonly "userId"?: string, readonly "userName"?: string, readonly "userStatus"?: string, readonly "workspaceId"?: string }
|
|
481
|
+
export const ExpenseReportDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents expenses amount.", "format": "double" }).check(Schema.isFinite())), "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())), "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" })
|
|
482
|
+
export type PageableV1ListAuditLogDtoV1 = { readonly "response"?: ReadonlyArray<AuditLogDtoV1> }
|
|
483
|
+
export const PageableV1ListAuditLogDtoV1 = Schema.Struct({ "response": Schema.optionalKey(Schema.Array(AuditLogDtoV1)) })
|
|
484
|
+
export type AuditLogGetRequestV1 = { readonly "actions": ReadonlyArray<"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">, readonly "authors": Authors, readonly "end": string, readonly "page"?: number, readonly "page-size"?: number, readonly "start": string }
|
|
485
|
+
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)).check(Schema.isUnique()), "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()).check(Schema.isGreaterThanOrEqualTo(0))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(50))), "start": Schema.String.annotate({ "description": "Represents a start date in the yyyy-MM-ddThh:mm:ssZ format." }) })
|
|
486
|
+
export type InvoiceOverviewDtoV1 = { readonly "amount"?: number, readonly "balance"?: number, readonly "billFrom"?: string, readonly "calculationType"?: CalculationType, readonly "clientAddress"?: string, readonly "clientId"?: string, readonly "clientName"?: string, readonly "companyId"?: string, readonly "containsImportedExpenses"?: boolean, readonly "containsImportedTimes"?: boolean, readonly "currency"?: string, readonly "discount"?: number, readonly "discountAmount"?: number, readonly "dueDate"?: string, readonly "id"?: string, readonly "issuedDate"?: string, readonly "items"?: ReadonlyArray<InvoiceItemDto>, readonly "note"?: string, readonly "number"?: string, readonly "paid"?: number, readonly "status"?: "UNSENT" | "SENT" | "PAID" | "PARTIALLY_PAID" | "VOID" | "OVERDUE", readonly "subject"?: string, readonly "subtotal"?: number, readonly "tax"?: number, readonly "tax2"?: number, readonly "tax2Amount"?: number, readonly "taxAmount"?: number, readonly "taxType"?: TaxType, readonly "userId"?: string, readonly "visibleZeroFields"?: VisibleZeroFieldsInvoice }
|
|
487
|
+
export const InvoiceOverviewDtoV1 = Schema.Struct({ "amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice amount as long.", "format": "int64" }).check(Schema.isInt())), "balance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice balance amount as long.", "format": "int64" }).check(Schema.isInt())), "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())), "discountAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice discount amount as long.", "format": "int64" }).check(Schema.isInt())), "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())), "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())), "tax": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice tax amount as double.", "format": "double" }).check(Schema.isFinite())), "tax2": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice tax amount as double.", "format": "double" }).check(Schema.isFinite())), "tax2Amount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice tax amount as long.", "format": "int64" }).check(Schema.isInt())), "taxAmount": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents an invoice tax amount as long.", "format": "int64" }).check(Schema.isInt())), "taxType": Schema.optionalKey(TaxType), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "visibleZeroFields": Schema.optionalKey(VisibleZeroFieldsInvoice) })
|
|
488
|
+
export type RoleDetailsDtoV1 = { readonly "role"?: RoleDtoV1, readonly "userId"?: string, readonly "workspaceId"?: string }
|
|
489
|
+
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." })) })
|
|
490
|
+
export type UserCustomFieldValueFullDtoV1 = { readonly "customField"?: CustomFieldDtoV1, readonly "customFieldId"?: string, readonly "name"?: string, readonly "sourceType"?: "WORKSPACE" | "USER", readonly "type"?: "TXT" | "NUMBER" | "DROPDOWN_SINGLE" | "DROPDOWN_MULTIPLE" | "CHECKBOX" | "LINK", readonly "userId"?: string, readonly "value"?: { } }
|
|
491
|
+
export const UserCustomFieldValueFullDtoV1 = Schema.Struct({ "customField": Schema.optionalKey(CustomFieldDtoV1), "customFieldId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents custom field identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user custom field name." })), "sourceType": Schema.optionalKey(Schema.Literals(["WORKSPACE", "USER"]).annotate({ "description": "Represents user custom field source type." })), "type": Schema.optionalKey(Schema.Literals(["TXT", "NUMBER", "DROPDOWN_SINGLE", "DROPDOWN_MULTIPLE", "CHECKBOX", "LINK"]).annotate({ "description": "Represents custom field type." })), "userId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user identifier across the system." })), "value": Schema.optionalKey(Schema.Struct({ }).annotate({ "description": "Represents user custom field value." })) }).annotate({ "description": "Represents a list of value objects for user’s custom fields." })
|
|
492
|
+
export type HolidayDto = { readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationDto, readonly "color"?: string, readonly "datePeriod"?: DatePeriod, readonly "everyoneIncludingNew"?: boolean, readonly "id"?: string, readonly "name"?: string, readonly "occursAnnually"?: boolean, readonly "userGroupIds"?: ReadonlyArray<string>, readonly "userGroups"?: ReadonlyArray<EntityIdNameDto>, readonly "userIds"?: ReadonlyArray<string>, readonly "users"?: ReadonlyArray<EntityIdNameDto>, readonly "workspaceId"?: string }
|
|
493
|
+
export const HolidayDto = Schema.Struct({ "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationDto), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Provide color in format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." })), "datePeriod": Schema.optionalKey(DatePeriod), "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday is shown to new users." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents holiday identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the name of the holiday." })), "occursAnnually": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday occurs annually." })), "userGroupIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Indicates which user groups are included." })).annotate({ "description": "Indicates which user groups are included." }).check(Schema.isUnique())), "userGroups": Schema.optionalKey(Schema.Array(EntityIdNameDto).annotate({ "description": "Contains names of user groups that are assigned to holiday." })), "userIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Indicates which users are included." })).annotate({ "description": "Indicates which users are included." }).check(Schema.isUnique())), "users": Schema.optionalKey(Schema.Array(EntityIdNameDto).annotate({ "description": "Contains names of users that are assigned to holiday." })), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
|
|
494
|
+
export type PolicyDtoV1 = { readonly "allowHalfDay"?: boolean, readonly "allowNegativeBalance"?: boolean, readonly "approve"?: PolicyApprovalDto, readonly "archived"?: boolean, readonly "automaticAccrual"?: AutomaticAccrualDto, readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationDto, readonly "everyoneIncludingNew"?: boolean, readonly "id"?: string, readonly "name"?: string, readonly "negativeBalance"?: NegativeBalanceDto, readonly "projectId"?: string, readonly "timeUnit"?: "DAYS" | "HOURS", readonly "userGroupIds"?: ReadonlyArray<string>, readonly "userIds"?: ReadonlyArray<string>, readonly "workspaceId"?: string }
|
|
495
|
+
export const PolicyDtoV1 = Schema.Struct({ "allowHalfDay": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the half day is allowed." })), "allowNegativeBalance": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the negative balance is allowed." })), "approve": Schema.optionalKey(PolicyApprovalDto), "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy is archived." })), "automaticAccrual": Schema.optionalKey(AutomaticAccrualDto), "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationDto), "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy is applied to future new users." })), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents policy identifier across the system." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents the name of the policy." })), "negativeBalance": Schema.optionalKey(NegativeBalanceDto), "projectId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "timeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Represents the time unit of the policy." })), "userGroupIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents user groups' identifiers across the system. Indicates which user groups are included in the policy." })).annotate({ "description": "Represents user groups' identifiers across the system. Indicates which user groups are included in the policy." }).check(Schema.isUnique())), "userIds": Schema.optionalKey(Schema.Array(Schema.String.annotate({ "description": "Represents users' identifiers across the system. Indicates which users are included in the policy." })).annotate({ "description": "Represents users' identifiers across the system. Indicates which users are included in the policy." }).check(Schema.isUnique())), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
|
|
496
|
+
export type CreateHolidayRequestV1 = { readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationRequest, readonly "color"?: string, readonly "datePeriod": DatePeriodRequest, readonly "everyoneIncludingNew"?: boolean, readonly "name": string, readonly "occursAnnually"?: boolean, readonly "userGroups"?: UserGroupIdsSchema, readonly "users"?: UserIdsSchema }
|
|
497
|
+
export const CreateHolidayRequestV1 = Schema.Struct({ "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationRequest), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Provide color in format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." }).check(Schema.isPattern(new RegExp("^#(?:[0-9a-fA-F]{6}){1}$")))), "datePeriod": DatePeriodRequest, "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday is shown to new users." })), "name": Schema.String.annotate({ "description": "Provide the name of the holiday." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(100)), "occursAnnually": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday occurs annually." })), "userGroups": Schema.optionalKey(UserGroupIdsSchema), "users": Schema.optionalKey(UserIdsSchema) })
|
|
498
|
+
export type CreatePolicyRequestV1 = { readonly "allowHalfDay"?: boolean, readonly "allowNegativeBalance"?: boolean, readonly "approve": PolicyApprovalDto, readonly "archived"?: boolean, readonly "automaticAccrual"?: AutomaticAccrualRequest, readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationRequest, readonly "color"?: string, readonly "everyoneIncludingNew"?: boolean, readonly "hasExpiration"?: boolean, readonly "icon"?: "UMBRELLA" | "SNOWFLAKE" | "FAMILY" | "PLANE" | "STETHOSCOPE" | "HEALTH_METRICS" | "CHILDCARE" | "LUGGAGE" | "MONETIZATION" | "CALENDAR", readonly "name": string, readonly "negativeBalance"?: NegativeBalanceRequest, readonly "timeUnit"?: "DAYS" | "HOURS", readonly "userGroups"?: UserGroupIdsSchema, readonly "users"?: UserIdsSchema }
|
|
499
|
+
export const CreatePolicyRequestV1 = Schema.Struct({ "allowHalfDay": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether policy allows half days." })), "allowNegativeBalance": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether policy allows negative balances." })), "approve": PolicyApprovalDto, "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether policy is archived." })), "automaticAccrual": Schema.optionalKey(AutomaticAccrualRequest), "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationRequest), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Provide color in format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." }).check(Schema.isPattern(new RegExp("^#(?:[0-9a-fA-F]{6}){1}$")))), "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy is to be applied to future new users." })), "hasExpiration": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the policy balance should have expiration" })), "icon": Schema.optionalKey(Schema.Literals(["UMBRELLA", "SNOWFLAKE", "FAMILY", "PLANE", "STETHOSCOPE", "HEALTH_METRICS", "CHILDCARE", "LUGGAGE", "MONETIZATION", "CALENDAR"]).annotate({ "description": "Provide icon." })), "name": Schema.String.annotate({ "description": "Represents a name of new policy." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(100)), "negativeBalance": Schema.optionalKey(NegativeBalanceRequest), "timeUnit": Schema.optionalKey(Schema.Literals(["DAYS", "HOURS"]).annotate({ "description": "Indicates time unit of the policy. " })), "userGroups": Schema.optionalKey(UserGroupIdsSchema), "users": Schema.optionalKey(UserIdsSchema) })
|
|
500
|
+
export type UpdateHolidayRequestV1 = { readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationRequest, readonly "color"?: string, readonly "datePeriod": DatePeriodRequest, readonly "everyoneIncludingNew"?: boolean, readonly "name": string, readonly "occursAnnually": boolean, readonly "userGroups"?: ContainsUserGroupFilterRequest, readonly "users"?: ContainsUsersFilterRequestForHoliday }
|
|
501
|
+
export const UpdateHolidayRequestV1 = Schema.Struct({ "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationRequest), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Provide color in format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." }).check(Schema.isPattern(new RegExp("^#(?:[0-9a-fA-F]{6}){1}$")))), "datePeriod": DatePeriodRequest, "everyoneIncludingNew": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether the holiday is shown to new users." })), "name": Schema.String.annotate({ "description": "Provide the name you would like to use for updating the holiday." }).check(Schema.isMinLength(1)), "occursAnnually": Schema.Boolean.annotate({ "description": "Indicates whether the holiday occurs annually." }), "userGroups": Schema.optionalKey(ContainsUserGroupFilterRequest), "users": Schema.optionalKey(ContainsUsersFilterRequestForHoliday) })
|
|
502
|
+
export type UpdatePolicyRequestV1 = { readonly "allowHalfDay": boolean, readonly "allowNegativeBalance": boolean, readonly "approve": PolicyApprovalDto, readonly "archived": boolean, readonly "automaticAccrual"?: AutomaticAccrualRequest, readonly "automaticTimeEntryCreation"?: AutomaticTimeEntryCreationRequest, readonly "color"?: string, readonly "everyoneIncludingNew": boolean, readonly "hasExpiration": boolean, readonly "icon"?: "UMBRELLA" | "SNOWFLAKE" | "FAMILY" | "PLANE" | "STETHOSCOPE" | "HEALTH_METRICS" | "CHILDCARE" | "LUGGAGE" | "MONETIZATION" | "CALENDAR", readonly "name": string, readonly "negativeBalance"?: NegativeBalanceRequest, readonly "userGroups": UserGroupIdsSchema, readonly "users": UserIdsSchema }
|
|
503
|
+
export const UpdatePolicyRequestV1 = Schema.Struct({ "allowHalfDay": Schema.Boolean.annotate({ "description": "Indicates whether policy allows half day." }), "allowNegativeBalance": Schema.Boolean.annotate({ "description": "Indicates whether policy allows negative balance." }), "approve": PolicyApprovalDto, "archived": Schema.Boolean.annotate({ "description": "Indicates whether policy is archived." }), "automaticAccrual": Schema.optionalKey(AutomaticAccrualRequest), "automaticTimeEntryCreation": Schema.optionalKey(AutomaticTimeEntryCreationRequest), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Provide color in format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." }).check(Schema.isPattern(new RegExp("^#(?:[0-9a-fA-F]{6}){1}$")))), "everyoneIncludingNew": Schema.Boolean.annotate({ "description": "Indicates whether the policy is shown to new users." }), "hasExpiration": Schema.Boolean.annotate({ "description": "Indicates whether the policy has expiration." }), "icon": Schema.optionalKey(Schema.Literals(["UMBRELLA", "SNOWFLAKE", "FAMILY", "PLANE", "STETHOSCOPE", "HEALTH_METRICS", "CHILDCARE", "LUGGAGE", "MONETIZATION", "CALENDAR"]).annotate({ "description": "Provide icon." })), "name": Schema.String.annotate({ "description": "Provide the name you would like to use for updating the policy." }).check(Schema.isMinLength(2)).check(Schema.isMaxLength(100)), "negativeBalance": Schema.optionalKey(NegativeBalanceRequest), "userGroups": UserGroupIdsSchema, "users": UserIdsSchema })
|
|
504
|
+
export type WorkspaceSettingsDtoV1 = { readonly "activeBillableHours"?: boolean, readonly "adminOnlyPages"?: "PROJECT" | "TEAM" | "REPORTS", readonly "automaticLock"?: AutomaticLockDtoV1, readonly "canSeeTimeSheet"?: boolean, readonly "canSeeTracker"?: boolean, readonly "currencyFormat"?: "CURRENCY_SPACE_VALUE" | "VALUE_SPACE_CURRENCY" | "CURRENCY_VALUE" | "VALUE_CURRENCY", readonly "defaultBillableProjects"?: boolean, readonly "durationFormat"?: "FULL" | "COMPACT" | "DECIMAL", readonly "entityCreationPermissions"?: EntityCreationPermissionsDtoV1, readonly "forceDescription"?: boolean, readonly "forceProjects"?: boolean, readonly "forceTags"?: boolean, readonly "forceTasks"?: boolean, readonly "isProjectPublicByDefault"?: boolean, readonly "lockTimeEntries"?: string, readonly "lockTimeZone"?: string, readonly "multiFactorEnabled"?: boolean, readonly "numberFormat"?: "COMMA_PERIOD" | "PERIOD_COMMA" | "QUOTATION_MARK_PERIOD" | "SPACE_COMMA", readonly "onlyAdminsCanChangeBillableStatus"?: boolean, readonly "onlyAdminsCreateProject"?: boolean, readonly "onlyAdminsCreateTag"?: boolean, readonly "onlyAdminsCreateTask"?: boolean, readonly "onlyAdminsSeeAllTimeEntries"?: boolean, readonly "onlyAdminsSeeBillableRates"?: boolean, readonly "onlyAdminsSeeDashboard"?: boolean, readonly "onlyAdminsSeePublicProjectsEntries"?: boolean, readonly "projectFavorites"?: boolean, readonly "projectGroupingLabel"?: string, readonly "projectLabel"?: string, readonly "projectPickerSpecialFilter"?: boolean, readonly "round"?: RoundDto, readonly "taskLabel"?: string, readonly "timeRoundingInReports"?: boolean, readonly "timeTrackingMode"?: "DEFAULT" | "STOPWATCH_ONLY", readonly "trackTimeDownToSecond"?: boolean, readonly "workingDays"?: ReadonlyArray<"MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY"> }
|
|
505
|
+
export const WorkspaceSettingsDtoV1 = Schema.Struct({ "activeBillableHours": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether billable hours is active." })), "adminOnlyPages": Schema.optionalKey(Schema.Literals(["PROJECT", "TEAM", "REPORTS"]).annotate({ "description": "Represents a unique list of protected page enums." })), "automaticLock": Schema.optionalKey(AutomaticLockDtoV1), "canSeeTimeSheet": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether timesheets are visible or not." })), "canSeeTracker": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether time trackers are visible or not." })), "currencyFormat": Schema.optionalKey(Schema.Literals(["CURRENCY_SPACE_VALUE", "VALUE_SPACE_CURRENCY", "CURRENCY_VALUE", "VALUE_CURRENCY"]).annotate({ "description": "Represents a clockify currency format enum." })), "defaultBillableProjects": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether projects are billable by default." })), "durationFormat": Schema.optionalKey(Schema.Literals(["FULL", "COMPACT", "DECIMAL"]).annotate({ "description": "Represents a clockify duration format enum. Used to set Duration format instead of setting decimalFormat and trackTimeDownToSecond." })), "entityCreationPermissions": Schema.optionalKey(EntityCreationPermissionsDtoV1), "forceDescription": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether description are forced or not." })), "forceProjects": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether projects are forced or not." })), "forceTags": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether tags are forced or not." })), "forceTasks": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether tasks are forced or not." })), "isProjectPublicByDefault": Schema.optionalKey(Schema.Boolean), "lockTimeEntries": Schema.optionalKey(Schema.String), "lockTimeZone": Schema.optionalKey(Schema.String), "multiFactorEnabled": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether two-factor authentication is enabled or not." })), "numberFormat": Schema.optionalKey(Schema.Literals(["COMMA_PERIOD", "PERIOD_COMMA", "QUOTATION_MARK_PERIOD", "SPACE_COMMA"]).annotate({ "description": "Represents a clockify number format enum." })), "onlyAdminsCanChangeBillableStatus": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can change billable status." })), "onlyAdminsCreateProject": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can create projects." })), "onlyAdminsCreateTag": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can create tags." })), "onlyAdminsCreateTask": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can create task." })), "onlyAdminsSeeAllTimeEntries": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can see all time entries." })), "onlyAdminsSeeBillableRates": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can see billable rates." })), "onlyAdminsSeeDashboard": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can see dashboard." })), "onlyAdminsSeePublicProjectsEntries": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether only admins can see public project entries." })), "projectFavorites": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project favorites are allowed." })), "projectGroupingLabel": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project grouping label." })), "projectLabel": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project label." })), "projectPickerSpecialFilter": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project picker special filter is enabled." })), "round": Schema.optionalKey(RoundDto), "taskLabel": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a task label." })), "timeRoundingInReports": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether time rounding is enabled in reports." })), "timeTrackingMode": Schema.optionalKey(Schema.Literals(["DEFAULT", "STOPWATCH_ONLY"]).annotate({ "description": "Represents a time tracking mode enum." })), "trackTimeDownToSecond": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether time tracking is seconds-accurate. This is now deprecated and durationFormat can now be used to manage Time Duration Format." })), "workingDays": Schema.optionalKey(Schema.Array(Schema.Literals(["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]).annotate({ "description": "Represents a list of working days." })).annotate({ "description": "Represents a list of working days." }).check(Schema.isUnique())) }).annotate({ "description": "Workspace settings also include Time Duration Format settings.\n\nSetting Time Duration Format by changing the boolean fields\ndecimalFormat and trackTimeDownToSecond is now deprecated.\n\nTime Duration Format can be set by durationFormat enum field.\n\nThree different Time Duration modes will still map the boolean fields:\n\n 1. Full (hh:mm:ss) -> decimalFormat = false, trackTimeDownToSecond = true,\n\n 2. Compact (h:mm) -> decimalFormat = false, trackTimeDownToSecond = false,\n\n 3. Decimal (h:hh) -> decimalFormat = true, trackTimeDownToSecond = true\n\n" })
|
|
506
|
+
export type ProjectRequest = { readonly "billable"?: boolean, readonly "clientId"?: string, readonly "color"?: string, readonly "costRate"?: CostRateRequestV1, readonly "estimate"?: EstimateRequest, readonly "hourlyRate"?: HourlyRateRequestV1, readonly "isPublic"?: boolean, readonly "memberships"?: ReadonlyArray<MembershipRequest>, readonly "name": string, readonly "note"?: string, readonly "tasks"?: ReadonlyArray<TaskRequest> }
|
|
507
|
+
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}$")))), "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)).check(Schema.isMaxLength(250)), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project note." }).check(Schema.isMaxLength(16384))), "tasks": Schema.optionalKey(Schema.Array(TaskRequest).annotate({ "description": "Represents a list of task request objects." })) })
|
|
508
|
+
export type UpdateProjectMembershipsRequest = { readonly "memberships": ReadonlyArray<UserIdWithRatesRequest>, readonly "userGroups"?: UserGroupIdsSchema }
|
|
509
|
+
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) })
|
|
510
|
+
export type TimeOffRequestFullV1Dto = { readonly "balance"?: number, readonly "balanceDiff"?: number, readonly "createdAt"?: string, readonly "id"?: string, readonly "note"?: string, readonly "policyId"?: string, readonly "policyName"?: string, readonly "requesterUserId"?: string, readonly "requesterUserName"?: string, readonly "status"?: TimeOffRequestStatus, readonly "timeOffPeriod"?: TimeOffRequestPeriodDto, readonly "timeUnit"?: "DAYS" | "HOURS", readonly "userEmail"?: string, readonly "userId"?: string, readonly "userName"?: string, readonly "userTimeZone"?: string, readonly "workspaceId"?: string }
|
|
511
|
+
export const TimeOffRequestFullV1Dto = Schema.Struct({ "balance": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the time off balance.", "format": "double" }).check(Schema.isFinite())), "balanceDiff": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the balance difference.", "format": "double" }).check(Schema.isFinite())), "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." })
|
|
512
|
+
export type TimeOffRequestV1Dto = { readonly "balanceDiff"?: number, readonly "createdAt"?: string, readonly "id"?: string, readonly "note"?: string, readonly "policyId"?: string, readonly "status"?: TimeOffRequestStatus, readonly "timeOffPeriod"?: TimeOffRequestPeriodDto, readonly "userId"?: string, readonly "workspaceId"?: string }
|
|
513
|
+
export const TimeOffRequestV1Dto = Schema.Struct({ "balanceDiff": Schema.optionalKey(Schema.Number.annotate({ "description": "Represents the balance difference", "format": "double" }).check(Schema.isFinite())), "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." })) })
|
|
514
|
+
export type CreateTimeOffRequestV1Request = { readonly "note"?: string, readonly "timeOffPeriod": TimeOffRequestPeriodV1Request }
|
|
515
|
+
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 })
|
|
516
|
+
export type ProjectDtoImplV1 = { readonly "archived"?: boolean, readonly "billable"?: boolean, readonly "budgetEstimate"?: EstimateWithOptionsDto, readonly "clientId"?: string, readonly "clientName"?: string, readonly "color"?: string, readonly "costRate"?: RateDtoV1, readonly "duration"?: string, readonly "estimate"?: EstimateDtoV1, readonly "estimateReset"?: EstimateResetDto, readonly "hourlyRate"?: RateDtoV1, readonly "id"?: string, readonly "isPublic"?: boolean, readonly "isTemplate"?: boolean, readonly "memberships"?: ReadonlyArray<MembershipDtoV1>, readonly "name"?: string, readonly "note"?: string, readonly "public"?: boolean, readonly "template"?: boolean, readonly "timeEstimate"?: TimeEstimateDto, readonly "workspaceId"?: string }
|
|
517
|
+
export const ProjectDtoImplV1 = Schema.Struct({ "archived": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is archived or not." })), "billable": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is billable or not." })), "budgetEstimate": Schema.optionalKey(EstimateWithOptionsDto), "clientId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client identifier across the system." })), "clientName": Schema.optionalKey(Schema.String.annotate({ "description": "Represents client name." })), "color": Schema.optionalKey(Schema.String.annotate({ "description": "Color format ^#(?:[0-9a-fA-F]{6}){1}$. Explanation: A valid color code should start with '#' and consist of six hexadecimal characters, representing a color in hexadecimal format. Color value is in standard RGB hexadecimal format." })), "costRate": Schema.optionalKey(RateDtoV1), "duration": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project duration in milliseconds." })), "estimate": Schema.optionalKey(EstimateDtoV1), "estimateReset": Schema.optionalKey(EstimateResetDto), "hourlyRate": Schema.optionalKey(RateDtoV1), "id": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project identifier across the system." })), "isPublic": Schema.optionalKey(Schema.Boolean.annotate({ "writeOnly": true })), "isTemplate": Schema.optionalKey(Schema.Boolean.annotate({ "writeOnly": true })), "memberships": Schema.optionalKey(Schema.Array(MembershipDtoV1).annotate({ "description": "Represents a list of membership objects." })), "name": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a project name." })), "note": Schema.optionalKey(Schema.String.annotate({ "description": "Represents project note." })), "public": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is public or not." })), "template": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Indicates whether project is a template or not." })), "timeEstimate": Schema.optionalKey(TimeEstimateDto), "workspaceId": Schema.optionalKey(Schema.String.annotate({ "description": "Represents workspace identifier across the system." })) })
|
|
518
|
+
export type ProjectDtoV1 = { readonly "archived": boolean, readonly "billable": boolean, readonly "budgetEstimate"?: EstimateWithOptionsDto, readonly "color": string, readonly "costRate"?: RateDtoV1, readonly "duration"?: string, readonly "estimate"?: EstimateDtoV1, readonly "hourlyRate"?: RateDtoV1, readonly "id": string, readonly "memberships"?: ReadonlyArray<MembershipDtoV1>, readonly "name": string, readonly "note"?: string, readonly "public"?: boolean, readonly "template"?: boolean, readonly "timeEstimate"?: TimeEstimateDto, readonly "workspaceId": string }
|
|
519
|
+
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 })
|
|
520
|
+
export type UserDtoV1 = { readonly "activeWorkspace"?: string, readonly "customFields"?: ReadonlyArray<UserCustomFieldValueDtoV1>, readonly "defaultWorkspace"?: string, readonly "email": string, readonly "id": string, readonly "memberships"?: ReadonlyArray<MembershipDtoV1>, readonly "name": string, readonly "profilePicture"?: string, readonly "settings"?: UserSettingsDtoV1, readonly "status"?: AccountStatus }
|
|
521
|
+
export const UserDtoV1 = Schema.Struct({ "activeWorkspace": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user's active workspace identifier across the system." })), "customFields": Schema.optionalKey(Schema.Array(UserCustomFieldValueDtoV1).annotate({ "description": "Represents a list of value objects for user’s custom fields." })), "defaultWorkspace": Schema.optionalKey(Schema.String.annotate({ "description": "Represents user default workspace identifier across the system." })), "email": Schema.String.annotate({ "description": "Represents email address of the user." }), "id": Schema.String.annotate({ "description": "Represents user identifier across the system." }), "memberships": Schema.optionalKey(Schema.Array(MembershipDtoV1).annotate({ "description": "Represents a list of membership objects." })), "name": Schema.String.annotate({ "description": "Represents name of the user." }), "profilePicture": Schema.optionalKey(Schema.String.annotate({ "description": "Represents profile image path of the user." })), "settings": Schema.optionalKey(UserSettingsDtoV1), "status": Schema.optionalKey(AccountStatus) })
|
|
522
|
+
export type ExpensesWithCountDtoV1 = { readonly "count"?: number, readonly "expenses"?: ReadonlyArray<ExpenseHydratedDtoV1> }
|
|
523
|
+
export const ExpensesWithCountDtoV1 = Schema.Struct({ "count": Schema.optionalKey(Schema.Number.annotate({ "description": "Represent result count.", "format": "int32" }).check(Schema.isInt())), "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." })
|
|
524
|
+
export type ApprovalDetailsDtoV1 = { readonly "approvalRequest"?: ApprovalRequestDtoV1, readonly "approvedTime"?: string, readonly "billableAmount"?: number, readonly "billableTime"?: string, readonly "breakTime"?: string, readonly "costAmount"?: number, readonly "entries"?: ReadonlyArray<TimeEntryInfoDto>, readonly "expenseTotal"?: number, readonly "expenses"?: ReadonlyArray<ExpenseHydratedDto>, readonly "pendingTime"?: string, readonly "trackedTime"?: string }
|
|
525
|
+
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())), "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())), "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())), "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." })) })
|
|
526
|
+
export type TemplateDtoImpl = { readonly "entries"?: ReadonlyArray<TimeEntryWithCustomFieldsDto>, readonly "id"?: string, readonly "name"?: string, readonly "projectsAndTasks"?: ReadonlyArray<ProjectTaskTupleDto>, readonly "userId"?: string, readonly "weekStart"?: string, readonly "workspaceId"?: string }
|
|
527
|
+
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." })) })
|
|
528
|
+
export type AddLimitedUsersRequest = { readonly "users": ReadonlyArray<LimitedUserRequest> }
|
|
529
|
+
export const AddLimitedUsersRequest = Schema.Struct({ "users": Schema.Array(LimitedUserRequest).check(Schema.isMinLength(1)).check(Schema.isMaxLength(250)) })
|
|
530
|
+
export type InvoiceInfoResponseDtoV1 = { readonly "invoices"?: ReadonlyArray<InvoiceInfoV1>, readonly "total"?: number }
|
|
531
|
+
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())) })
|
|
532
|
+
export type WebhooksDtoV1 = { readonly "webhooks"?: ReadonlyArray<WebhookDtoV1>, readonly "workspaceWebhookCount"?: number }
|
|
533
|
+
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())) })
|
|
534
|
+
export type AttendanceReportFilterV1 = { readonly "amountShown"?: "EARNED" | "COST" | "PROFIT" | "HIDE_AMOUNT" | "EXPORT", readonly "amounts"?: ReadonlyArray<"EARNED" | "COST" | "PROFIT" | "HIDE_AMOUNT" | "EXPORT">, readonly "approvalState"?: "APPROVED" | "UNAPPROVED" | "ALL", readonly "archived"?: boolean, readonly "attendanceFilter": AttendanceFilterV1, readonly "billable"?: boolean, readonly "clients"?: ContainsArchivedFilterV1, readonly "currency"?: ContainsArchivedFilterV1, readonly "customFields"?: ReadonlyArray<CustomFieldFilterV1>, readonly "dateFormat"?: string, readonly "dateRangeEnd": string, readonly "dateRangeStart": string, readonly "dateRangeType"?: "ABSOLUTE" | "TODAY" | "YESTERDAY" | "THIS_WEEK" | "LAST_WEEK" | "PAST_TWO_WEEKS" | "THIS_MONTH" | "LAST_MONTH" | "THIS_YEAR" | "LAST_YEAR", readonly "description"?: string, readonly "detailedFilter"?: DetailedFilterV1, readonly "exportType"?: "JSON" | "JSON_V1" | "PDF" | "CSV" | "XLSX" | "ZIP", readonly "invoicingState"?: "INVOICED" | "UNINVOICED" | "ALL", readonly "projects"?: ContainsArchivedFilterV1, readonly "rounding"?: boolean, readonly "sortOrder"?: "ASCENDING" | "DESCENDING", readonly "summaryFilter"?: SummaryFilterV1, readonly "tags"?: ContainsTagFilterV1, readonly "tasks"?: ContainsTaskFilterV1, readonly "timeFormat"?: string, readonly "timeZone"?: string, readonly "userGroups"?: ContainsUsersFilterV1, readonly "userLocale"?: string, readonly "users"?: ContainsUsersFilterV1, readonly "weekStart"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "weeklyFilter"?: WeeklyFilterV1, readonly "withoutDescription"?: boolean, readonly "zoomLevel"?: "WEEK" | "MONTH" | "YEAR" }
|
|
535
|
+
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)), "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": "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." })) })
|
|
536
|
+
export type DetailedReportFilterV1 = { readonly "amountShown"?: "EARNED" | "COST" | "PROFIT" | "HIDE_AMOUNT" | "EXPORT", readonly "amounts"?: ReadonlyArray<"EARNED" | "COST" | "PROFIT" | "HIDE_AMOUNT" | "EXPORT">, readonly "approvalState"?: "APPROVED" | "UNAPPROVED" | "ALL", readonly "archived"?: boolean, readonly "attendanceFilter"?: AttendanceFilterV1, readonly "billable"?: boolean, readonly "clients"?: ContainsArchivedFilterV1, readonly "currency"?: ContainsArchivedFilterV1, readonly "customFields"?: ReadonlyArray<CustomFieldFilterV1>, readonly "dateFormat"?: string, readonly "dateRangeEnd": string, readonly "dateRangeStart": string, readonly "dateRangeType"?: "ABSOLUTE" | "TODAY" | "YESTERDAY" | "THIS_WEEK" | "LAST_WEEK" | "PAST_TWO_WEEKS" | "THIS_MONTH" | "LAST_MONTH" | "THIS_YEAR" | "LAST_YEAR", readonly "description"?: string, readonly "detailedFilter": DetailedFilterV1, readonly "exportType"?: "JSON" | "JSON_V1" | "PDF" | "CSV" | "XLSX" | "ZIP", readonly "invoicingState"?: "INVOICED" | "UNINVOICED" | "ALL", readonly "projects"?: ContainsArchivedFilterV1, readonly "rounding"?: boolean, readonly "sortOrder"?: "ASCENDING" | "DESCENDING", readonly "summaryFilter"?: SummaryFilterV1, readonly "tags"?: ContainsTagFilterV1, readonly "tasks"?: ContainsTaskFilterV1, readonly "timeFormat"?: string, readonly "timeZone"?: string, readonly "userCustomFields"?: ReadonlyArray<CustomFieldFilterV1>, readonly "userGroups"?: ContainsUsersFilterV1, readonly "userLocale"?: string, readonly "users"?: ContainsUsersFilterV1, readonly "weekStart"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "weeklyFilter"?: WeeklyFilterV1, readonly "withoutDescription"?: boolean, readonly "zoomLevel"?: "WEEK" | "MONTH" | "YEAR" }
|
|
537
|
+
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)), "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": "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." })) })
|
|
538
|
+
export type ReportFilterV1 = { readonly "amountShown"?: "EARNED" | "COST" | "PROFIT" | "HIDE_AMOUNT" | "EXPORT", readonly "amounts"?: ReadonlyArray<"EARNED" | "COST" | "PROFIT" | "HIDE_AMOUNT" | "EXPORT">, readonly "approvalState"?: "APPROVED" | "UNAPPROVED" | "ALL", readonly "archived"?: boolean, readonly "attendanceFilter"?: AttendanceFilterV1, readonly "billable"?: boolean, readonly "clients"?: ContainsArchivedFilterV1, readonly "currency"?: ContainsArchivedFilterV1, readonly "customFields"?: ReadonlyArray<CustomFieldFilterV1>, readonly "dateFormat"?: string, readonly "dateRangeEnd": string, readonly "dateRangeStart": string, readonly "dateRangeType"?: "ABSOLUTE" | "TODAY" | "YESTERDAY" | "THIS_WEEK" | "LAST_WEEK" | "PAST_TWO_WEEKS" | "THIS_MONTH" | "LAST_MONTH" | "THIS_YEAR" | "LAST_YEAR", readonly "description"?: string, readonly "detailedFilter"?: DetailedFilterV1, readonly "exportType"?: "JSON" | "JSON_V1" | "PDF" | "CSV" | "XLSX" | "ZIP", readonly "invoicingState"?: "INVOICED" | "UNINVOICED" | "ALL", readonly "projects"?: ContainsArchivedFilterV1, readonly "rounding"?: boolean, readonly "sortOrder"?: "ASCENDING" | "DESCENDING", readonly "summaryFilter"?: SummaryFilterV1, readonly "tags"?: ContainsTagFilterV1, readonly "tasks"?: ContainsTaskFilterV1, readonly "timeFormat"?: string, readonly "timeZone"?: string, readonly "userCustomFields"?: ReadonlyArray<CustomFieldFilterV1>, readonly "userGroups"?: ContainsUsersFilterV1, readonly "userLocale"?: string, readonly "users"?: ContainsUsersFilterV1, readonly "weekStart"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "weeklyFilter"?: WeeklyFilterV1, readonly "withoutDescription"?: boolean, readonly "zoomLevel"?: "WEEK" | "MONTH" | "YEAR" }
|
|
539
|
+
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)), "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": "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." })) })
|
|
540
|
+
export type SummaryReportFilterV1 = { readonly "amountShown"?: "EARNED" | "COST" | "PROFIT" | "HIDE_AMOUNT" | "EXPORT", readonly "amounts"?: ReadonlyArray<"EARNED" | "COST" | "PROFIT" | "HIDE_AMOUNT" | "EXPORT">, readonly "approvalState"?: "APPROVED" | "UNAPPROVED" | "ALL", readonly "archived"?: boolean, readonly "attendanceFilter"?: AttendanceFilterV1, readonly "billable"?: boolean, readonly "clients"?: ContainsArchivedFilterV1, readonly "currency"?: ContainsArchivedFilterV1, readonly "customFields"?: ReadonlyArray<CustomFieldFilterV1>, readonly "dateFormat"?: string, readonly "dateRangeEnd": string, readonly "dateRangeStart": string, readonly "dateRangeType"?: "ABSOLUTE" | "TODAY" | "YESTERDAY" | "THIS_WEEK" | "LAST_WEEK" | "PAST_TWO_WEEKS" | "THIS_MONTH" | "LAST_MONTH" | "THIS_YEAR" | "LAST_YEAR", readonly "description"?: string, readonly "detailedFilter"?: DetailedFilterV1, readonly "exportType"?: "JSON" | "JSON_V1" | "PDF" | "CSV" | "XLSX" | "ZIP", readonly "invoicingState"?: "INVOICED" | "UNINVOICED" | "ALL", readonly "projects"?: ContainsArchivedFilterV1, readonly "rounding"?: boolean, readonly "sortOrder"?: "ASCENDING" | "DESCENDING", readonly "summaryFilter": SummaryFilterV1, readonly "tags"?: ContainsTagFilterV1, readonly "tasks"?: ContainsTaskFilterV1, readonly "timeFormat"?: string, readonly "timeZone"?: string, readonly "userCustomFields"?: ReadonlyArray<CustomFieldFilterV1>, readonly "userGroups"?: ContainsUsersFilterV1, readonly "userLocale"?: string, readonly "users"?: ContainsUsersFilterV1, readonly "weekStart"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "weeklyFilter"?: WeeklyFilterV1, readonly "withoutDescription"?: boolean, readonly "zoomLevel"?: "WEEK" | "MONTH" | "YEAR" }
|
|
541
|
+
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)), "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": "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." })) })
|
|
542
|
+
export type WeeklyReportFilterV1 = { readonly "amountShown"?: "EARNED" | "COST" | "PROFIT" | "HIDE_AMOUNT" | "EXPORT", readonly "amounts"?: ReadonlyArray<"EARNED" | "COST" | "PROFIT" | "HIDE_AMOUNT" | "EXPORT">, readonly "approvalState"?: "APPROVED" | "UNAPPROVED" | "ALL", readonly "archived"?: boolean, readonly "attendanceFilter"?: AttendanceFilterV1, readonly "billable"?: boolean, readonly "clients"?: ContainsArchivedFilterV1, readonly "currency"?: ContainsArchivedFilterV1, readonly "customFields"?: ReadonlyArray<CustomFieldFilterV1>, readonly "dateFormat"?: string, readonly "dateRangeEnd": string, readonly "dateRangeStart": string, readonly "dateRangeType"?: "ABSOLUTE" | "TODAY" | "YESTERDAY" | "THIS_WEEK" | "LAST_WEEK" | "PAST_TWO_WEEKS" | "THIS_MONTH" | "LAST_MONTH" | "THIS_YEAR" | "LAST_YEAR", readonly "description"?: string, readonly "detailedFilter"?: DetailedFilterV1, readonly "exportType"?: "JSON" | "JSON_V1" | "PDF" | "CSV" | "XLSX" | "ZIP", readonly "invoicingState"?: "INVOICED" | "UNINVOICED" | "ALL", readonly "projects"?: ContainsArchivedFilterV1, readonly "rounding"?: boolean, readonly "sortOrder"?: "ASCENDING" | "DESCENDING", readonly "summaryFilter"?: SummaryFilterV1, readonly "tags"?: ContainsTagFilterV1, readonly "tasks"?: ContainsTaskFilterV1, readonly "timeFormat"?: string, readonly "timeZone"?: string, readonly "userCustomFields"?: ReadonlyArray<CustomFieldFilterV1>, readonly "userGroups"?: ContainsUsersFilterV1, readonly "userLocale"?: string, readonly "users"?: ContainsUsersFilterV1, readonly "weekStart"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "weeklyFilter": WeeklyFilterV1, readonly "withoutDescription"?: boolean, readonly "zoomLevel"?: "WEEK" | "MONTH" | "YEAR" }
|
|
543
|
+
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)), "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": "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." })) })
|
|
544
|
+
export type ExpenseDetailedReportDtoV1 = { readonly "expenses"?: ReadonlyArray<ExpenseReportDtoV1>, readonly "totals"?: ExpenseTotalsDtoV1 }
|
|
545
|
+
export const ExpenseDetailedReportDtoV1 = Schema.Struct({ "expenses": Schema.optionalKey(Schema.Array(ExpenseReportDtoV1).annotate({ "description": "Represents list of expenses" })), "totals": Schema.optionalKey(ExpenseTotalsDtoV1) }).annotate({ "description": "report" })
|
|
546
|
+
export type MemberProfileDtoV1 = { readonly "email"?: string, readonly "hasPassword"?: boolean, readonly "hasPendingApprovalRequest"?: boolean, readonly "imageUrl"?: string, readonly "name"?: string, readonly "userCustomFieldValues"?: ReadonlyArray<UserCustomFieldValueFullDtoV1>, readonly "weekStart"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "workCapacity"?: string, readonly "workingDays"?: "MONDAY" | "TUESDAY" | "WEDNESDAY" | "THURSDAY" | "FRIDAY" | "SATURDAY" | "SUNDAY", readonly "workspaceNumber"?: number }
|
|
547
|
+
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())) })
|
|
548
|
+
export type WorkspaceDtoV1 = { readonly "cakeOrganizationId"?: string, readonly "costRate"?: RateDtoV1, readonly "currencies"?: ReadonlyArray<CurrencyWithDefaultInfoDtoV1>, readonly "featureSubscriptionType"?: FeaturePlan, readonly "features"?: Feature, readonly "hourlyRate"?: HourlyRateDtoV1, readonly "id": string, readonly "imageUrl"?: string, readonly "memberships"?: ReadonlyArray<MembershipDtoV1>, readonly "name": string, readonly "subdomain"?: WorkspaceSubdomainDtoV1, readonly "workspaceSettings"?: WorkspaceSettingsDtoV1 }
|
|
549
|
+
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) })
|
|
550
|
+
export type TimeOffRequestsWithCountV1Dto = { readonly "count"?: number, readonly "requests"?: ReadonlyArray<TimeOffRequestFullV1Dto> }
|
|
551
|
+
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)) })
|
|
552
|
+
export type ExpensesAndTotalsDtoV1 = { readonly "dailyTotals"?: ReadonlyArray<ExpenseDailyTotalsDtoV1>, readonly "expenses"?: ExpensesWithCountDtoV1, readonly "weeklyTotals"?: ReadonlyArray<ExpenseWeeklyTotalsDtoV1> }
|
|
553
|
+
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." })) })
|
|
554
|
+
export type SharedReportRequestV1 = { readonly "filter"?: ReportFilterV1, readonly "fixedDate"?: boolean, readonly "isPublic"?: boolean, readonly "name"?: string, readonly "type"?: "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", readonly "visibleToUserGroups"?: ReadonlyArray<string>, readonly "visibleToUsers"?: ReadonlyArray<string> }
|
|
555
|
+
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())) })
|
|
556
|
+
// recursive definitions
|
|
557
|
+
export type GroupOneDto = { readonly "amount"?: number, readonly "children"?: ReadonlyArray<GroupOneDto>, readonly "clientName"?: string, readonly "days"?: ReadonlyArray<DailyTotalDto>, readonly "duration"?: number, readonly "id"?: string, readonly "name"?: string, readonly "nameLowerCase"?: string }
|
|
558
|
+
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((): Schema.Codec<GroupOneDto> => 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" })
|
|
559
|
+
// schemas
|
|
560
|
+
export type UploadImageRequestFormData = { readonly "file": string }
|
|
561
|
+
export const UploadImageRequestFormData = Schema.Struct({ "file": Schema.String.annotate({ "description": "Image to be uploaded", "format": "binary" }) })
|
|
562
|
+
export type UploadImage200 = UploadFileResponseV1
|
|
563
|
+
export const UploadImage200 = UploadFileResponseV1
|
|
564
|
+
export type GetLoggedUserParams = { readonly "include-memberships"?: boolean }
|
|
565
|
+
export const GetLoggedUserParams = Schema.Struct({ "include-memberships": Schema.optionalKey(Schema.Boolean.annotate({ "description": "If set to true, memberships will be included." })) })
|
|
566
|
+
export type GetLoggedUser200 = UserDtoV1
|
|
567
|
+
export const GetLoggedUser200 = UserDtoV1
|
|
568
|
+
export type GetWorkspacesOfUserParams = { readonly "roles"?: "WORKSPACE_ADMIN" | "OWNER" | "TEAM_MANAGER" | "PROJECT_MANAGER" }
|
|
569
|
+
export const GetWorkspacesOfUserParams = Schema.Struct({ "roles": Schema.optionalKey(Schema.Literals(["WORKSPACE_ADMIN", "OWNER", "TEAM_MANAGER", "PROJECT_MANAGER"])) })
|
|
570
|
+
export type GetWorkspacesOfUser200 = ReadonlyArray<WorkspaceDtoV1>
|
|
571
|
+
export const GetWorkspacesOfUser200 = Schema.Array(WorkspaceDtoV1)
|
|
572
|
+
export type CreateWorkspaceRequestJson = CreateWorkspaceRequestV1
|
|
573
|
+
export const CreateWorkspaceRequestJson = CreateWorkspaceRequestV1
|
|
574
|
+
export type CreateWorkspace201 = WorkspaceDtoV1
|
|
575
|
+
export const CreateWorkspace201 = WorkspaceDtoV1
|
|
576
|
+
export type GetWorkspaceOfUser200 = WorkspaceDtoV1
|
|
577
|
+
export const GetWorkspaceOfUser200 = WorkspaceDtoV1
|
|
578
|
+
export type GetAddonWebhooks200 = WebhooksDtoV1
|
|
579
|
+
export const GetAddonWebhooks200 = WebhooksDtoV1
|
|
580
|
+
export type GetApprovalRequestsParams = { readonly "status"?: "PENDING" | "APPROVED" | "WITHDRAWN_APPROVAL", readonly "sort-column"?: "ID" | "USER_ID" | "START" | "UPDATED_AT", readonly "sort-order"?: "ASCENDING" | "DESCENDING", readonly "page"?: number, readonly "page-size"?: number }
|
|
581
|
+
export const GetApprovalRequestsParams = Schema.Struct({ "status": Schema.optionalKey(Schema.Literals(["PENDING", "APPROVED", "WITHDRAWN_APPROVAL"])), "sort-column": Schema.optionalKey(Schema.Literals(["ID", "USER_ID", "START", "UPDATED_AT"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt())), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1))) })
|
|
582
|
+
export type GetApprovalRequests200 = ReadonlyArray<ApprovalDetailsDtoV1>
|
|
583
|
+
export const GetApprovalRequests200 = Schema.Array(ApprovalDetailsDtoV1)
|
|
584
|
+
export type CreateApprrovalRequestRequestJson = CreateApprovalRequest
|
|
585
|
+
export const CreateApprrovalRequestRequestJson = CreateApprovalRequest
|
|
586
|
+
export type CreateApprrovalRequest201 = ApprovalRequestDtoV1
|
|
587
|
+
export const CreateApprrovalRequest201 = ApprovalRequestDtoV1
|
|
588
|
+
export type ResubmitApprovalRequestRequestJson = CreateApprovalRequest
|
|
589
|
+
export const ResubmitApprovalRequestRequestJson = CreateApprovalRequest
|
|
590
|
+
export type CreateApprovalForOtherRequestJson = CreateApprovalRequest
|
|
591
|
+
export const CreateApprovalForOtherRequestJson = CreateApprovalRequest
|
|
592
|
+
export type CreateApprovalForOther201 = ApprovalRequestDtoV1
|
|
593
|
+
export const CreateApprovalForOther201 = ApprovalRequestDtoV1
|
|
594
|
+
export type ResubmitApprovalRequestForOtherRequestJson = CreateApprovalRequest
|
|
595
|
+
export const ResubmitApprovalRequestForOtherRequestJson = CreateApprovalRequest
|
|
596
|
+
export type UpdateApprovalStatusRequestJson = UpdateApprovalRequest
|
|
597
|
+
export const UpdateApprovalStatusRequestJson = UpdateApprovalRequest
|
|
598
|
+
export type UpdateApprovalStatus200 = ApprovalRequestDtoV1
|
|
599
|
+
export const UpdateApprovalStatus200 = ApprovalRequestDtoV1
|
|
600
|
+
export type GetClientsParams = { readonly "name"?: string, readonly "sort-column"?: string, readonly "sort-order"?: string, readonly "page"?: number, readonly "page-size"?: number, readonly "archived"?: string }
|
|
601
|
+
export const GetClientsParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "Filters client results that matches with the string provided in their client name." })), "sort-column": Schema.optionalKey(Schema.String.annotate({ "description": "Column name that will be used as criteria for sorting results." })), "sort-order": Schema.optionalKey(Schema.String), "page": Schema.optionalKey(Schema.Number.annotate({ "description": "Page number.", "format": "int32" }).check(Schema.isInt())), "page-size": Schema.optionalKey(Schema.Number.annotate({ "description": "Page size.", "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1))), "archived": Schema.optionalKey(Schema.String) })
|
|
602
|
+
export type GetClients200 = ReadonlyArray<ClientWithCurrencyDtoV1>
|
|
603
|
+
export const GetClients200 = Schema.Array(ClientWithCurrencyDtoV1)
|
|
604
|
+
export type CreateClientRequestJson = CreateClientRequestV1
|
|
605
|
+
export const CreateClientRequestJson = CreateClientRequestV1
|
|
606
|
+
export type CreateClient201 = ClientWithCurrencyDtoV1
|
|
607
|
+
export const CreateClient201 = ClientWithCurrencyDtoV1
|
|
608
|
+
export type GetClient200 = ClientWithCurrencyDtoV1
|
|
609
|
+
export const GetClient200 = ClientWithCurrencyDtoV1
|
|
610
|
+
export type UpdateClientParams = { readonly "archive-projects"?: boolean, readonly "mark-tasks-as-done"?: boolean }
|
|
611
|
+
export const UpdateClientParams = Schema.Struct({ "archive-projects": Schema.optionalKey(Schema.Boolean), "mark-tasks-as-done": Schema.optionalKey(Schema.Boolean) })
|
|
612
|
+
export type UpdateClientRequestJson = UpdateClientRequestV1
|
|
613
|
+
export const UpdateClientRequestJson = UpdateClientRequestV1
|
|
614
|
+
export type UpdateClient200 = ClientDtoV1
|
|
615
|
+
export const UpdateClient200 = ClientDtoV1
|
|
616
|
+
export type DeleteClient200 = ClientDtoV1
|
|
617
|
+
export const DeleteClient200 = ClientDtoV1
|
|
618
|
+
export type SetWorkspaceCostRateRequestJson = CostRateRequestV1
|
|
619
|
+
export const SetWorkspaceCostRateRequestJson = CostRateRequestV1
|
|
620
|
+
export type SetWorkspaceCostRate200 = WorkspaceDtoV1
|
|
621
|
+
export const SetWorkspaceCostRate200 = WorkspaceDtoV1
|
|
622
|
+
export type OfWorkspaceParams = { readonly "name"?: string, readonly "status"?: "INACTIVE" | "VISIBLE" | "INVISIBLE", readonly "entity-type"?: string }
|
|
623
|
+
export const OfWorkspaceParams = Schema.Struct({ "name": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of custom fields that contain the provided string in their name." })), "status": Schema.optionalKey(Schema.Literals(["INACTIVE", "VISIBLE", "INVISIBLE"])), "entity-type": Schema.optionalKey(Schema.String) })
|
|
624
|
+
export type OfWorkspace200 = ReadonlyArray<CustomFieldDtoV1>
|
|
625
|
+
export const OfWorkspace200 = Schema.Array(CustomFieldDtoV1)
|
|
626
|
+
export type CreateRequestJson = CustomFieldRequestV1
|
|
627
|
+
export const CreateRequestJson = CustomFieldRequestV1
|
|
628
|
+
export type EditCustomFieldRequestJson = UpdateCustomFieldRequestV1
|
|
629
|
+
export const EditCustomFieldRequestJson = UpdateCustomFieldRequestV1
|
|
630
|
+
export type EditCustomField200 = CustomFieldDtoV1
|
|
631
|
+
export const EditCustomField200 = CustomFieldDtoV1
|
|
632
|
+
export type GetCreatedEntityInfoParams = { readonly "type": ReadonlyArray<string>, readonly "start"?: string, readonly "end"?: string, readonly "page"?: string, readonly "limit"?: string }
|
|
633
|
+
export const GetCreatedEntityInfoParams = 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) })
|
|
634
|
+
export type GetCreatedEntityInfo200 = string
|
|
635
|
+
export const GetCreatedEntityInfo200 = Schema.String
|
|
636
|
+
export type GetDeletedEntityInfoParams = { readonly "type": ReadonlyArray<string>, readonly "start"?: string, readonly "end"?: string, readonly "page"?: string, readonly "limit"?: string }
|
|
637
|
+
export const GetDeletedEntityInfoParams = 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) })
|
|
638
|
+
export type GetDeletedEntityInfo200 = PageableCollectionLogBinDocumentDto
|
|
639
|
+
export const GetDeletedEntityInfo200 = PageableCollectionLogBinDocumentDto
|
|
640
|
+
export type GetUpdatedEntityInfoParams = { readonly "type": ReadonlyArray<string>, readonly "start"?: string, readonly "end"?: string, readonly "page"?: string, readonly "limit"?: string }
|
|
641
|
+
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) })
|
|
642
|
+
export type GetUpdatedEntityInfo200 = string
|
|
643
|
+
export const GetUpdatedEntityInfo200 = Schema.String
|
|
644
|
+
export type GetExpensesParams = { readonly "page"?: number, readonly "page-size"?: number, readonly "user-id"?: string }
|
|
645
|
+
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) })
|
|
646
|
+
export type GetExpenses200 = ExpensesAndTotalsDtoV1
|
|
647
|
+
export const GetExpenses200 = ExpensesAndTotalsDtoV1
|
|
648
|
+
export type CreateExpenseRequestFormData = CreateExpenseV1Request
|
|
649
|
+
export const CreateExpenseRequestFormData = CreateExpenseV1Request
|
|
650
|
+
export type CreateExpense201 = ExpenseDtoV1
|
|
651
|
+
export const CreateExpense201 = ExpenseDtoV1
|
|
652
|
+
export type GetCategoriesParams = { readonly "sort-column"?: "NAME", readonly "sort-order"?: "ASCENDING" | "DESCENDING", readonly "page"?: number, readonly "page-size"?: number, readonly "archived"?: boolean, readonly "name"?: string }
|
|
653
|
+
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." })) })
|
|
654
|
+
export type GetCategories200 = ExpenseCategoriesWithCountDtoV1
|
|
655
|
+
export const GetCategories200 = ExpenseCategoriesWithCountDtoV1
|
|
656
|
+
export type CreateExpenseCategoryRequestJson = ExpenseCategoryV1Request
|
|
657
|
+
export const CreateExpenseCategoryRequestJson = ExpenseCategoryV1Request
|
|
658
|
+
export type CreateExpenseCategory201 = ExpenseCategoryDtoV1
|
|
659
|
+
export const CreateExpenseCategory201 = ExpenseCategoryDtoV1
|
|
660
|
+
export type UpdateCategoryRequestJson = ExpenseCategoryV1Request
|
|
661
|
+
export const UpdateCategoryRequestJson = ExpenseCategoryV1Request
|
|
662
|
+
export type UpdateCategory200 = ExpenseCategoryDtoV1
|
|
663
|
+
export const UpdateCategory200 = ExpenseCategoryDtoV1
|
|
664
|
+
export type UpdateExpenseCategoryStatusRequestJson = ExpenseCategoryArchiveV1Request
|
|
665
|
+
export const UpdateExpenseCategoryStatusRequestJson = ExpenseCategoryArchiveV1Request
|
|
666
|
+
export type UpdateExpenseCategoryStatus200 = ExpenseCategoryDtoV1
|
|
667
|
+
export const UpdateExpenseCategoryStatus200 = ExpenseCategoryDtoV1
|
|
668
|
+
export type GetExpense200 = ExpenseDtoV1
|
|
669
|
+
export const GetExpense200 = ExpenseDtoV1
|
|
670
|
+
export type UpdateExpenseRequestFormData = UpdateExpenseV1Request
|
|
671
|
+
export const UpdateExpenseRequestFormData = UpdateExpenseV1Request
|
|
672
|
+
export type UpdateExpense200 = ExpenseDtoV1
|
|
673
|
+
export const UpdateExpense200 = ExpenseDtoV1
|
|
674
|
+
export type GetHolidaysParams = { readonly "assigned-to"?: string }
|
|
675
|
+
export const GetHolidaysParams = Schema.Struct({ "assigned-to": Schema.optionalKey(Schema.String.annotate({ "description": "If provided, you'll get a filtered list of holidays assigned to user." })) })
|
|
676
|
+
export type GetHolidays200 = ReadonlyArray<HolidayDtoV1>
|
|
677
|
+
export const GetHolidays200 = Schema.Array(HolidayDtoV1)
|
|
678
|
+
export type CreateHolidayRequestJson = CreateHolidayRequestV1
|
|
679
|
+
export const CreateHolidayRequestJson = CreateHolidayRequestV1
|
|
680
|
+
export type CreateHoliday200 = HolidayDtoV1
|
|
681
|
+
export const CreateHoliday200 = HolidayDtoV1
|
|
682
|
+
export type GetHolidaysInPeriodParams = { readonly "assigned-to": string, readonly "start": string, readonly "end": string }
|
|
683
|
+
export const GetHolidaysInPeriodParams = Schema.Struct({ "assigned-to": Schema.String.annotate({ "description": "Filter list of holidays assigned to user." }), "start": Schema.String.annotate({ "description": "Filter list of holidays starting from start date. Expected date format yyyy-MM-ddThh:mm:ssZ" }), "end": Schema.String.annotate({ "description": "Filter list of holidays ending by end date. Expected date format yyyy-MM-ddThh:mm:ssZ" }) })
|
|
684
|
+
export type GetHolidaysInPeriod200 = ReadonlyArray<HolidayDtoV1>
|
|
685
|
+
export const GetHolidaysInPeriod200 = Schema.Array(HolidayDtoV1)
|
|
686
|
+
export type UpdateHolidayRequestJson = UpdateHolidayRequestV1
|
|
687
|
+
export const UpdateHolidayRequestJson = UpdateHolidayRequestV1
|
|
688
|
+
export type UpdateHoliday200 = HolidayDtoV1
|
|
689
|
+
export const UpdateHoliday200 = HolidayDtoV1
|
|
690
|
+
export type DeleteHoliday200 = HolidayDto
|
|
691
|
+
export const DeleteHoliday200 = HolidayDto
|
|
692
|
+
export type SetWorkspaceHourlyRateRequestJson = RateWithCurrencyRequestV1
|
|
693
|
+
export const SetWorkspaceHourlyRateRequestJson = RateWithCurrencyRequestV1
|
|
694
|
+
export type SetWorkspaceHourlyRate200 = WorkspaceDtoV1
|
|
695
|
+
export const SetWorkspaceHourlyRate200 = WorkspaceDtoV1
|
|
696
|
+
export type GetInvoicesParams = { readonly "page"?: number, readonly "page-size"?: number, readonly "statuses"?: "UNSENT" | "SENT" | "PAID" | "PARTIALLY_PAID" | "VOID" | "OVERDUE", readonly "sort-column"?: "ID" | "CLIENT" | "DUE_ON" | "ISSUE_DATE" | "AMOUNT" | "BALANCE", readonly "sort-order"?: "ASCENDING" | "DESCENDING" }
|
|
697
|
+
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"])) })
|
|
698
|
+
export type GetInvoices200 = InvoicesListDtoV1
|
|
699
|
+
export const GetInvoices200 = InvoicesListDtoV1
|
|
700
|
+
export type CreateInvoiceRequestJson = CreateInvoiceRequest
|
|
701
|
+
export const CreateInvoiceRequestJson = CreateInvoiceRequest
|
|
702
|
+
export type CreateInvoice201 = CreateInvoiceDtoV1
|
|
703
|
+
export const CreateInvoice201 = CreateInvoiceDtoV1
|
|
704
|
+
export type GetInvoicesInfoRequestJson = InvoiceFilterRequestV1
|
|
705
|
+
export const GetInvoicesInfoRequestJson = InvoiceFilterRequestV1
|
|
706
|
+
export type GetInvoicesInfo200 = InvoiceInfoResponseDtoV1
|
|
707
|
+
export const GetInvoicesInfo200 = InvoiceInfoResponseDtoV1
|
|
708
|
+
export type GetInvoiceSettings200 = InvoiceSettingsDtoV1
|
|
709
|
+
export const GetInvoiceSettings200 = InvoiceSettingsDtoV1
|
|
710
|
+
export type UpdateInvoiceSettingsRequestJson = UpdateInvoiceSettingsRequestV1
|
|
711
|
+
export const UpdateInvoiceSettingsRequestJson = UpdateInvoiceSettingsRequestV1
|
|
712
|
+
export type GetInvoice200 = InvoiceOverviewDtoV1
|
|
713
|
+
export const GetInvoice200 = InvoiceOverviewDtoV1
|
|
714
|
+
export type UpdateInvoiceRequestJson = UpdateInvoiceRequestV1
|
|
715
|
+
export const UpdateInvoiceRequestJson = UpdateInvoiceRequestV1
|
|
716
|
+
export type UpdateInvoice200 = InvoiceOverviewDtoV1
|
|
717
|
+
export const UpdateInvoice200 = InvoiceOverviewDtoV1
|
|
718
|
+
export type DuplicateInvoice201 = InvoiceOverviewDtoV1
|
|
719
|
+
export const DuplicateInvoice201 = InvoiceOverviewDtoV1
|
|
720
|
+
export type ExportInvoiceParams = { readonly "userLocale": string }
|
|
721
|
+
export const ExportInvoiceParams = Schema.Struct({ "userLocale": Schema.String.annotate({ "description": "Represents a locale." }) })
|
|
722
|
+
export type AddInvoiceItemRequestJson = CreateInvoiceItemRequestV1
|
|
723
|
+
export const AddInvoiceItemRequestJson = CreateInvoiceItemRequestV1
|
|
724
|
+
export type AddInvoiceItem200 = InvoiceOverviewDtoV1
|
|
725
|
+
export const AddInvoiceItem200 = InvoiceOverviewDtoV1
|
|
726
|
+
export type ImportTimeEntriesAndExpensesRequestJson = ImportTimeEntriesAndExpensesRequestV1
|
|
727
|
+
export const ImportTimeEntriesAndExpensesRequestJson = ImportTimeEntriesAndExpensesRequestV1
|
|
728
|
+
export type ImportTimeEntriesAndExpenses200 = InvoiceOverviewDtoV1
|
|
729
|
+
export const ImportTimeEntriesAndExpenses200 = InvoiceOverviewDtoV1
|
|
730
|
+
export type RemoveInvoiceItem200 = InvoiceOverviewDtoV1
|
|
731
|
+
export const RemoveInvoiceItem200 = InvoiceOverviewDtoV1
|
|
732
|
+
export type GetPaymentsForInvoiceParams = { readonly "page"?: number, readonly "page-size"?: number }
|
|
733
|
+
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))) })
|
|
734
|
+
export type GetPaymentsForInvoice200 = ReadonlyArray<InvoicePaymentDtoV1>
|
|
735
|
+
export const GetPaymentsForInvoice200 = Schema.Array(InvoicePaymentDtoV1)
|
|
736
|
+
export type CreateInvoicePaymentRequestJson = CreateInvoicePaymentRequest
|
|
737
|
+
export const CreateInvoicePaymentRequestJson = CreateInvoicePaymentRequest
|
|
738
|
+
export type CreateInvoicePayment201 = InvoiceOverviewDtoV1
|
|
739
|
+
export const CreateInvoicePayment201 = InvoiceOverviewDtoV1
|
|
740
|
+
export type DeletePaymentById200 = InvoiceOverviewDtoV1
|
|
741
|
+
export const DeletePaymentById200 = InvoiceOverviewDtoV1
|
|
742
|
+
export type ChangeInvoiceStatusRequestJson = ChangeInvoiceStatusRequestV1
|
|
743
|
+
export const ChangeInvoiceStatusRequestJson = ChangeInvoiceStatusRequestV1
|
|
744
|
+
export type AddLimitedUsersRequestJson = AddLimitedUsersRequest
|
|
745
|
+
export const AddLimitedUsersRequestJson = AddLimitedUsersRequest
|
|
746
|
+
export type GetMemberProfile200 = MemberProfileDtoV1
|
|
747
|
+
export const GetMemberProfile200 = MemberProfileDtoV1
|
|
748
|
+
export type UpdateMemberProfileWithAdditionalDataRequestJson = MemberProfileFullRequestV1
|
|
749
|
+
export const UpdateMemberProfileWithAdditionalDataRequestJson = MemberProfileFullRequestV1
|
|
750
|
+
export type UpdateMemberProfileWithAdditionalData200 = MemberProfileDtoV1
|
|
751
|
+
export const UpdateMemberProfileWithAdditionalData200 = MemberProfileDtoV1
|
|
752
|
+
export type GetProjectsParams = { readonly "name"?: string, readonly "strict-name-search"?: boolean, readonly "archived"?: boolean, readonly "billable"?: boolean, readonly "clients"?: ReadonlyArray<string>, readonly "contains-client"?: boolean, readonly "client-status"?: "ACTIVE" | "ARCHIVED" | "ALL", readonly "users"?: ReadonlyArray<string>, readonly "contains-user"?: boolean, readonly "user-status"?: "PENDING" | "ACTIVE" | "DECLINED" | "INACTIVE" | "ALL", readonly "is-template"?: boolean, readonly "sort-column"?: "ID" | "NAME" | "CLIENT_NAME" | "DURATION" | "BUDGET" | "PROGRESS", readonly "sort-order"?: "ASCENDING" | "DESCENDING", readonly "hydrated"?: boolean, readonly "page"?: number, readonly "page-size"?: number, readonly "access"?: "PUBLIC" | "PRIVATE", readonly "expense-limit"?: number, readonly "expense-date"?: string, readonly "userGroups"?: ReadonlyArray<string>, readonly "contains-group"?: boolean }
|
|
753
|
+
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." })) })
|
|
754
|
+
export type GetProjects200 = ReadonlyArray<ProjectDtoV1>
|
|
755
|
+
export const GetProjects200 = Schema.Array(ProjectDtoV1)
|
|
756
|
+
export type CreateNewProjectRequestJson = ProjectRequest
|
|
757
|
+
export const CreateNewProjectRequestJson = ProjectRequest
|
|
758
|
+
export type CreateNewProject201 = ProjectDtoImplV1
|
|
759
|
+
export const CreateNewProject201 = ProjectDtoImplV1
|
|
760
|
+
export type CreateProjectFromTemplateRequestJson = CreateProjectFromTemplateV1
|
|
761
|
+
export const CreateProjectFromTemplateRequestJson = CreateProjectFromTemplateV1
|
|
762
|
+
export type CreateProjectFromTemplate200 = ProjectDtoImplV1
|
|
763
|
+
export const CreateProjectFromTemplate200 = ProjectDtoImplV1
|
|
764
|
+
export type GetProjectParams = { readonly "hydrated"?: boolean, readonly "custom-field-entity-type"?: string, readonly "expense-limit"?: number, readonly "expense-date"?: string }
|
|
765
|
+
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." })) })
|
|
766
|
+
export type GetProject200 = ProjectDtoV1
|
|
767
|
+
export const GetProject200 = ProjectDtoV1
|
|
768
|
+
export type UpdateProjectRequestJson = UpdateProjectRequest
|
|
769
|
+
export const UpdateProjectRequestJson = UpdateProjectRequest
|
|
770
|
+
export type UpdateProject200 = ProjectDtoImplV1
|
|
771
|
+
export const UpdateProject200 = ProjectDtoImplV1
|
|
772
|
+
export type DeleteProject200 = ProjectDtoImplV1
|
|
773
|
+
export const DeleteProject200 = ProjectDtoImplV1
|
|
774
|
+
export type GetCustomFieldsOfProjectParams = { readonly "status"?: "INACTIVE" | "VISIBLE" | "INVISIBLE", readonly "entity-type"?: string }
|
|
775
|
+
export const GetCustomFieldsOfProjectParams = Schema.Struct({ "status": Schema.optionalKey(Schema.Literals(["INACTIVE", "VISIBLE", "INVISIBLE"])), "entity-type": Schema.optionalKey(Schema.String) })
|
|
776
|
+
export type GetCustomFieldsOfProject200 = ReadonlyArray<CustomFieldDtoV1>
|
|
777
|
+
export const GetCustomFieldsOfProject200 = Schema.Array(CustomFieldDtoV1)
|
|
778
|
+
export type RemoveDefaultValueOfProject200 = CustomFieldDtoV1
|
|
779
|
+
export const RemoveDefaultValueOfProject200 = CustomFieldDtoV1
|
|
780
|
+
export type EditProjectCustomFieldDefaultValueRequestJson = CustomFieldProjectDefaultValuesRequest
|
|
781
|
+
export const EditProjectCustomFieldDefaultValueRequestJson = CustomFieldProjectDefaultValuesRequest
|
|
782
|
+
export type EditProjectCustomFieldDefaultValue200 = CustomFieldDtoV1
|
|
783
|
+
export const EditProjectCustomFieldDefaultValue200 = CustomFieldDtoV1
|
|
784
|
+
export type UpdateEstimateRequestJson = ProjectEstimateRequest
|
|
785
|
+
export const UpdateEstimateRequestJson = ProjectEstimateRequest
|
|
786
|
+
export type UpdateEstimate200 = ProjectDtoImplV1
|
|
787
|
+
export const UpdateEstimate200 = ProjectDtoImplV1
|
|
788
|
+
export type AddUsersToProjectRequestJson = AddUsersToProjectRequestV1
|
|
789
|
+
export const AddUsersToProjectRequestJson = AddUsersToProjectRequestV1
|
|
790
|
+
export type UpdateMembershipsRequestJson = UpdateProjectMembershipsRequest
|
|
791
|
+
export const UpdateMembershipsRequestJson = UpdateProjectMembershipsRequest
|
|
792
|
+
export type UpdateMemberships200 = ProjectDtoImplV1
|
|
793
|
+
export const UpdateMemberships200 = ProjectDtoImplV1
|
|
794
|
+
export type GetTasksParams = { readonly "name"?: string, readonly "strict-name-search"?: boolean, readonly "is-active"?: boolean, readonly "page"?: number, readonly "page-size"?: number, readonly "sort-column"?: "ID" | "NAME", readonly "sort-order"?: "ASCENDING" | "DESCENDING" }
|
|
795
|
+
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"])) })
|
|
796
|
+
export type GetTasks200 = ReadonlyArray<TaskDtoV1>
|
|
797
|
+
export const GetTasks200 = Schema.Array(TaskDtoV1)
|
|
798
|
+
export type CreateTaskParams = { readonly "contains-assignee"?: boolean }
|
|
799
|
+
export const CreateTaskParams = Schema.Struct({ "contains-assignee": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether task will have assignee or none." })) })
|
|
800
|
+
export type CreateTaskRequestJson = TaskRequestV1
|
|
801
|
+
export const CreateTaskRequestJson = TaskRequestV1
|
|
802
|
+
export type CreateTask201 = TaskDtoV1
|
|
803
|
+
export const CreateTask201 = TaskDtoV1
|
|
804
|
+
export type SetTaskCostRateRequestJson = CostRateRequestV1
|
|
805
|
+
export const SetTaskCostRateRequestJson = CostRateRequestV1
|
|
806
|
+
export type SetTaskCostRate200 = TaskDtoV1
|
|
807
|
+
export const SetTaskCostRate200 = TaskDtoV1
|
|
808
|
+
export type SetTaskHourlyRateRequestJson = HourlyRateRequestV1
|
|
809
|
+
export const SetTaskHourlyRateRequestJson = HourlyRateRequestV1
|
|
810
|
+
export type SetTaskHourlyRate200 = TaskDtoV1
|
|
811
|
+
export const SetTaskHourlyRate200 = TaskDtoV1
|
|
812
|
+
export type GetTask200 = TaskDtoV1
|
|
813
|
+
export const GetTask200 = TaskDtoV1
|
|
814
|
+
export type UpdateTaskParams = { readonly "contains-assignee"?: boolean, readonly "membership-status"?: "PENDING" | "ACTIVE" | "DECLINED" | "INACTIVE" | "ALL" }
|
|
815
|
+
export const UpdateTaskParams = Schema.Struct({ "contains-assignee": Schema.optionalKey(Schema.Boolean.annotate({ "description": "Flag to set whether task will have assignee or none." })), "membership-status": Schema.optionalKey(Schema.Literals(["PENDING", "ACTIVE", "DECLINED", "INACTIVE", "ALL"])) })
|
|
816
|
+
export type UpdateTaskRequestJson = UpdateTaskRequest
|
|
817
|
+
export const UpdateTaskRequestJson = UpdateTaskRequest
|
|
818
|
+
export type UpdateTask200 = TaskDtoV1
|
|
819
|
+
export const UpdateTask200 = TaskDtoV1
|
|
820
|
+
export type DeleteTask200 = TaskDtoV1
|
|
821
|
+
export const DeleteTask200 = TaskDtoV1
|
|
822
|
+
export type UpdateIsProjectTemplateRequestJson = PatchProjectTemplateRequest
|
|
823
|
+
export const UpdateIsProjectTemplateRequestJson = PatchProjectTemplateRequest
|
|
824
|
+
export type UpdateIsProjectTemplate200 = ProjectDtoImplV1
|
|
825
|
+
export const UpdateIsProjectTemplate200 = ProjectDtoImplV1
|
|
826
|
+
export type AddUsersCostRateRequestJson = CostRateRequestV1
|
|
827
|
+
export const AddUsersCostRateRequestJson = CostRateRequestV1
|
|
828
|
+
export type AddUsersCostRate200 = ProjectDtoImplV1
|
|
829
|
+
export const AddUsersCostRate200 = ProjectDtoImplV1
|
|
830
|
+
export type AddUsersHourlyRateRequestJson = CostRateRequestV1
|
|
831
|
+
export const AddUsersHourlyRateRequestJson = CostRateRequestV1
|
|
832
|
+
export type AddUsersHourlyRate200 = ProjectDtoImplV1
|
|
833
|
+
export const AddUsersHourlyRate200 = ProjectDtoImplV1
|
|
834
|
+
export type GetAllAssignmentsParams = { readonly "name"?: string, readonly "start": string, readonly "end": string, readonly "sort-column"?: "PROJECT" | "USER" | "ID", readonly "sort-order"?: "ASCENDING" | "DESCENDING", readonly "page"?: number, readonly "page-size"?: number }
|
|
835
|
+
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))) })
|
|
836
|
+
export type GetAllAssignments200 = ReadonlyArray<AssignmentHydratedDtoV1>
|
|
837
|
+
export const GetAllAssignments200 = Schema.Array(AssignmentHydratedDtoV1)
|
|
838
|
+
export type GetProjectTotalsParams = { readonly "search"?: string, readonly "start": string, readonly "end": string, readonly "page"?: number, readonly "page-size"?: number }
|
|
839
|
+
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))) })
|
|
840
|
+
export type GetProjectTotals200 = ReadonlyArray<SchedulingProjectsTotalsDtoV1>
|
|
841
|
+
export const GetProjectTotals200 = Schema.Array(SchedulingProjectsTotalsDtoV1)
|
|
842
|
+
export type GetFilteredProjectTotalsRequestJson = ProjectTotalsRequestV1
|
|
843
|
+
export const GetFilteredProjectTotalsRequestJson = ProjectTotalsRequestV1
|
|
844
|
+
export type GetFilteredProjectTotals200 = ReadonlyArray<SchedulingProjectsTotalsDtoV1>
|
|
845
|
+
export const GetFilteredProjectTotals200 = Schema.Array(SchedulingProjectsTotalsDtoV1)
|
|
846
|
+
export type GetProjectTotalsForSingleProjectParams = { readonly "start": string, readonly "end": string }
|
|
847
|
+
export const GetProjectTotalsForSingleProjectParams = Schema.Struct({ "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." }) })
|
|
848
|
+
export type GetProjectTotalsForSingleProject200 = SchedulingProjectsTotalsDtoV1
|
|
849
|
+
export const GetProjectTotalsForSingleProject200 = SchedulingProjectsTotalsDtoV1
|
|
850
|
+
export type PublishAssignmentsRequestJson = PublishAssignmentsRequestV1
|
|
851
|
+
export const PublishAssignmentsRequestJson = PublishAssignmentsRequestV1
|
|
852
|
+
export type CreateRecurringRequestJson = AssignmentCreateRequestV1
|
|
853
|
+
export const CreateRecurringRequestJson = AssignmentCreateRequestV1
|
|
854
|
+
export type CreateRecurring201 = ReadonlyArray<AssignmentDtoV1>
|
|
855
|
+
export const CreateRecurring201 = Schema.Array(AssignmentDtoV1)
|
|
856
|
+
export type DeleteRRecurringAssignmentParams = { readonly "seriesUpdateOption"?: "THIS_ONE" | "THIS_AND_FOLLOWING" | "ALL" }
|
|
857
|
+
export const DeleteRRecurringAssignmentParams = Schema.Struct({ "seriesUpdateOption": Schema.optionalKey(Schema.Literals(["THIS_ONE", "THIS_AND_FOLLOWING", "ALL"])) })
|
|
858
|
+
export type DeleteRRecurringAssignment200 = ReadonlyArray<AssignmentDtoV1>
|
|
859
|
+
export const DeleteRRecurringAssignment200 = Schema.Array(AssignmentDtoV1)
|
|
860
|
+
export type EditRecurringRequestJson = AssignmentUpdateRequestV1
|
|
861
|
+
export const EditRecurringRequestJson = AssignmentUpdateRequestV1
|
|
862
|
+
export type EditRecurring200 = ReadonlyArray<AssignmentDtoV1>
|
|
863
|
+
export const EditRecurring200 = Schema.Array(AssignmentDtoV1)
|
|
864
|
+
export type EditRecurringPeriodRequestJson = RecurringAssignmentRequestV1
|
|
865
|
+
export const EditRecurringPeriodRequestJson = RecurringAssignmentRequestV1
|
|
866
|
+
export type EditRecurringPeriod200 = ReadonlyArray<AssignmentDtoV1>
|
|
867
|
+
export const EditRecurringPeriod200 = Schema.Array(AssignmentDtoV1)
|
|
868
|
+
export type GetUserTotalsRequestJson = GetUserTotalsRequestV1
|
|
869
|
+
export const GetUserTotalsRequestJson = GetUserTotalsRequestV1
|
|
870
|
+
export type GetUserTotals200 = ReadonlyArray<SchedulingUsersTotalsDtoV1>
|
|
871
|
+
export const GetUserTotals200 = Schema.Array(SchedulingUsersTotalsDtoV1)
|
|
872
|
+
export type GetUserTotalsForSingleUserParams = { readonly "page"?: number, readonly "page-size"?: number, readonly "start": string, readonly "end": string }
|
|
873
|
+
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." }) })
|
|
874
|
+
export type GetUserTotalsForSingleUser200 = SchedulingUsersTotalsDtoV1
|
|
875
|
+
export const GetUserTotalsForSingleUser200 = SchedulingUsersTotalsDtoV1
|
|
876
|
+
export type CopyAssignmentRequestJson = CopyAssignmentRequestV1
|
|
877
|
+
export const CopyAssignmentRequestJson = CopyAssignmentRequestV1
|
|
878
|
+
export type CopyAssignment200 = ReadonlyArray<AssignmentDtoV1>
|
|
879
|
+
export const CopyAssignment200 = Schema.Array(AssignmentDtoV1)
|
|
880
|
+
export type GetTagsParams = { readonly "name"?: string, readonly "strict-name-search"?: boolean, readonly "excluded-ids"?: string, readonly "sort-column"?: "ID" | "NAME", readonly "sort-order"?: "ASCENDING" | "DESCENDING", readonly "page"?: number, readonly "page-size"?: number, readonly "archived"?: boolean }
|
|
881
|
+
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." })) })
|
|
882
|
+
export type GetTags200 = ReadonlyArray<TagDtoV1>
|
|
883
|
+
export const GetTags200 = Schema.Array(TagDtoV1)
|
|
884
|
+
export type CreateNewTagRequestJson = TagRequest
|
|
885
|
+
export const CreateNewTagRequestJson = TagRequest
|
|
886
|
+
export type CreateNewTag201 = TagDtoV1
|
|
887
|
+
export const CreateNewTag201 = TagDtoV1
|
|
888
|
+
export type GetTag200 = TagDtoV1
|
|
889
|
+
export const GetTag200 = TagDtoV1
|
|
890
|
+
export type UpdateTagRequestJson = UpdateTagRequest
|
|
891
|
+
export const UpdateTagRequestJson = UpdateTagRequest
|
|
892
|
+
export type UpdateTag200 = TagDtoV1
|
|
893
|
+
export const UpdateTag200 = TagDtoV1
|
|
894
|
+
export type DeleteTag200 = TagDtoV1
|
|
895
|
+
export const DeleteTag200 = TagDtoV1
|
|
896
|
+
export type GetTemplatesParams = { readonly "name"?: string, readonly "cleansed"?: boolean, readonly "hydrated"?: boolean, readonly "page"?: number, readonly "page-size"?: number }
|
|
897
|
+
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())) })
|
|
898
|
+
export type GetTemplates200 = ReadonlyArray<TemplateDto>
|
|
899
|
+
export const GetTemplates200 = Schema.Array(TemplateDto)
|
|
900
|
+
export type CreateManyRequestJson = ReadonlyArray<TemplateRequest>
|
|
901
|
+
export const CreateManyRequestJson = Schema.Array(TemplateRequest)
|
|
902
|
+
export type CreateMany200 = ReadonlyArray<TemplateDtoImpl>
|
|
903
|
+
export const CreateMany200 = Schema.Array(TemplateDtoImpl)
|
|
904
|
+
export type GetTemplateParams = { readonly "cleansed"?: boolean, readonly "hydrated"?: boolean }
|
|
905
|
+
export const GetTemplateParams = Schema.Struct({ "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." })) })
|
|
906
|
+
export type GetTemplate200 = TemplateDto
|
|
907
|
+
export const GetTemplate200 = TemplateDto
|
|
908
|
+
export type Delete1200 = TemplateDtoImpl
|
|
909
|
+
export const Delete1200 = TemplateDtoImpl
|
|
910
|
+
export type UpdateRequestJson = TemplatePatchRequest
|
|
911
|
+
export const UpdateRequestJson = TemplatePatchRequest
|
|
912
|
+
export type Update200 = TemplateDtoImpl
|
|
913
|
+
export const Update200 = TemplateDtoImpl
|
|
914
|
+
export type CreateTimeEntryRequestJson = CreateTimeEntryRequest
|
|
915
|
+
export const CreateTimeEntryRequestJson = CreateTimeEntryRequest
|
|
916
|
+
export type CreateTimeEntry201 = TimeEntryDtoImplV1
|
|
917
|
+
export const CreateTimeEntry201 = TimeEntryDtoImplV1
|
|
918
|
+
export type UpdateInvoicedStatusRequestJson = UpdateInvoicedStatusRequest
|
|
919
|
+
export const UpdateInvoicedStatusRequestJson = UpdateInvoicedStatusRequest
|
|
920
|
+
export type GetInProgressTimeEntriesParams = { readonly "page"?: number, readonly "page-size"?: number }
|
|
921
|
+
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))) })
|
|
922
|
+
export type GetTimeEntryParams = { readonly "hydrated"?: boolean }
|
|
923
|
+
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." })) })
|
|
924
|
+
export type GetTimeEntry200 = TimeEntryWithRatesDtoV1
|
|
925
|
+
export const GetTimeEntry200 = TimeEntryWithRatesDtoV1
|
|
926
|
+
export type UpdateTimeEntryRequestJson = UpdateTimeEntryRequest
|
|
927
|
+
export const UpdateTimeEntryRequestJson = UpdateTimeEntryRequest
|
|
928
|
+
export type UpdateTimeEntry200 = TimeEntryDtoImplV1
|
|
929
|
+
export const UpdateTimeEntry200 = TimeEntryDtoImplV1
|
|
930
|
+
export type GetBalancesForPolicyParams = { readonly "page"?: number, readonly "page-size"?: number, readonly "sort"?: "USER" | "POLICY" | "USED" | "BALANCE" | "TOTAL", readonly "sort-order"?: "ASCENDING" | "DESCENDING" }
|
|
931
|
+
export const GetBalancesForPolicyParams = Schema.Struct({ "page": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt()).check(Schema.isLessThanOrEqualTo(1000))), "page-size": Schema.optionalKey(Schema.Number.annotate({ "format": "int32" }).check(Schema.isInt()).check(Schema.isGreaterThanOrEqualTo(1)).check(Schema.isLessThanOrEqualTo(200))), "sort": Schema.optionalKey(Schema.Literals(["USER", "POLICY", "USED", "BALANCE", "TOTAL"])), "sort-order": Schema.optionalKey(Schema.Literals(["ASCENDING", "DESCENDING"])) })
|
|
932
|
+
export type UpdateBalanceRequestJson = UpdateBalanceRequestV1
|
|
933
|
+
export const UpdateBalanceRequestJson = UpdateBalanceRequestV1
|
|
934
|
+
export type GetBalancesForUserParams = { readonly "page"?: string, readonly "page-size"?: string, readonly "sort"?: "USER" | "POLICY" | "USED" | "BALANCE" | "TOTAL", readonly "sort-order"?: "ASCENDING" | "DESCENDING" }
|
|
935
|
+
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"])) })
|
|
936
|
+
export type FindPoliciesForWorkspaceParams = { readonly "page"?: string, readonly "page-size"?: number, readonly "name"?: string, readonly "status"?: "ACTIVE" | "ARCHIVED" | "ALL", readonly "sort-column"?: string, readonly "sort-order"?: string }
|
|
937
|
+
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) })
|
|
938
|
+
export type FindPoliciesForWorkspace200 = ReadonlyArray<PolicyDtoV1>
|
|
939
|
+
export const FindPoliciesForWorkspace200 = Schema.Array(PolicyDtoV1)
|
|
940
|
+
export type CreatePolicyRequestJson = CreatePolicyRequestV1
|
|
941
|
+
export const CreatePolicyRequestJson = CreatePolicyRequestV1
|
|
942
|
+
export type CreatePolicy201 = PolicyDtoV1
|
|
943
|
+
export const CreatePolicy201 = PolicyDtoV1
|
|
944
|
+
export type GetPolicy200 = PolicyDtoV1
|
|
945
|
+
export const GetPolicy200 = PolicyDtoV1
|
|
946
|
+
export type UpdatePolicyRequestJson = UpdatePolicyRequestV1
|
|
947
|
+
export const UpdatePolicyRequestJson = UpdatePolicyRequestV1
|
|
948
|
+
export type UpdatePolicy200 = PolicyDtoV1
|
|
949
|
+
export const UpdatePolicy200 = PolicyDtoV1
|
|
950
|
+
export type UpdatePolicyStatusRequestJson = ChangePolicyStatusRequestV1
|
|
951
|
+
export const UpdatePolicyStatusRequestJson = ChangePolicyStatusRequestV1
|
|
952
|
+
export type UpdatePolicyStatus200 = PolicyDtoV1
|
|
953
|
+
export const UpdatePolicyStatus200 = PolicyDtoV1
|
|
954
|
+
export type CreateTimeOffRequestRequestJson = CreateTimeOffRequestV1Request
|
|
955
|
+
export const CreateTimeOffRequestRequestJson = CreateTimeOffRequestV1Request
|
|
956
|
+
export type CreateTimeOffRequest200 = TimeOffRequestFullV1Dto
|
|
957
|
+
export const CreateTimeOffRequest200 = TimeOffRequestFullV1Dto
|
|
958
|
+
export type DeleteTimeOffRequest200 = TimeOffRequestV1Dto
|
|
959
|
+
export const DeleteTimeOffRequest200 = TimeOffRequestV1Dto
|
|
960
|
+
export type ChangeTimeOffRequestStatusRequestJson = StatusTimeOffRequestV1Request
|
|
961
|
+
export const ChangeTimeOffRequestStatusRequestJson = StatusTimeOffRequestV1Request
|
|
962
|
+
export type ChangeTimeOffRequestStatus200 = TimeOffRequestV1Dto
|
|
963
|
+
export const ChangeTimeOffRequestStatus200 = TimeOffRequestV1Dto
|
|
964
|
+
export type CreateTimeOffRequestForOtherRequestJson = CreateTimeOffRequestV1Request
|
|
965
|
+
export const CreateTimeOffRequestForOtherRequestJson = CreateTimeOffRequestV1Request
|
|
966
|
+
export type CreateTimeOffRequestForOther200 = TimeOffRequestFullV1Dto
|
|
967
|
+
export const CreateTimeOffRequestForOther200 = TimeOffRequestFullV1Dto
|
|
968
|
+
export type GetTimeOffRequestRequestJson = GetTimeOffRequestsV1Request
|
|
969
|
+
export const GetTimeOffRequestRequestJson = GetTimeOffRequestsV1Request
|
|
970
|
+
export type GetTimeOffRequest200 = TimeOffRequestsWithCountV1Dto
|
|
971
|
+
export const GetTimeOffRequest200 = TimeOffRequestsWithCountV1Dto
|
|
972
|
+
export type GetUserGroupsParams = { readonly "project-id"?: string, readonly "name"?: string, readonly "sort-column"?: "ID" | "NAME", readonly "sort-order"?: "ASCENDING" | "DESCENDING", readonly "page"?: number, readonly "page-size"?: number, readonly "includeTeamManagers"?: boolean }
|
|
973
|
+
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." })) })
|
|
974
|
+
export type GetUserGroups200 = ReadonlyArray<UserGroupDtoV1>
|
|
975
|
+
export const GetUserGroups200 = Schema.Array(UserGroupDtoV1)
|
|
976
|
+
export type CreateUserGroupRequestJson = UserGroupRequest
|
|
977
|
+
export const CreateUserGroupRequestJson = UserGroupRequest
|
|
978
|
+
export type CreateUserGroup201 = UserGroupDtoV1
|
|
979
|
+
export const CreateUserGroup201 = UserGroupDtoV1
|
|
980
|
+
export type UpdateUserGroupRequestJson = UpdateUserGroupRequest
|
|
981
|
+
export const UpdateUserGroupRequestJson = UpdateUserGroupRequest
|
|
982
|
+
export type UpdateUserGroup200 = UserGroupDtoV1
|
|
983
|
+
export const UpdateUserGroup200 = UserGroupDtoV1
|
|
984
|
+
export type DeleteUserGroup200 = UserGroupDtoV1
|
|
985
|
+
export const DeleteUserGroup200 = UserGroupDtoV1
|
|
986
|
+
export type AddUserRequestJson = UserGroupUserRequest
|
|
987
|
+
export const AddUserRequestJson = UserGroupUserRequest
|
|
988
|
+
export type AddUser200 = UserGroupDtoV1
|
|
989
|
+
export const AddUser200 = UserGroupDtoV1
|
|
990
|
+
export type DeleteUser200 = UserGroupDtoV1
|
|
991
|
+
export const DeleteUser200 = UserGroupDtoV1
|
|
992
|
+
export type GetTimeEntriesParams = { readonly "description"?: string, readonly "start"?: string, readonly "end"?: string, readonly "project"?: string, readonly "task"?: string, readonly "tags"?: ReadonlyArray<string>, readonly "project-required"?: boolean, readonly "task-required"?: boolean, readonly "hydrated"?: boolean, readonly "page"?: number, readonly "page-size"?: number, readonly "in-progress"?: string, readonly "get-week-before"?: string }
|
|
993
|
+
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." })) })
|
|
994
|
+
export type GetTimeEntries200 = ReadonlyArray<TimeEntryWithRatesDtoV1>
|
|
995
|
+
export const GetTimeEntries200 = Schema.Array(TimeEntryWithRatesDtoV1)
|
|
996
|
+
export type ReplaceManyParams = { readonly "hydrated"?: boolean }
|
|
997
|
+
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." })) })
|
|
998
|
+
export type ReplaceManyRequestJson = ReadonlyArray<UpdateTimeEntryBulkRequest>
|
|
999
|
+
export const ReplaceManyRequestJson = Schema.Array(UpdateTimeEntryBulkRequest).check(Schema.isMinLength(1))
|
|
1000
|
+
export type ReplaceMany200 = ReadonlyArray<TimeEntryDtoV1>
|
|
1001
|
+
export const ReplaceMany200 = Schema.Array(TimeEntryDtoV1)
|
|
1002
|
+
export type CreateForOthersParams = { readonly "from-entry"?: string }
|
|
1003
|
+
export const CreateForOthersParams = Schema.Struct({ "from-entry": Schema.optionalKey(Schema.String.annotate({ "description": "Represents a time entry identifier across the system." })) })
|
|
1004
|
+
export type CreateForOthersRequestJson = CreateTimeEntryRequest
|
|
1005
|
+
export const CreateForOthersRequestJson = CreateTimeEntryRequest
|
|
1006
|
+
export type CreateForOthers201 = TimeEntryDtoImplV1
|
|
1007
|
+
export const CreateForOthers201 = TimeEntryDtoImplV1
|
|
1008
|
+
export type DeleteManyParams = { readonly "time-entry-ids": ReadonlyArray<string> }
|
|
1009
|
+
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." }) })
|
|
1010
|
+
export type DeleteMany200 = ReadonlyArray<TimeEntryDtoImplV1>
|
|
1011
|
+
export const DeleteMany200 = Schema.Array(TimeEntryDtoImplV1)
|
|
1012
|
+
export type StopRunningTimeEntryRequestJson = StopTimeEntryRequest
|
|
1013
|
+
export const StopRunningTimeEntryRequestJson = StopTimeEntryRequest
|
|
1014
|
+
export type StopRunningTimeEntry200 = TimeEntryDtoImplV1
|
|
1015
|
+
export const StopRunningTimeEntry200 = TimeEntryDtoImplV1
|
|
1016
|
+
export type DuplicateTimeEntry201 = TimeEntryDtoImplV1
|
|
1017
|
+
export const DuplicateTimeEntry201 = TimeEntryDtoImplV1
|
|
1018
|
+
export type GetUsersOfWorkspaceParams = { readonly "email"?: string, readonly "project-id"?: string, readonly "status"?: "PENDING" | "ACTIVE" | "DECLINED" | "INACTIVE" | "ALL", readonly "account-statuses"?: string, readonly "name"?: string, readonly "sort-column"?: "ID" | "EMAIL" | "NAME" | "NAME_LOWERCASE" | "ACCESS" | "HOURLYRATE" | "COSTRATE", readonly "sort-order"?: "ASCENDING" | "DESCENDING", readonly "page"?: number, readonly "page-size"?: number, readonly "memberships"?: "ALL" | "NONE" | "WORKSPACE" | "PROJECT" | "USERGROUP", readonly "include-roles": string }
|
|
1019
|
+
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 })
|
|
1020
|
+
export type GetUsersOfWorkspace200 = ReadonlyArray<UserDtoV1>
|
|
1021
|
+
export const GetUsersOfWorkspace200 = Schema.Array(UserDtoV1)
|
|
1022
|
+
export type AddUsersParams = { readonly "send-email": string }
|
|
1023
|
+
export const AddUsersParams = Schema.Struct({ "send-email": Schema.String })
|
|
1024
|
+
export type AddUsersRequestJson = AddUserToWorkspaceRequest
|
|
1025
|
+
export const AddUsersRequestJson = AddUserToWorkspaceRequest
|
|
1026
|
+
export type AddUsers200 = WorkspaceDtoV1
|
|
1027
|
+
export const AddUsers200 = WorkspaceDtoV1
|
|
1028
|
+
export type FilterUsersOfWorkspaceRequestJson = GetUsersRequestV1
|
|
1029
|
+
export const FilterUsersOfWorkspaceRequestJson = GetUsersRequestV1
|
|
1030
|
+
export type FilterUsersOfWorkspace200 = ReadonlyArray<UserDtoV1>
|
|
1031
|
+
export const FilterUsersOfWorkspace200 = Schema.Array(UserDtoV1)
|
|
1032
|
+
export type UpdateUserStatusRequestJson = UpdateUserStatusRequest
|
|
1033
|
+
export const UpdateUserStatusRequestJson = UpdateUserStatusRequest
|
|
1034
|
+
export type UpdateUserStatus200 = WorkspaceDtoV1
|
|
1035
|
+
export const UpdateUserStatus200 = WorkspaceDtoV1
|
|
1036
|
+
export type RemoveMember200 = WorkspaceDtoV1
|
|
1037
|
+
export const RemoveMember200 = WorkspaceDtoV1
|
|
1038
|
+
export type SetCostRateForUserRequestJson = CostRateRequestV1
|
|
1039
|
+
export const SetCostRateForUserRequestJson = CostRateRequestV1
|
|
1040
|
+
export type SetCostRateForUser200 = WorkspaceDtoV1
|
|
1041
|
+
export const SetCostRateForUser200 = WorkspaceDtoV1
|
|
1042
|
+
export type UpsertUserCustomFieldValueRequestJson = UpsertUserCustomFieldRequestV1
|
|
1043
|
+
export const UpsertUserCustomFieldValueRequestJson = UpsertUserCustomFieldRequestV1
|
|
1044
|
+
export type UpsertUserCustomFieldValue201 = UserCustomFieldValueDtoV1
|
|
1045
|
+
export const UpsertUserCustomFieldValue201 = UserCustomFieldValueDtoV1
|
|
1046
|
+
export type SetHourlyRateForUserRequestJson = HourlyRateRequestV1
|
|
1047
|
+
export const SetHourlyRateForUserRequestJson = HourlyRateRequestV1
|
|
1048
|
+
export type SetHourlyRateForUser200 = WorkspaceDtoV1
|
|
1049
|
+
export const SetHourlyRateForUser200 = WorkspaceDtoV1
|
|
1050
|
+
export type GetManagersOfUserParams = { readonly "sort-column"?: "ID" | "EMAIL" | "NAME" | "NAME_LOWERCASE" | "ACCESS" | "HOURLYRATE" | "COSTRATE", readonly "sort-order"?: "ASCENDING" | "DESCENDING", readonly "page"?: number, readonly "page-size"?: number }
|
|
1051
|
+
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))) })
|
|
1052
|
+
export type GetManagersOfUser200 = ReadonlyArray<UserDtoV1>
|
|
1053
|
+
export const GetManagersOfUser200 = Schema.Array(UserDtoV1)
|
|
1054
|
+
export type CreateUserRoleRequestJson = RoleRequestV1
|
|
1055
|
+
export const CreateUserRoleRequestJson = RoleRequestV1
|
|
1056
|
+
export type CreateUserRole201 = ReadonlyArray<RoleDetailsDtoV1>
|
|
1057
|
+
export const CreateUserRole201 = Schema.Array(RoleDetailsDtoV1)
|
|
1058
|
+
export type DeleteUserRoleRequestJson = RoleRequestV1
|
|
1059
|
+
export const DeleteUserRoleRequestJson = RoleRequestV1
|
|
1060
|
+
export type GetWebhooksParams = { readonly "type"?: "USER_CREATED" | "SYSTEM" | "ADDON" }
|
|
1061
|
+
export const GetWebhooksParams = Schema.Struct({ "type": Schema.optionalKey(Schema.Literals(["USER_CREATED", "SYSTEM", "ADDON"])) })
|
|
1062
|
+
export type GetWebhooks200 = WebhooksDtoV1
|
|
1063
|
+
export const GetWebhooks200 = WebhooksDtoV1
|
|
1064
|
+
export type CreateWebhookRequestJson = CreateWebhookRequestV1
|
|
1065
|
+
export const CreateWebhookRequestJson = CreateWebhookRequestV1
|
|
1066
|
+
export type CreateWebhook201 = WebhookDtoV1
|
|
1067
|
+
export const CreateWebhook201 = WebhookDtoV1
|
|
1068
|
+
export type GetWebhook200 = WebhookDtoV1
|
|
1069
|
+
export const GetWebhook200 = WebhookDtoV1
|
|
1070
|
+
export type UpdateWebhookRequestJson = UpdateWebhookRequestV1
|
|
1071
|
+
export const UpdateWebhookRequestJson = UpdateWebhookRequestV1
|
|
1072
|
+
export type UpdateWebhook200 = WebhookDtoV1
|
|
1073
|
+
export const UpdateWebhook200 = WebhookDtoV1
|
|
1074
|
+
export type GetLogsForWebhookParams = { readonly "page"?: number, readonly "size"?: number }
|
|
1075
|
+
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))) })
|
|
1076
|
+
export type GetLogsForWebhookRequestJson = WebhookLogSearchRequestV1
|
|
1077
|
+
export const GetLogsForWebhookRequestJson = WebhookLogSearchRequestV1
|
|
1078
|
+
export type GetLogsForWebhook200 = ReadonlyArray<WebhookLogDtoV1>
|
|
1079
|
+
export const GetLogsForWebhook200 = Schema.Array(WebhookLogDtoV1)
|
|
1080
|
+
export type GetWebhookEventStatusesWithLatestLogParams = { readonly "page"?: number, readonly "size"?: number, readonly "statuses"?: "SUCCEEDED" | "RETRYING" | "FAILED" }
|
|
1081
|
+
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"])) })
|
|
1082
|
+
export type GetWebhookEventStatusesWithLatestLog200 = ReadonlyArray<WebhookEventStatusWithLatestLogDtoV1>
|
|
1083
|
+
export const GetWebhookEventStatusesWithLatestLog200 = Schema.Array(WebhookEventStatusWithLatestLogDtoV1)
|
|
1084
|
+
export type GenerateNewToken200 = WebhookDtoV1
|
|
1085
|
+
export const GenerateNewToken200 = WebhookDtoV1
|
|
1086
|
+
export type GenerateSharedReportV1Params = { readonly "dateRangeStart"?: string, readonly "dateRangeEnd"?: string, readonly "sortOrder"?: string, readonly "sortColumn"?: string, readonly "exportType"?: string, readonly "page"?: number, readonly "pageSize"?: number }
|
|
1087
|
+
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())) })
|
|
1088
|
+
export type GenerateAttendanceReportRequestJson = AttendanceReportFilterV1
|
|
1089
|
+
export const GenerateAttendanceReportRequestJson = AttendanceReportFilterV1
|
|
1090
|
+
export type GenerateDetailedReportRequestJson = DetailedReportFilterV1
|
|
1091
|
+
export const GenerateDetailedReportRequestJson = DetailedReportFilterV1
|
|
1092
|
+
export type GenerateDetailedReportV1RequestJson = ExpenseReportFilterV1
|
|
1093
|
+
export const GenerateDetailedReportV1RequestJson = ExpenseReportFilterV1
|
|
1094
|
+
export type GenerateDetailedReportV1200 = ExpenseDetailedReportDtoV1
|
|
1095
|
+
export const GenerateDetailedReportV1200 = ExpenseDetailedReportDtoV1
|
|
1096
|
+
export type GenerateSummaryReportRequestJson = SummaryReportFilterV1
|
|
1097
|
+
export const GenerateSummaryReportRequestJson = SummaryReportFilterV1
|
|
1098
|
+
export type GenerateWeeklyReportRequestJson = WeeklyReportFilterV1
|
|
1099
|
+
export const GenerateWeeklyReportRequestJson = WeeklyReportFilterV1
|
|
1100
|
+
export type GetSharedReportsV1Params = { readonly "page"?: number, readonly "pageSize"?: number, readonly "sharedReportsFilter"?: "ALL" | "ALL_ADMIN" | "CREATED_BY_ME" | "SHARED_WITH_ME" }
|
|
1101
|
+
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." })) })
|
|
1102
|
+
export type SaveSharedReportV1RequestJson = SharedReportRequestV1
|
|
1103
|
+
export const SaveSharedReportV1RequestJson = SharedReportRequestV1
|
|
1104
|
+
export type UpdateSharedReportV1RequestJson = UpdateSharedReportRequestV1
|
|
1105
|
+
export const UpdateSharedReportV1RequestJson = UpdateSharedReportRequestV1
|
|
1106
|
+
export type GetAuditLogsRequestJson = AuditLogGetRequestV1
|
|
1107
|
+
export const GetAuditLogsRequestJson = AuditLogGetRequestV1
|
|
1108
|
+
export type GetAuditLogs200 = PageableV1ListAuditLogDtoV1
|
|
1109
|
+
export const GetAuditLogs200 = PageableV1ListAuditLogDtoV1
|
|
1110
|
+
|
|
1111
|
+
export interface OperationConfig {
|
|
1112
|
+
/**
|
|
1113
|
+
* Whether or not the response should be included in the value returned from
|
|
1114
|
+
* an operation.
|
|
1115
|
+
*
|
|
1116
|
+
* If set to `true`, a tuple of `[A, HttpClientResponse]` will be returned,
|
|
1117
|
+
* where `A` is the success type of the operation.
|
|
1118
|
+
*
|
|
1119
|
+
* If set to `false`, only the success type of the operation will be returned.
|
|
1120
|
+
*/
|
|
1121
|
+
readonly includeResponse?: boolean | undefined
|
|
1122
|
+
}
|
|
1123
|
+
|
|
1124
|
+
/**
|
|
1125
|
+
* A utility type which optionally includes the response in the return result
|
|
1126
|
+
* of an operation based upon the value of the `includeResponse` configuration
|
|
1127
|
+
* option.
|
|
1128
|
+
*/
|
|
1129
|
+
export type WithOptionalResponse<A, Config extends OperationConfig> = Config extends {
|
|
1130
|
+
readonly includeResponse: true
|
|
1131
|
+
} ? [A, HttpClientResponse.HttpClientResponse] : A
|
|
1132
|
+
|
|
1133
|
+
export const make = (
|
|
1134
|
+
httpClient: HttpClient.HttpClient,
|
|
1135
|
+
options: {
|
|
1136
|
+
readonly transformClient?: ((client: HttpClient.HttpClient) => Effect.Effect<HttpClient.HttpClient>) | undefined
|
|
1137
|
+
} = {}
|
|
1138
|
+
): ClockifyApi => {
|
|
1139
|
+
const unexpectedStatus = (response: HttpClientResponse.HttpClientResponse) =>
|
|
1140
|
+
Effect.flatMap(
|
|
1141
|
+
Effect.orElseSucceed(response.json, () => "Unexpected status code"),
|
|
1142
|
+
(description) =>
|
|
1143
|
+
Effect.fail(
|
|
1144
|
+
new HttpClientError.HttpClientError({
|
|
1145
|
+
reason: new HttpClientError.StatusCodeError({
|
|
1146
|
+
request: response.request,
|
|
1147
|
+
response,
|
|
1148
|
+
description: typeof description === "string" ? description : JSON.stringify(description),
|
|
1149
|
+
}),
|
|
1150
|
+
}),
|
|
1151
|
+
),
|
|
1152
|
+
)
|
|
1153
|
+
const withResponse = <Config extends OperationConfig>(config: Config | undefined) => (
|
|
1154
|
+
f: (response: HttpClientResponse.HttpClientResponse) => Effect.Effect<any, any>,
|
|
1155
|
+
): (request: HttpClientRequest.HttpClientRequest) => Effect.Effect<any, any> => {
|
|
1156
|
+
const withOptionalResponse = (
|
|
1157
|
+
config?.includeResponse
|
|
1158
|
+
? (response: HttpClientResponse.HttpClientResponse) => Effect.map(f(response), (a) => [a, response])
|
|
1159
|
+
: (response: HttpClientResponse.HttpClientResponse) => f(response)
|
|
1160
|
+
) as any
|
|
1161
|
+
return options?.transformClient
|
|
1162
|
+
? (request) =>
|
|
1163
|
+
Effect.flatMap(
|
|
1164
|
+
Effect.flatMap(options.transformClient!(httpClient), (client) => client.execute(request)),
|
|
1165
|
+
withOptionalResponse
|
|
1166
|
+
)
|
|
1167
|
+
: (request) => Effect.flatMap(httpClient.execute(request), withOptionalResponse)
|
|
1168
|
+
}
|
|
1169
|
+
const decodeSuccess =
|
|
1170
|
+
<Schema extends Schema.Constraint>(schema: Schema) =>
|
|
1171
|
+
(response: HttpClientResponse.HttpClientResponse) =>
|
|
1172
|
+
HttpClientResponse.schemaBodyJson(schema)(response)
|
|
1173
|
+
return {
|
|
1174
|
+
httpClient,
|
|
1175
|
+
"uploadImage": (options) => HttpClientRequest.post(`/v1/file/image`).pipe(
|
|
1176
|
+
HttpClientRequest.bodyFormDataRecord(options.payload as any),
|
|
1177
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1178
|
+
"2xx": decodeSuccess(UploadImage200),
|
|
1179
|
+
orElse: unexpectedStatus
|
|
1180
|
+
}))
|
|
1181
|
+
),
|
|
1182
|
+
"getLoggedUser": (options) => HttpClientRequest.get(`/v1/user`).pipe(
|
|
1183
|
+
HttpClientRequest.setUrlParams({ "include-memberships": options?.params?.["include-memberships"] as any }),
|
|
1184
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1185
|
+
"2xx": decodeSuccess(GetLoggedUser200),
|
|
1186
|
+
orElse: unexpectedStatus
|
|
1187
|
+
}))
|
|
1188
|
+
),
|
|
1189
|
+
"getWorkspacesOfUser": (options) => HttpClientRequest.get(`/v1/workspaces`).pipe(
|
|
1190
|
+
HttpClientRequest.setUrlParams({ "roles": options?.params?.["roles"] as any }),
|
|
1191
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1192
|
+
"2xx": decodeSuccess(GetWorkspacesOfUser200),
|
|
1193
|
+
orElse: unexpectedStatus
|
|
1194
|
+
}))
|
|
1195
|
+
),
|
|
1196
|
+
"createWorkspace": (options) => HttpClientRequest.post(`/v1/workspaces`).pipe(
|
|
1197
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1198
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1199
|
+
"2xx": decodeSuccess(CreateWorkspace201),
|
|
1200
|
+
orElse: unexpectedStatus
|
|
1201
|
+
}))
|
|
1202
|
+
),
|
|
1203
|
+
"getWorkspaceOfUser": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}`).pipe(
|
|
1204
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1205
|
+
"2xx": decodeSuccess(GetWorkspaceOfUser200),
|
|
1206
|
+
orElse: unexpectedStatus
|
|
1207
|
+
}))
|
|
1208
|
+
),
|
|
1209
|
+
"getAddonWebhooks": (workspaceId, addonId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/addons/${addonId}/webhooks`).pipe(
|
|
1210
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1211
|
+
"2xx": decodeSuccess(GetAddonWebhooks200),
|
|
1212
|
+
orElse: unexpectedStatus
|
|
1213
|
+
}))
|
|
1214
|
+
),
|
|
1215
|
+
"getApprovalRequests": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/approval-requests`).pipe(
|
|
1216
|
+
HttpClientRequest.setUrlParams({ "status": options?.params?.["status"] as any, "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any }),
|
|
1217
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1218
|
+
"2xx": decodeSuccess(GetApprovalRequests200),
|
|
1219
|
+
orElse: unexpectedStatus
|
|
1220
|
+
}))
|
|
1221
|
+
),
|
|
1222
|
+
"createApprrovalRequest": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests`).pipe(
|
|
1223
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1224
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1225
|
+
"2xx": decodeSuccess(CreateApprrovalRequest201),
|
|
1226
|
+
orElse: unexpectedStatus
|
|
1227
|
+
}))
|
|
1228
|
+
),
|
|
1229
|
+
"resubmitApprovalRequest": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/resubmit-entries-for-approval`).pipe(
|
|
1230
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1231
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1232
|
+
orElse: unexpectedStatus
|
|
1233
|
+
}))
|
|
1234
|
+
),
|
|
1235
|
+
"createApprovalForOther": (workspaceId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/users/${userId}`).pipe(
|
|
1236
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1237
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1238
|
+
"2xx": decodeSuccess(CreateApprovalForOther201),
|
|
1239
|
+
orElse: unexpectedStatus
|
|
1240
|
+
}))
|
|
1241
|
+
),
|
|
1242
|
+
"resubmitApprovalRequestForOther": (workspaceId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/approval-requests/users/${userId}/resubmit-entries-for-approval`).pipe(
|
|
1243
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1244
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1245
|
+
orElse: unexpectedStatus
|
|
1246
|
+
}))
|
|
1247
|
+
),
|
|
1248
|
+
"updateApprovalStatus": (workspaceId, approvalRequestId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/approval-requests/${approvalRequestId}`).pipe(
|
|
1249
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1250
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1251
|
+
"2xx": decodeSuccess(UpdateApprovalStatus200),
|
|
1252
|
+
orElse: unexpectedStatus
|
|
1253
|
+
}))
|
|
1254
|
+
),
|
|
1255
|
+
"getClients": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/clients`).pipe(
|
|
1256
|
+
HttpClientRequest.setUrlParams({ "name": options?.params?.["name"] as any, "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "archived": options?.params?.["archived"] as any }),
|
|
1257
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1258
|
+
"2xx": decodeSuccess(GetClients200),
|
|
1259
|
+
orElse: unexpectedStatus
|
|
1260
|
+
}))
|
|
1261
|
+
),
|
|
1262
|
+
"createClient": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/clients`).pipe(
|
|
1263
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1264
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1265
|
+
"2xx": decodeSuccess(CreateClient201),
|
|
1266
|
+
orElse: unexpectedStatus
|
|
1267
|
+
}))
|
|
1268
|
+
),
|
|
1269
|
+
"getClient": (workspaceId, id, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/clients/${id}`).pipe(
|
|
1270
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1271
|
+
"2xx": decodeSuccess(GetClient200),
|
|
1272
|
+
orElse: unexpectedStatus
|
|
1273
|
+
}))
|
|
1274
|
+
),
|
|
1275
|
+
"updateClient": (workspaceId, id, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/clients/${id}`).pipe(
|
|
1276
|
+
HttpClientRequest.setUrlParams({ "archive-projects": options.params?.["archive-projects"] as any, "mark-tasks-as-done": options.params?.["mark-tasks-as-done"] as any }),
|
|
1277
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1278
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1279
|
+
"2xx": decodeSuccess(UpdateClient200),
|
|
1280
|
+
orElse: unexpectedStatus
|
|
1281
|
+
}))
|
|
1282
|
+
),
|
|
1283
|
+
"deleteClient": (workspaceId, id, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/clients/${id}`).pipe(
|
|
1284
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1285
|
+
"2xx": decodeSuccess(DeleteClient200),
|
|
1286
|
+
orElse: unexpectedStatus
|
|
1287
|
+
}))
|
|
1288
|
+
),
|
|
1289
|
+
"setWorkspaceCostRate": (workspaceId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/cost-rate`).pipe(
|
|
1290
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1291
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1292
|
+
"2xx": decodeSuccess(SetWorkspaceCostRate200),
|
|
1293
|
+
orElse: unexpectedStatus
|
|
1294
|
+
}))
|
|
1295
|
+
),
|
|
1296
|
+
"ofWorkspace": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/custom-fields`).pipe(
|
|
1297
|
+
HttpClientRequest.setUrlParams({ "name": options?.params?.["name"] as any, "status": options?.params?.["status"] as any, "entity-type": options?.params?.["entity-type"] as any }),
|
|
1298
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1299
|
+
"2xx": decodeSuccess(OfWorkspace200),
|
|
1300
|
+
orElse: unexpectedStatus
|
|
1301
|
+
}))
|
|
1302
|
+
),
|
|
1303
|
+
"create": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/custom-fields`).pipe(
|
|
1304
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1305
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1306
|
+
orElse: unexpectedStatus
|
|
1307
|
+
}))
|
|
1308
|
+
),
|
|
1309
|
+
"editCustomField": (workspaceId, customFieldId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/custom-fields/${customFieldId}`).pipe(
|
|
1310
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1311
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1312
|
+
"2xx": decodeSuccess(EditCustomField200),
|
|
1313
|
+
orElse: unexpectedStatus
|
|
1314
|
+
}))
|
|
1315
|
+
),
|
|
1316
|
+
"delete": (workspaceId, customFieldId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/custom-fields/${customFieldId}`).pipe(
|
|
1317
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1318
|
+
"204": () => Effect.void,
|
|
1319
|
+
orElse: unexpectedStatus
|
|
1320
|
+
}))
|
|
1321
|
+
),
|
|
1322
|
+
"getCreatedEntityInfo": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/entities/created`).pipe(
|
|
1323
|
+
HttpClientRequest.setUrlParams({ "type": options.params["type"] as any, "start": options.params["start"] as any, "end": options.params["end"] as any, "page": options.params["page"] as any, "limit": options.params["limit"] as any }),
|
|
1324
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1325
|
+
"2xx": decodeSuccess(GetCreatedEntityInfo200),
|
|
1326
|
+
orElse: unexpectedStatus
|
|
1327
|
+
}))
|
|
1328
|
+
),
|
|
1329
|
+
"getDeletedEntityInfo": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/entities/deleted`).pipe(
|
|
1330
|
+
HttpClientRequest.setUrlParams({ "type": options.params["type"] as any, "start": options.params["start"] as any, "end": options.params["end"] as any, "page": options.params["page"] as any, "limit": options.params["limit"] as any }),
|
|
1331
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1332
|
+
"2xx": decodeSuccess(GetDeletedEntityInfo200),
|
|
1333
|
+
orElse: unexpectedStatus
|
|
1334
|
+
}))
|
|
1335
|
+
),
|
|
1336
|
+
"getUpdatedEntityInfo": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/entities/updated`).pipe(
|
|
1337
|
+
HttpClientRequest.setUrlParams({ "type": options.params["type"] as any, "start": options.params["start"] as any, "end": options.params["end"] as any, "page": options.params["page"] as any, "limit": options.params["limit"] as any }),
|
|
1338
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1339
|
+
"2xx": decodeSuccess(GetUpdatedEntityInfo200),
|
|
1340
|
+
orElse: unexpectedStatus
|
|
1341
|
+
}))
|
|
1342
|
+
),
|
|
1343
|
+
"getExpenses": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/expenses`).pipe(
|
|
1344
|
+
HttpClientRequest.setUrlParams({ "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "user-id": options?.params?.["user-id"] as any }),
|
|
1345
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1346
|
+
"2xx": decodeSuccess(GetExpenses200),
|
|
1347
|
+
orElse: unexpectedStatus
|
|
1348
|
+
}))
|
|
1349
|
+
),
|
|
1350
|
+
"createExpense": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/expenses`).pipe(
|
|
1351
|
+
HttpClientRequest.bodyFormDataRecord(options.payload as any),
|
|
1352
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1353
|
+
"2xx": decodeSuccess(CreateExpense201),
|
|
1354
|
+
orElse: unexpectedStatus
|
|
1355
|
+
}))
|
|
1356
|
+
),
|
|
1357
|
+
"getCategories": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/expenses/categories`).pipe(
|
|
1358
|
+
HttpClientRequest.setUrlParams({ "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "archived": options?.params?.["archived"] as any, "name": options?.params?.["name"] as any }),
|
|
1359
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1360
|
+
"2xx": decodeSuccess(GetCategories200),
|
|
1361
|
+
orElse: unexpectedStatus
|
|
1362
|
+
}))
|
|
1363
|
+
),
|
|
1364
|
+
"createExpenseCategory": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/expenses/categories`).pipe(
|
|
1365
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1366
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1367
|
+
"2xx": decodeSuccess(CreateExpenseCategory201),
|
|
1368
|
+
orElse: unexpectedStatus
|
|
1369
|
+
}))
|
|
1370
|
+
),
|
|
1371
|
+
"updateCategory": (workspaceId, categoryId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/expenses/categories/${categoryId}`).pipe(
|
|
1372
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1373
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1374
|
+
"2xx": decodeSuccess(UpdateCategory200),
|
|
1375
|
+
orElse: unexpectedStatus
|
|
1376
|
+
}))
|
|
1377
|
+
),
|
|
1378
|
+
"deleteCategory": (workspaceId, categoryId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/expenses/categories/${categoryId}`).pipe(
|
|
1379
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1380
|
+
"204": () => Effect.void,
|
|
1381
|
+
orElse: unexpectedStatus
|
|
1382
|
+
}))
|
|
1383
|
+
),
|
|
1384
|
+
"updateExpenseCategoryStatus": (workspaceId, categoryId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/expenses/categories/${categoryId}/status`).pipe(
|
|
1385
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1386
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1387
|
+
"2xx": decodeSuccess(UpdateExpenseCategoryStatus200),
|
|
1388
|
+
orElse: unexpectedStatus
|
|
1389
|
+
}))
|
|
1390
|
+
),
|
|
1391
|
+
"getExpense": (workspaceId, expenseId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/expenses/${expenseId}`).pipe(
|
|
1392
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1393
|
+
"2xx": decodeSuccess(GetExpense200),
|
|
1394
|
+
orElse: unexpectedStatus
|
|
1395
|
+
}))
|
|
1396
|
+
),
|
|
1397
|
+
"updateExpense": (workspaceId, expenseId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/expenses/${expenseId}`).pipe(
|
|
1398
|
+
HttpClientRequest.bodyFormDataRecord(options.payload as any),
|
|
1399
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1400
|
+
"2xx": decodeSuccess(UpdateExpense200),
|
|
1401
|
+
orElse: unexpectedStatus
|
|
1402
|
+
}))
|
|
1403
|
+
),
|
|
1404
|
+
"deleteExpense": (workspaceId, expenseId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/expenses/${expenseId}`).pipe(
|
|
1405
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1406
|
+
"200": () => Effect.void,
|
|
1407
|
+
orElse: unexpectedStatus
|
|
1408
|
+
}))
|
|
1409
|
+
),
|
|
1410
|
+
"downloadFile": (workspaceId, expenseId, fileId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/expenses/${expenseId}/files/${fileId}`).pipe(
|
|
1411
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1412
|
+
orElse: unexpectedStatus
|
|
1413
|
+
}))
|
|
1414
|
+
),
|
|
1415
|
+
"getHolidays": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/holidays`).pipe(
|
|
1416
|
+
HttpClientRequest.setUrlParams({ "assigned-to": options?.params?.["assigned-to"] as any }),
|
|
1417
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1418
|
+
"2xx": decodeSuccess(GetHolidays200),
|
|
1419
|
+
orElse: unexpectedStatus
|
|
1420
|
+
}))
|
|
1421
|
+
),
|
|
1422
|
+
"createHoliday": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/holidays`).pipe(
|
|
1423
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1424
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1425
|
+
"2xx": decodeSuccess(CreateHoliday200),
|
|
1426
|
+
orElse: unexpectedStatus
|
|
1427
|
+
}))
|
|
1428
|
+
),
|
|
1429
|
+
"getHolidaysInPeriod": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/holidays/in-period`).pipe(
|
|
1430
|
+
HttpClientRequest.setUrlParams({ "assigned-to": options.params["assigned-to"] as any, "start": options.params["start"] as any, "end": options.params["end"] as any }),
|
|
1431
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1432
|
+
"2xx": decodeSuccess(GetHolidaysInPeriod200),
|
|
1433
|
+
orElse: unexpectedStatus
|
|
1434
|
+
}))
|
|
1435
|
+
),
|
|
1436
|
+
"updateHoliday": (workspaceId, holidayId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/holidays/${holidayId}`).pipe(
|
|
1437
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1438
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1439
|
+
"2xx": decodeSuccess(UpdateHoliday200),
|
|
1440
|
+
orElse: unexpectedStatus
|
|
1441
|
+
}))
|
|
1442
|
+
),
|
|
1443
|
+
"deleteHoliday": (workspaceId, holidayId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/holidays/${holidayId}`).pipe(
|
|
1444
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1445
|
+
"2xx": decodeSuccess(DeleteHoliday200),
|
|
1446
|
+
orElse: unexpectedStatus
|
|
1447
|
+
}))
|
|
1448
|
+
),
|
|
1449
|
+
"setWorkspaceHourlyRate": (workspaceId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/hourly-rate`).pipe(
|
|
1450
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1451
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1452
|
+
"2xx": decodeSuccess(SetWorkspaceHourlyRate200),
|
|
1453
|
+
orElse: unexpectedStatus
|
|
1454
|
+
}))
|
|
1455
|
+
),
|
|
1456
|
+
"getInvoices": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/invoices`).pipe(
|
|
1457
|
+
HttpClientRequest.setUrlParams({ "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "statuses": options?.params?.["statuses"] as any, "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any }),
|
|
1458
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1459
|
+
"2xx": decodeSuccess(GetInvoices200),
|
|
1460
|
+
orElse: unexpectedStatus
|
|
1461
|
+
}))
|
|
1462
|
+
),
|
|
1463
|
+
"createInvoice": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/invoices`).pipe(
|
|
1464
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1465
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1466
|
+
"2xx": decodeSuccess(CreateInvoice201),
|
|
1467
|
+
orElse: unexpectedStatus
|
|
1468
|
+
}))
|
|
1469
|
+
),
|
|
1470
|
+
"getInvoicesInfo": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/invoices/info`).pipe(
|
|
1471
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1472
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1473
|
+
"2xx": decodeSuccess(GetInvoicesInfo200),
|
|
1474
|
+
orElse: unexpectedStatus
|
|
1475
|
+
}))
|
|
1476
|
+
),
|
|
1477
|
+
"getInvoiceSettings": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/invoices/settings`).pipe(
|
|
1478
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1479
|
+
"2xx": decodeSuccess(GetInvoiceSettings200),
|
|
1480
|
+
orElse: unexpectedStatus
|
|
1481
|
+
}))
|
|
1482
|
+
),
|
|
1483
|
+
"updateInvoiceSettings": (workspaceId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/invoices/settings`).pipe(
|
|
1484
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1485
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1486
|
+
"200": () => Effect.void,
|
|
1487
|
+
orElse: unexpectedStatus
|
|
1488
|
+
}))
|
|
1489
|
+
),
|
|
1490
|
+
"getInvoice": (workspaceId, invoiceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/invoices/${invoiceId}`).pipe(
|
|
1491
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1492
|
+
"2xx": decodeSuccess(GetInvoice200),
|
|
1493
|
+
orElse: unexpectedStatus
|
|
1494
|
+
}))
|
|
1495
|
+
),
|
|
1496
|
+
"updateInvoice": (workspaceId, invoiceId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/invoices/${invoiceId}`).pipe(
|
|
1497
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1498
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1499
|
+
"2xx": decodeSuccess(UpdateInvoice200),
|
|
1500
|
+
orElse: unexpectedStatus
|
|
1501
|
+
}))
|
|
1502
|
+
),
|
|
1503
|
+
"deleteInvoice": (workspaceId, invoiceId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/invoices/${invoiceId}`).pipe(
|
|
1504
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1505
|
+
"200": () => Effect.void,
|
|
1506
|
+
orElse: unexpectedStatus
|
|
1507
|
+
}))
|
|
1508
|
+
),
|
|
1509
|
+
"duplicateInvoice": (workspaceId, invoiceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/invoices/${invoiceId}/duplicate`).pipe(
|
|
1510
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1511
|
+
"2xx": decodeSuccess(DuplicateInvoice201),
|
|
1512
|
+
orElse: unexpectedStatus
|
|
1513
|
+
}))
|
|
1514
|
+
),
|
|
1515
|
+
"exportInvoice": (workspaceId, invoiceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/invoices/${invoiceId}/export`).pipe(
|
|
1516
|
+
HttpClientRequest.setUrlParams({ "userLocale": options.params["userLocale"] as any }),
|
|
1517
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1518
|
+
orElse: unexpectedStatus
|
|
1519
|
+
}))
|
|
1520
|
+
),
|
|
1521
|
+
"addInvoiceItem": (workspaceId, invoiceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/invoices/${invoiceId}/items`).pipe(
|
|
1522
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1523
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1524
|
+
"2xx": decodeSuccess(AddInvoiceItem200),
|
|
1525
|
+
orElse: unexpectedStatus
|
|
1526
|
+
}))
|
|
1527
|
+
),
|
|
1528
|
+
"importTimeEntriesAndExpenses": (workspaceId, invoiceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/invoices/${invoiceId}/items/import`).pipe(
|
|
1529
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1530
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1531
|
+
"2xx": decodeSuccess(ImportTimeEntriesAndExpenses200),
|
|
1532
|
+
orElse: unexpectedStatus
|
|
1533
|
+
}))
|
|
1534
|
+
),
|
|
1535
|
+
"removeInvoiceItem": (workspaceId, invoiceId, order, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/invoices/${invoiceId}/items/${order}`).pipe(
|
|
1536
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1537
|
+
"2xx": decodeSuccess(RemoveInvoiceItem200),
|
|
1538
|
+
orElse: unexpectedStatus
|
|
1539
|
+
}))
|
|
1540
|
+
),
|
|
1541
|
+
"getPaymentsForInvoice": (workspaceId, invoiceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/invoices/${invoiceId}/payments`).pipe(
|
|
1542
|
+
HttpClientRequest.setUrlParams({ "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any }),
|
|
1543
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1544
|
+
"2xx": decodeSuccess(GetPaymentsForInvoice200),
|
|
1545
|
+
orElse: unexpectedStatus
|
|
1546
|
+
}))
|
|
1547
|
+
),
|
|
1548
|
+
"createInvoicePayment": (workspaceId, invoiceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/invoices/${invoiceId}/payments`).pipe(
|
|
1549
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1550
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1551
|
+
"2xx": decodeSuccess(CreateInvoicePayment201),
|
|
1552
|
+
orElse: unexpectedStatus
|
|
1553
|
+
}))
|
|
1554
|
+
),
|
|
1555
|
+
"deletePaymentById": (workspaceId, invoiceId, paymentId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/invoices/${invoiceId}/payments/${paymentId}`).pipe(
|
|
1556
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1557
|
+
"2xx": decodeSuccess(DeletePaymentById200),
|
|
1558
|
+
orElse: unexpectedStatus
|
|
1559
|
+
}))
|
|
1560
|
+
),
|
|
1561
|
+
"changeInvoiceStatus": (workspaceId, invoiceId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/invoices/${invoiceId}/status`).pipe(
|
|
1562
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1563
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1564
|
+
"200": () => Effect.void,
|
|
1565
|
+
orElse: unexpectedStatus
|
|
1566
|
+
}))
|
|
1567
|
+
),
|
|
1568
|
+
"addLimitedUsers": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/limited-users`).pipe(
|
|
1569
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1570
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1571
|
+
orElse: unexpectedStatus
|
|
1572
|
+
}))
|
|
1573
|
+
),
|
|
1574
|
+
"getMemberProfile": (workspaceId, userId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/member-profile/${userId}`).pipe(
|
|
1575
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1576
|
+
"2xx": decodeSuccess(GetMemberProfile200),
|
|
1577
|
+
orElse: unexpectedStatus
|
|
1578
|
+
}))
|
|
1579
|
+
),
|
|
1580
|
+
"updateMemberProfileWithAdditionalData": (workspaceId, userId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/member-profile/${userId}`).pipe(
|
|
1581
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1582
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1583
|
+
"2xx": decodeSuccess(UpdateMemberProfileWithAdditionalData200),
|
|
1584
|
+
orElse: unexpectedStatus
|
|
1585
|
+
}))
|
|
1586
|
+
),
|
|
1587
|
+
"getProjects": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/projects`).pipe(
|
|
1588
|
+
HttpClientRequest.setUrlParams({ "name": options?.params?.["name"] as any, "strict-name-search": options?.params?.["strict-name-search"] as any, "archived": options?.params?.["archived"] as any, "billable": options?.params?.["billable"] as any, "clients": options?.params?.["clients"] as any, "contains-client": options?.params?.["contains-client"] as any, "client-status": options?.params?.["client-status"] as any, "users": options?.params?.["users"] as any, "contains-user": options?.params?.["contains-user"] as any, "user-status": options?.params?.["user-status"] as any, "is-template": options?.params?.["is-template"] as any, "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any, "hydrated": options?.params?.["hydrated"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "access": options?.params?.["access"] as any, "expense-limit": options?.params?.["expense-limit"] as any, "expense-date": options?.params?.["expense-date"] as any, "userGroups": options?.params?.["userGroups"] as any, "contains-group": options?.params?.["contains-group"] as any }),
|
|
1589
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1590
|
+
"2xx": decodeSuccess(GetProjects200),
|
|
1591
|
+
orElse: unexpectedStatus
|
|
1592
|
+
}))
|
|
1593
|
+
),
|
|
1594
|
+
"createNewProject": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/projects`).pipe(
|
|
1595
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1596
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1597
|
+
"2xx": decodeSuccess(CreateNewProject201),
|
|
1598
|
+
orElse: unexpectedStatus
|
|
1599
|
+
}))
|
|
1600
|
+
),
|
|
1601
|
+
"createProjectFromTemplate": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/projects/from-template`).pipe(
|
|
1602
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1603
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1604
|
+
"2xx": decodeSuccess(CreateProjectFromTemplate200),
|
|
1605
|
+
orElse: unexpectedStatus
|
|
1606
|
+
}))
|
|
1607
|
+
),
|
|
1608
|
+
"getProject": (workspaceId, projectId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/projects/${projectId}`).pipe(
|
|
1609
|
+
HttpClientRequest.setUrlParams({ "hydrated": options?.params?.["hydrated"] as any, "custom-field-entity-type": options?.params?.["custom-field-entity-type"] as any, "expense-limit": options?.params?.["expense-limit"] as any, "expense-date": options?.params?.["expense-date"] as any }),
|
|
1610
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1611
|
+
"2xx": decodeSuccess(GetProject200),
|
|
1612
|
+
orElse: unexpectedStatus
|
|
1613
|
+
}))
|
|
1614
|
+
),
|
|
1615
|
+
"updateProject": (workspaceId, projectId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/projects/${projectId}`).pipe(
|
|
1616
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1617
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1618
|
+
"2xx": decodeSuccess(UpdateProject200),
|
|
1619
|
+
orElse: unexpectedStatus
|
|
1620
|
+
}))
|
|
1621
|
+
),
|
|
1622
|
+
"deleteProject": (workspaceId, projectId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/projects/${projectId}`).pipe(
|
|
1623
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1624
|
+
"2xx": decodeSuccess(DeleteProject200),
|
|
1625
|
+
orElse: unexpectedStatus
|
|
1626
|
+
}))
|
|
1627
|
+
),
|
|
1628
|
+
"getCustomFieldsOfProject": (workspaceId, projectId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/projects/${projectId}/custom-fields`).pipe(
|
|
1629
|
+
HttpClientRequest.setUrlParams({ "status": options?.params?.["status"] as any, "entity-type": options?.params?.["entity-type"] as any }),
|
|
1630
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1631
|
+
"2xx": decodeSuccess(GetCustomFieldsOfProject200),
|
|
1632
|
+
orElse: unexpectedStatus
|
|
1633
|
+
}))
|
|
1634
|
+
),
|
|
1635
|
+
"removeDefaultValueOfProject": (workspaceId, projectId, customFieldId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/projects/${projectId}/custom-fields/${customFieldId}`).pipe(
|
|
1636
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1637
|
+
"2xx": decodeSuccess(RemoveDefaultValueOfProject200),
|
|
1638
|
+
orElse: unexpectedStatus
|
|
1639
|
+
}))
|
|
1640
|
+
),
|
|
1641
|
+
"editProjectCustomFieldDefaultValue": (workspaceId, projectId, customFieldId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/projects/${projectId}/custom-fields/${customFieldId}`).pipe(
|
|
1642
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1643
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1644
|
+
"2xx": decodeSuccess(EditProjectCustomFieldDefaultValue200),
|
|
1645
|
+
orElse: unexpectedStatus
|
|
1646
|
+
}))
|
|
1647
|
+
),
|
|
1648
|
+
"updateEstimate": (workspaceId, projectId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/projects/${projectId}/estimate`).pipe(
|
|
1649
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1650
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1651
|
+
"2xx": decodeSuccess(UpdateEstimate200),
|
|
1652
|
+
orElse: unexpectedStatus
|
|
1653
|
+
}))
|
|
1654
|
+
),
|
|
1655
|
+
"addUsersToProject": (workspaceId, projectId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/projects/${projectId}/memberships`).pipe(
|
|
1656
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1657
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1658
|
+
orElse: unexpectedStatus
|
|
1659
|
+
}))
|
|
1660
|
+
),
|
|
1661
|
+
"updateMemberships": (workspaceId, projectId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/projects/${projectId}/memberships`).pipe(
|
|
1662
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1663
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1664
|
+
"2xx": decodeSuccess(UpdateMemberships200),
|
|
1665
|
+
orElse: unexpectedStatus
|
|
1666
|
+
}))
|
|
1667
|
+
),
|
|
1668
|
+
"getTasks": (workspaceId, projectId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/projects/${projectId}/tasks`).pipe(
|
|
1669
|
+
HttpClientRequest.setUrlParams({ "name": options?.params?.["name"] as any, "strict-name-search": options?.params?.["strict-name-search"] as any, "is-active": options?.params?.["is-active"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any }),
|
|
1670
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1671
|
+
"2xx": decodeSuccess(GetTasks200),
|
|
1672
|
+
orElse: unexpectedStatus
|
|
1673
|
+
}))
|
|
1674
|
+
),
|
|
1675
|
+
"createTask": (workspaceId, projectId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/projects/${projectId}/tasks`).pipe(
|
|
1676
|
+
HttpClientRequest.setUrlParams({ "contains-assignee": options.params?.["contains-assignee"] as any }),
|
|
1677
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1678
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1679
|
+
"2xx": decodeSuccess(CreateTask201),
|
|
1680
|
+
orElse: unexpectedStatus
|
|
1681
|
+
}))
|
|
1682
|
+
),
|
|
1683
|
+
"setTaskCostRate": (workspaceId, projectId, id, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/projects/${projectId}/tasks/${id}/cost-rate`).pipe(
|
|
1684
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1685
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1686
|
+
"2xx": decodeSuccess(SetTaskCostRate200),
|
|
1687
|
+
orElse: unexpectedStatus
|
|
1688
|
+
}))
|
|
1689
|
+
),
|
|
1690
|
+
"setTaskHourlyRate": (workspaceId, projectId, id, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/projects/${projectId}/tasks/${id}/hourly-rate`).pipe(
|
|
1691
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1692
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1693
|
+
"2xx": decodeSuccess(SetTaskHourlyRate200),
|
|
1694
|
+
orElse: unexpectedStatus
|
|
1695
|
+
}))
|
|
1696
|
+
),
|
|
1697
|
+
"getTask": (workspaceId, projectId, taskId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/projects/${projectId}/tasks/${taskId}`).pipe(
|
|
1698
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1699
|
+
"2xx": decodeSuccess(GetTask200),
|
|
1700
|
+
orElse: unexpectedStatus
|
|
1701
|
+
}))
|
|
1702
|
+
),
|
|
1703
|
+
"updateTask": (workspaceId, projectId, taskId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/projects/${projectId}/tasks/${taskId}`).pipe(
|
|
1704
|
+
HttpClientRequest.setUrlParams({ "contains-assignee": options.params?.["contains-assignee"] as any, "membership-status": options.params?.["membership-status"] as any }),
|
|
1705
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1706
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1707
|
+
"2xx": decodeSuccess(UpdateTask200),
|
|
1708
|
+
orElse: unexpectedStatus
|
|
1709
|
+
}))
|
|
1710
|
+
),
|
|
1711
|
+
"deleteTask": (workspaceId, projectId, taskId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/projects/${projectId}/tasks/${taskId}`).pipe(
|
|
1712
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1713
|
+
"2xx": decodeSuccess(DeleteTask200),
|
|
1714
|
+
orElse: unexpectedStatus
|
|
1715
|
+
}))
|
|
1716
|
+
),
|
|
1717
|
+
"updateIsProjectTemplate": (workspaceId, projectId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/projects/${projectId}/template`).pipe(
|
|
1718
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1719
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1720
|
+
"2xx": decodeSuccess(UpdateIsProjectTemplate200),
|
|
1721
|
+
orElse: unexpectedStatus
|
|
1722
|
+
}))
|
|
1723
|
+
),
|
|
1724
|
+
"addUsersCostRate": (workspaceId, projectId, userId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/projects/${projectId}/users/${userId}/cost-rate`).pipe(
|
|
1725
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1726
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1727
|
+
"2xx": decodeSuccess(AddUsersCostRate200),
|
|
1728
|
+
orElse: unexpectedStatus
|
|
1729
|
+
}))
|
|
1730
|
+
),
|
|
1731
|
+
"addUsersHourlyRate": (workspaceId, projectId, userId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/projects/${projectId}/users/${userId}/hourly-rate`).pipe(
|
|
1732
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1733
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1734
|
+
"2xx": decodeSuccess(AddUsersHourlyRate200),
|
|
1735
|
+
orElse: unexpectedStatus
|
|
1736
|
+
}))
|
|
1737
|
+
),
|
|
1738
|
+
"getAllAssignments": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/scheduling/assignments/all`).pipe(
|
|
1739
|
+
HttpClientRequest.setUrlParams({ "name": options.params["name"] as any, "start": options.params["start"] as any, "end": options.params["end"] as any, "sort-column": options.params["sort-column"] as any, "sort-order": options.params["sort-order"] as any, "page": options.params["page"] as any, "page-size": options.params["page-size"] as any }),
|
|
1740
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1741
|
+
"2xx": decodeSuccess(GetAllAssignments200),
|
|
1742
|
+
orElse: unexpectedStatus
|
|
1743
|
+
}))
|
|
1744
|
+
),
|
|
1745
|
+
"getProjectTotals": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/scheduling/assignments/projects/totals`).pipe(
|
|
1746
|
+
HttpClientRequest.setUrlParams({ "search": options.params["search"] as any, "start": options.params["start"] as any, "end": options.params["end"] as any, "page": options.params["page"] as any, "page-size": options.params["page-size"] as any }),
|
|
1747
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1748
|
+
"2xx": decodeSuccess(GetProjectTotals200),
|
|
1749
|
+
orElse: unexpectedStatus
|
|
1750
|
+
}))
|
|
1751
|
+
),
|
|
1752
|
+
"getFilteredProjectTotals": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/scheduling/assignments/projects/totals`).pipe(
|
|
1753
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1754
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1755
|
+
"2xx": decodeSuccess(GetFilteredProjectTotals200),
|
|
1756
|
+
orElse: unexpectedStatus
|
|
1757
|
+
}))
|
|
1758
|
+
),
|
|
1759
|
+
"getProjectTotalsForSingleProject": (workspaceId, projectId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/scheduling/assignments/projects/totals/${projectId}`).pipe(
|
|
1760
|
+
HttpClientRequest.setUrlParams({ "start": options.params["start"] as any, "end": options.params["end"] as any }),
|
|
1761
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1762
|
+
"2xx": decodeSuccess(GetProjectTotalsForSingleProject200),
|
|
1763
|
+
orElse: unexpectedStatus
|
|
1764
|
+
}))
|
|
1765
|
+
),
|
|
1766
|
+
"publishAssignments": (workspaceId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/scheduling/assignments/publish`).pipe(
|
|
1767
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1768
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1769
|
+
"200": () => Effect.void,
|
|
1770
|
+
orElse: unexpectedStatus
|
|
1771
|
+
}))
|
|
1772
|
+
),
|
|
1773
|
+
"createRecurring": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/scheduling/assignments/recurring`).pipe(
|
|
1774
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1775
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1776
|
+
"2xx": decodeSuccess(CreateRecurring201),
|
|
1777
|
+
orElse: unexpectedStatus
|
|
1778
|
+
}))
|
|
1779
|
+
),
|
|
1780
|
+
"deleteRRecurringAssignment": (workspaceId, assignmentId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/scheduling/assignments/recurring/${assignmentId}`).pipe(
|
|
1781
|
+
HttpClientRequest.setUrlParams({ "seriesUpdateOption": options?.params?.["seriesUpdateOption"] as any }),
|
|
1782
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1783
|
+
"2xx": decodeSuccess(DeleteRRecurringAssignment200),
|
|
1784
|
+
orElse: unexpectedStatus
|
|
1785
|
+
}))
|
|
1786
|
+
),
|
|
1787
|
+
"editRecurring": (workspaceId, assignmentId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/scheduling/assignments/recurring/${assignmentId}`).pipe(
|
|
1788
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1789
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1790
|
+
"2xx": decodeSuccess(EditRecurring200),
|
|
1791
|
+
orElse: unexpectedStatus
|
|
1792
|
+
}))
|
|
1793
|
+
),
|
|
1794
|
+
"editRecurringPeriod": (workspaceId, assignmentId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/scheduling/assignments/series/${assignmentId}`).pipe(
|
|
1795
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1796
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1797
|
+
"2xx": decodeSuccess(EditRecurringPeriod200),
|
|
1798
|
+
orElse: unexpectedStatus
|
|
1799
|
+
}))
|
|
1800
|
+
),
|
|
1801
|
+
"getUserTotals": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/scheduling/assignments/user-filter/totals`).pipe(
|
|
1802
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1803
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1804
|
+
"2xx": decodeSuccess(GetUserTotals200),
|
|
1805
|
+
orElse: unexpectedStatus
|
|
1806
|
+
}))
|
|
1807
|
+
),
|
|
1808
|
+
"getUserTotalsForSingleUser": (workspaceId, userId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/scheduling/assignments/users/${userId}/totals`).pipe(
|
|
1809
|
+
HttpClientRequest.setUrlParams({ "page": options.params["page"] as any, "page-size": options.params["page-size"] as any, "start": options.params["start"] as any, "end": options.params["end"] as any }),
|
|
1810
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1811
|
+
"2xx": decodeSuccess(GetUserTotalsForSingleUser200),
|
|
1812
|
+
orElse: unexpectedStatus
|
|
1813
|
+
}))
|
|
1814
|
+
),
|
|
1815
|
+
"copyAssignment": (workspaceId, assignmentId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/scheduling/assignments/${assignmentId}/copy`).pipe(
|
|
1816
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1817
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1818
|
+
"2xx": decodeSuccess(CopyAssignment200),
|
|
1819
|
+
orElse: unexpectedStatus
|
|
1820
|
+
}))
|
|
1821
|
+
),
|
|
1822
|
+
"getTags": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/tags`).pipe(
|
|
1823
|
+
HttpClientRequest.setUrlParams({ "name": options?.params?.["name"] as any, "strict-name-search": options?.params?.["strict-name-search"] as any, "excluded-ids": options?.params?.["excluded-ids"] as any, "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "archived": options?.params?.["archived"] as any }),
|
|
1824
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1825
|
+
"2xx": decodeSuccess(GetTags200),
|
|
1826
|
+
orElse: unexpectedStatus
|
|
1827
|
+
}))
|
|
1828
|
+
),
|
|
1829
|
+
"createNewTag": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/tags`).pipe(
|
|
1830
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1831
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1832
|
+
"2xx": decodeSuccess(CreateNewTag201),
|
|
1833
|
+
orElse: unexpectedStatus
|
|
1834
|
+
}))
|
|
1835
|
+
),
|
|
1836
|
+
"getTag": (workspaceId, id, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/tags/${id}`).pipe(
|
|
1837
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1838
|
+
"2xx": decodeSuccess(GetTag200),
|
|
1839
|
+
orElse: unexpectedStatus
|
|
1840
|
+
}))
|
|
1841
|
+
),
|
|
1842
|
+
"updateTag": (workspaceId, id, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/tags/${id}`).pipe(
|
|
1843
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1844
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1845
|
+
"2xx": decodeSuccess(UpdateTag200),
|
|
1846
|
+
orElse: unexpectedStatus
|
|
1847
|
+
}))
|
|
1848
|
+
),
|
|
1849
|
+
"deleteTag": (workspaceId, id, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/tags/${id}`).pipe(
|
|
1850
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1851
|
+
"2xx": decodeSuccess(DeleteTag200),
|
|
1852
|
+
orElse: unexpectedStatus
|
|
1853
|
+
}))
|
|
1854
|
+
),
|
|
1855
|
+
"getTemplates": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/templates`).pipe(
|
|
1856
|
+
HttpClientRequest.setUrlParams({ "name": options?.params?.["name"] as any, "cleansed": options?.params?.["cleansed"] as any, "hydrated": options?.params?.["hydrated"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any }),
|
|
1857
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1858
|
+
"2xx": decodeSuccess(GetTemplates200),
|
|
1859
|
+
orElse: unexpectedStatus
|
|
1860
|
+
}))
|
|
1861
|
+
),
|
|
1862
|
+
"createMany": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/templates`).pipe(
|
|
1863
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1864
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1865
|
+
"2xx": decodeSuccess(CreateMany200),
|
|
1866
|
+
orElse: unexpectedStatus
|
|
1867
|
+
}))
|
|
1868
|
+
),
|
|
1869
|
+
"getTemplate": (workspaceId, templateId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/templates/${templateId}`).pipe(
|
|
1870
|
+
HttpClientRequest.setUrlParams({ "cleansed": options?.params?.["cleansed"] as any, "hydrated": options?.params?.["hydrated"] as any }),
|
|
1871
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1872
|
+
"2xx": decodeSuccess(GetTemplate200),
|
|
1873
|
+
orElse: unexpectedStatus
|
|
1874
|
+
}))
|
|
1875
|
+
),
|
|
1876
|
+
"delete1": (workspaceId, templateId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/templates/${templateId}`).pipe(
|
|
1877
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1878
|
+
"2xx": decodeSuccess(Delete1200),
|
|
1879
|
+
orElse: unexpectedStatus
|
|
1880
|
+
}))
|
|
1881
|
+
),
|
|
1882
|
+
"update": (workspaceId, templateId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/templates/${templateId}`).pipe(
|
|
1883
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1884
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1885
|
+
"2xx": decodeSuccess(Update200),
|
|
1886
|
+
orElse: unexpectedStatus
|
|
1887
|
+
}))
|
|
1888
|
+
),
|
|
1889
|
+
"createTimeEntry": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/time-entries`).pipe(
|
|
1890
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1891
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1892
|
+
"2xx": decodeSuccess(CreateTimeEntry201),
|
|
1893
|
+
orElse: unexpectedStatus
|
|
1894
|
+
}))
|
|
1895
|
+
),
|
|
1896
|
+
"updateInvoicedStatus": (workspaceId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/time-entries/invoiced`).pipe(
|
|
1897
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1898
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1899
|
+
"200": () => Effect.void,
|
|
1900
|
+
orElse: unexpectedStatus
|
|
1901
|
+
}))
|
|
1902
|
+
),
|
|
1903
|
+
"getInProgressTimeEntries": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/time-entries/status/in-progress`).pipe(
|
|
1904
|
+
HttpClientRequest.setUrlParams({ "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any }),
|
|
1905
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1906
|
+
orElse: unexpectedStatus
|
|
1907
|
+
}))
|
|
1908
|
+
),
|
|
1909
|
+
"getTimeEntry": (workspaceId, id, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/time-entries/${id}`).pipe(
|
|
1910
|
+
HttpClientRequest.setUrlParams({ "hydrated": options?.params?.["hydrated"] as any }),
|
|
1911
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1912
|
+
"2xx": decodeSuccess(GetTimeEntry200),
|
|
1913
|
+
orElse: unexpectedStatus
|
|
1914
|
+
}))
|
|
1915
|
+
),
|
|
1916
|
+
"updateTimeEntry": (workspaceId, id, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/time-entries/${id}`).pipe(
|
|
1917
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1918
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1919
|
+
"2xx": decodeSuccess(UpdateTimeEntry200),
|
|
1920
|
+
orElse: unexpectedStatus
|
|
1921
|
+
}))
|
|
1922
|
+
),
|
|
1923
|
+
"deleteTimeEntry": (workspaceId, id, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/time-entries/${id}`).pipe(
|
|
1924
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1925
|
+
"204": () => Effect.void,
|
|
1926
|
+
orElse: unexpectedStatus
|
|
1927
|
+
}))
|
|
1928
|
+
),
|
|
1929
|
+
"getBalancesForPolicy": (workspaceId, policyId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/time-off/balance/policy/${policyId}`).pipe(
|
|
1930
|
+
HttpClientRequest.setUrlParams({ "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "sort": options?.params?.["sort"] as any, "sort-order": options?.params?.["sort-order"] as any }),
|
|
1931
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1932
|
+
orElse: unexpectedStatus
|
|
1933
|
+
}))
|
|
1934
|
+
),
|
|
1935
|
+
"updateBalance": (workspaceId, policyId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/time-off/balance/policy/${policyId}`).pipe(
|
|
1936
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1937
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1938
|
+
"204": () => Effect.void,
|
|
1939
|
+
orElse: unexpectedStatus
|
|
1940
|
+
}))
|
|
1941
|
+
),
|
|
1942
|
+
"getBalancesForUser": (workspaceId, userId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/time-off/balance/user/${userId}`).pipe(
|
|
1943
|
+
HttpClientRequest.setUrlParams({ "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "sort": options?.params?.["sort"] as any, "sort-order": options?.params?.["sort-order"] as any }),
|
|
1944
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1945
|
+
orElse: unexpectedStatus
|
|
1946
|
+
}))
|
|
1947
|
+
),
|
|
1948
|
+
"findPoliciesForWorkspace": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/time-off/policies`).pipe(
|
|
1949
|
+
HttpClientRequest.setUrlParams({ "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "name": options?.params?.["name"] as any, "status": options?.params?.["status"] as any, "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any }),
|
|
1950
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1951
|
+
"2xx": decodeSuccess(FindPoliciesForWorkspace200),
|
|
1952
|
+
orElse: unexpectedStatus
|
|
1953
|
+
}))
|
|
1954
|
+
),
|
|
1955
|
+
"createPolicy": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/time-off/policies`).pipe(
|
|
1956
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1957
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1958
|
+
"2xx": decodeSuccess(CreatePolicy201),
|
|
1959
|
+
orElse: unexpectedStatus
|
|
1960
|
+
}))
|
|
1961
|
+
),
|
|
1962
|
+
"getPolicy": (workspaceId, id, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/time-off/policies/${id}`).pipe(
|
|
1963
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1964
|
+
"2xx": decodeSuccess(GetPolicy200),
|
|
1965
|
+
orElse: unexpectedStatus
|
|
1966
|
+
}))
|
|
1967
|
+
),
|
|
1968
|
+
"updatePolicy": (workspaceId, id, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/time-off/policies/${id}`).pipe(
|
|
1969
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1970
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1971
|
+
"2xx": decodeSuccess(UpdatePolicy200),
|
|
1972
|
+
orElse: unexpectedStatus
|
|
1973
|
+
}))
|
|
1974
|
+
),
|
|
1975
|
+
"deletePolicy": (workspaceId, id, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/time-off/policies/${id}`).pipe(
|
|
1976
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1977
|
+
"200": () => Effect.void,
|
|
1978
|
+
orElse: unexpectedStatus
|
|
1979
|
+
}))
|
|
1980
|
+
),
|
|
1981
|
+
"updatePolicyStatus": (workspaceId, id, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/time-off/policies/${id}`).pipe(
|
|
1982
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1983
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1984
|
+
"2xx": decodeSuccess(UpdatePolicyStatus200),
|
|
1985
|
+
orElse: unexpectedStatus
|
|
1986
|
+
}))
|
|
1987
|
+
),
|
|
1988
|
+
"createTimeOffRequest": (workspaceId, policyId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/time-off/policies/${policyId}/requests`).pipe(
|
|
1989
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
1990
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
1991
|
+
"2xx": decodeSuccess(CreateTimeOffRequest200),
|
|
1992
|
+
orElse: unexpectedStatus
|
|
1993
|
+
}))
|
|
1994
|
+
),
|
|
1995
|
+
"deleteTimeOffRequest": (workspaceId, policyId, requestId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/time-off/policies/${policyId}/requests/${requestId}`).pipe(
|
|
1996
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
1997
|
+
"2xx": decodeSuccess(DeleteTimeOffRequest200),
|
|
1998
|
+
orElse: unexpectedStatus
|
|
1999
|
+
}))
|
|
2000
|
+
),
|
|
2001
|
+
"changeTimeOffRequestStatus": (workspaceId, policyId, requestId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/time-off/policies/${policyId}/requests/${requestId}`).pipe(
|
|
2002
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2003
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2004
|
+
"2xx": decodeSuccess(ChangeTimeOffRequestStatus200),
|
|
2005
|
+
orElse: unexpectedStatus
|
|
2006
|
+
}))
|
|
2007
|
+
),
|
|
2008
|
+
"createTimeOffRequestForOther": (workspaceId, policyId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/time-off/policies/${policyId}/users/${userId}/requests`).pipe(
|
|
2009
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2010
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2011
|
+
"2xx": decodeSuccess(CreateTimeOffRequestForOther200),
|
|
2012
|
+
orElse: unexpectedStatus
|
|
2013
|
+
}))
|
|
2014
|
+
),
|
|
2015
|
+
"getTimeOffRequest": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/time-off/requests`).pipe(
|
|
2016
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2017
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2018
|
+
"2xx": decodeSuccess(GetTimeOffRequest200),
|
|
2019
|
+
orElse: unexpectedStatus
|
|
2020
|
+
}))
|
|
2021
|
+
),
|
|
2022
|
+
"getUserGroups": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/user-groups`).pipe(
|
|
2023
|
+
HttpClientRequest.setUrlParams({ "project-id": options?.params?.["project-id"] as any, "name": options?.params?.["name"] as any, "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "includeTeamManagers": options?.params?.["includeTeamManagers"] as any }),
|
|
2024
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2025
|
+
"2xx": decodeSuccess(GetUserGroups200),
|
|
2026
|
+
orElse: unexpectedStatus
|
|
2027
|
+
}))
|
|
2028
|
+
),
|
|
2029
|
+
"createUserGroup": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/user-groups`).pipe(
|
|
2030
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2031
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2032
|
+
"2xx": decodeSuccess(CreateUserGroup201),
|
|
2033
|
+
orElse: unexpectedStatus
|
|
2034
|
+
}))
|
|
2035
|
+
),
|
|
2036
|
+
"updateUserGroup": (workspaceId, id, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/user-groups/${id}`).pipe(
|
|
2037
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2038
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2039
|
+
"2xx": decodeSuccess(UpdateUserGroup200),
|
|
2040
|
+
orElse: unexpectedStatus
|
|
2041
|
+
}))
|
|
2042
|
+
),
|
|
2043
|
+
"deleteUserGroup": (workspaceId, id, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/user-groups/${id}`).pipe(
|
|
2044
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2045
|
+
"2xx": decodeSuccess(DeleteUserGroup200),
|
|
2046
|
+
orElse: unexpectedStatus
|
|
2047
|
+
}))
|
|
2048
|
+
),
|
|
2049
|
+
"addUser": (workspaceId, userGroupId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/user-groups/${userGroupId}/users`).pipe(
|
|
2050
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2051
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2052
|
+
"2xx": decodeSuccess(AddUser200),
|
|
2053
|
+
orElse: unexpectedStatus
|
|
2054
|
+
}))
|
|
2055
|
+
),
|
|
2056
|
+
"deleteUser": (workspaceId, userGroupId, userId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/user-groups/${userGroupId}/users/${userId}`).pipe(
|
|
2057
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2058
|
+
"2xx": decodeSuccess(DeleteUser200),
|
|
2059
|
+
orElse: unexpectedStatus
|
|
2060
|
+
}))
|
|
2061
|
+
),
|
|
2062
|
+
"getTimeEntries": (workspaceId, userId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries`).pipe(
|
|
2063
|
+
HttpClientRequest.setUrlParams({ "description": options?.params?.["description"] as any, "start": options?.params?.["start"] as any, "end": options?.params?.["end"] as any, "project": options?.params?.["project"] as any, "task": options?.params?.["task"] as any, "tags": options?.params?.["tags"] as any, "project-required": options?.params?.["project-required"] as any, "task-required": options?.params?.["task-required"] as any, "hydrated": options?.params?.["hydrated"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any, "in-progress": options?.params?.["in-progress"] as any, "get-week-before": options?.params?.["get-week-before"] as any }),
|
|
2064
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2065
|
+
"2xx": decodeSuccess(GetTimeEntries200),
|
|
2066
|
+
orElse: unexpectedStatus
|
|
2067
|
+
}))
|
|
2068
|
+
),
|
|
2069
|
+
"replaceMany": (workspaceId, userId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries`).pipe(
|
|
2070
|
+
HttpClientRequest.setUrlParams({ "hydrated": options.params?.["hydrated"] as any }),
|
|
2071
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2072
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2073
|
+
"2xx": decodeSuccess(ReplaceMany200),
|
|
2074
|
+
orElse: unexpectedStatus
|
|
2075
|
+
}))
|
|
2076
|
+
),
|
|
2077
|
+
"createForOthers": (workspaceId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries`).pipe(
|
|
2078
|
+
HttpClientRequest.setUrlParams({ "from-entry": options.params?.["from-entry"] as any }),
|
|
2079
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2080
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2081
|
+
"2xx": decodeSuccess(CreateForOthers201),
|
|
2082
|
+
orElse: unexpectedStatus
|
|
2083
|
+
}))
|
|
2084
|
+
),
|
|
2085
|
+
"deleteMany": (workspaceId, userId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries`).pipe(
|
|
2086
|
+
HttpClientRequest.setUrlParams({ "time-entry-ids": options.params["time-entry-ids"] as any }),
|
|
2087
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2088
|
+
"2xx": decodeSuccess(DeleteMany200),
|
|
2089
|
+
orElse: unexpectedStatus
|
|
2090
|
+
}))
|
|
2091
|
+
),
|
|
2092
|
+
"stopRunningTimeEntry": (workspaceId, userId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries`).pipe(
|
|
2093
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2094
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2095
|
+
"2xx": decodeSuccess(StopRunningTimeEntry200),
|
|
2096
|
+
orElse: unexpectedStatus
|
|
2097
|
+
}))
|
|
2098
|
+
),
|
|
2099
|
+
"duplicateTimeEntry": (workspaceId, userId, id, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/user/${userId}/time-entries/${id}/duplicate`).pipe(
|
|
2100
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2101
|
+
"2xx": decodeSuccess(DuplicateTimeEntry201),
|
|
2102
|
+
orElse: unexpectedStatus
|
|
2103
|
+
}))
|
|
2104
|
+
),
|
|
2105
|
+
"getUsersOfWorkspace": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/users`).pipe(
|
|
2106
|
+
HttpClientRequest.setUrlParams({ "email": options.params["email"] as any, "project-id": options.params["project-id"] as any, "status": options.params["status"] as any, "account-statuses": options.params["account-statuses"] as any, "name": options.params["name"] as any, "sort-column": options.params["sort-column"] as any, "sort-order": options.params["sort-order"] as any, "page": options.params["page"] as any, "page-size": options.params["page-size"] as any, "memberships": options.params["memberships"] as any, "include-roles": options.params["include-roles"] as any }),
|
|
2107
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2108
|
+
"2xx": decodeSuccess(GetUsersOfWorkspace200),
|
|
2109
|
+
orElse: unexpectedStatus
|
|
2110
|
+
}))
|
|
2111
|
+
),
|
|
2112
|
+
"addUsers": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/users`).pipe(
|
|
2113
|
+
HttpClientRequest.setUrlParams({ "send-email": options.params["send-email"] as any }),
|
|
2114
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2115
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2116
|
+
"2xx": decodeSuccess(AddUsers200),
|
|
2117
|
+
orElse: unexpectedStatus
|
|
2118
|
+
}))
|
|
2119
|
+
),
|
|
2120
|
+
"filterUsersOfWorkspace": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/users/info`).pipe(
|
|
2121
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2122
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2123
|
+
"2xx": decodeSuccess(FilterUsersOfWorkspace200),
|
|
2124
|
+
orElse: unexpectedStatus
|
|
2125
|
+
}))
|
|
2126
|
+
),
|
|
2127
|
+
"updateUserStatus": (workspaceId, userId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/users/${userId}`).pipe(
|
|
2128
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2129
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2130
|
+
"2xx": decodeSuccess(UpdateUserStatus200),
|
|
2131
|
+
orElse: unexpectedStatus
|
|
2132
|
+
}))
|
|
2133
|
+
),
|
|
2134
|
+
"removeMember": (workspaceId, userId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/users/${userId}`).pipe(
|
|
2135
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2136
|
+
"2xx": decodeSuccess(RemoveMember200),
|
|
2137
|
+
orElse: unexpectedStatus
|
|
2138
|
+
}))
|
|
2139
|
+
),
|
|
2140
|
+
"setCostRateForUser": (workspaceId, userId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/users/${userId}/cost-rate`).pipe(
|
|
2141
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2142
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2143
|
+
"2xx": decodeSuccess(SetCostRateForUser200),
|
|
2144
|
+
orElse: unexpectedStatus
|
|
2145
|
+
}))
|
|
2146
|
+
),
|
|
2147
|
+
"upsertUserCustomFieldValue": (workspaceId, userId, customFieldId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/users/${userId}/custom-field/${customFieldId}/value`).pipe(
|
|
2148
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2149
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2150
|
+
"2xx": decodeSuccess(UpsertUserCustomFieldValue201),
|
|
2151
|
+
orElse: unexpectedStatus
|
|
2152
|
+
}))
|
|
2153
|
+
),
|
|
2154
|
+
"setHourlyRateForUser": (workspaceId, userId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/users/${userId}/hourly-rate`).pipe(
|
|
2155
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2156
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2157
|
+
"2xx": decodeSuccess(SetHourlyRateForUser200),
|
|
2158
|
+
orElse: unexpectedStatus
|
|
2159
|
+
}))
|
|
2160
|
+
),
|
|
2161
|
+
"getManagersOfUser": (workspaceId, userId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/users/${userId}/managers`).pipe(
|
|
2162
|
+
HttpClientRequest.setUrlParams({ "sort-column": options?.params?.["sort-column"] as any, "sort-order": options?.params?.["sort-order"] as any, "page": options?.params?.["page"] as any, "page-size": options?.params?.["page-size"] as any }),
|
|
2163
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2164
|
+
"2xx": decodeSuccess(GetManagersOfUser200),
|
|
2165
|
+
orElse: unexpectedStatus
|
|
2166
|
+
}))
|
|
2167
|
+
),
|
|
2168
|
+
"createUserRole": (workspaceId, userId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/users/${userId}/roles`).pipe(
|
|
2169
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2170
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2171
|
+
"2xx": decodeSuccess(CreateUserRole201),
|
|
2172
|
+
orElse: unexpectedStatus
|
|
2173
|
+
}))
|
|
2174
|
+
),
|
|
2175
|
+
"deleteUserRole": (workspaceId, userId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/users/${userId}/roles`).pipe(
|
|
2176
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2177
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2178
|
+
"204": () => Effect.void,
|
|
2179
|
+
orElse: unexpectedStatus
|
|
2180
|
+
}))
|
|
2181
|
+
),
|
|
2182
|
+
"getWebhooks": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/webhooks`).pipe(
|
|
2183
|
+
HttpClientRequest.setUrlParams({ "type": options?.params?.["type"] as any }),
|
|
2184
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2185
|
+
"2xx": decodeSuccess(GetWebhooks200),
|
|
2186
|
+
orElse: unexpectedStatus
|
|
2187
|
+
}))
|
|
2188
|
+
),
|
|
2189
|
+
"createWebhook": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/webhooks`).pipe(
|
|
2190
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2191
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2192
|
+
"2xx": decodeSuccess(CreateWebhook201),
|
|
2193
|
+
orElse: unexpectedStatus
|
|
2194
|
+
}))
|
|
2195
|
+
),
|
|
2196
|
+
"getWebhook": (workspaceId, webhookId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/webhooks/${webhookId}`).pipe(
|
|
2197
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2198
|
+
"2xx": decodeSuccess(GetWebhook200),
|
|
2199
|
+
orElse: unexpectedStatus
|
|
2200
|
+
}))
|
|
2201
|
+
),
|
|
2202
|
+
"updateWebhook": (workspaceId, webhookId, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/webhooks/${webhookId}`).pipe(
|
|
2203
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2204
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2205
|
+
"2xx": decodeSuccess(UpdateWebhook200),
|
|
2206
|
+
orElse: unexpectedStatus
|
|
2207
|
+
}))
|
|
2208
|
+
),
|
|
2209
|
+
"deleteWebhook": (workspaceId, webhookId, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/webhooks/${webhookId}`).pipe(
|
|
2210
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2211
|
+
"200": () => Effect.void,
|
|
2212
|
+
orElse: unexpectedStatus
|
|
2213
|
+
}))
|
|
2214
|
+
),
|
|
2215
|
+
"getLogsForWebhook": (workspaceId, webhookId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/webhooks/${webhookId}/logs`).pipe(
|
|
2216
|
+
HttpClientRequest.setUrlParams({ "page": options.params?.["page"] as any, "size": options.params?.["size"] as any }),
|
|
2217
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2218
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2219
|
+
"2xx": decodeSuccess(GetLogsForWebhook200),
|
|
2220
|
+
orElse: unexpectedStatus
|
|
2221
|
+
}))
|
|
2222
|
+
),
|
|
2223
|
+
"getWebhookEventStatusesWithLatestLog": (workspaceId, webhookId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/webhooks/${webhookId}/statuses`).pipe(
|
|
2224
|
+
HttpClientRequest.setUrlParams({ "page": options?.params?.["page"] as any, "size": options?.params?.["size"] as any, "statuses": options?.params?.["statuses"] as any }),
|
|
2225
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2226
|
+
"2xx": decodeSuccess(GetWebhookEventStatusesWithLatestLog200),
|
|
2227
|
+
orElse: unexpectedStatus
|
|
2228
|
+
}))
|
|
2229
|
+
),
|
|
2230
|
+
"generateNewToken": (workspaceId, webhookId, options) => HttpClientRequest.patch(`/v1/workspaces/${workspaceId}/webhooks/${webhookId}/token`).pipe(
|
|
2231
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2232
|
+
"2xx": decodeSuccess(GenerateNewToken200),
|
|
2233
|
+
orElse: unexpectedStatus
|
|
2234
|
+
}))
|
|
2235
|
+
),
|
|
2236
|
+
"generateSharedReportV1": (id, options) => HttpClientRequest.get(`/v1/shared-reports/${id}`).pipe(
|
|
2237
|
+
HttpClientRequest.setUrlParams({ "dateRangeStart": options?.params?.["dateRangeStart"] as any, "dateRangeEnd": options?.params?.["dateRangeEnd"] as any, "sortOrder": options?.params?.["sortOrder"] as any, "sortColumn": options?.params?.["sortColumn"] as any, "exportType": options?.params?.["exportType"] as any, "page": options?.params?.["page"] as any, "pageSize": options?.params?.["pageSize"] as any }),
|
|
2238
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2239
|
+
orElse: unexpectedStatus
|
|
2240
|
+
}))
|
|
2241
|
+
),
|
|
2242
|
+
"generateAttendanceReport": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/reports/attendance`).pipe(
|
|
2243
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2244
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2245
|
+
orElse: unexpectedStatus
|
|
2246
|
+
}))
|
|
2247
|
+
),
|
|
2248
|
+
"generateDetailedReport": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/reports/detailed`).pipe(
|
|
2249
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2250
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2251
|
+
orElse: unexpectedStatus
|
|
2252
|
+
}))
|
|
2253
|
+
),
|
|
2254
|
+
"generateDetailedReportV1": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/reports/expenses/detailed`).pipe(
|
|
2255
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2256
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2257
|
+
"2xx": decodeSuccess(GenerateDetailedReportV1200),
|
|
2258
|
+
orElse: unexpectedStatus
|
|
2259
|
+
}))
|
|
2260
|
+
),
|
|
2261
|
+
"generateSummaryReport": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/reports/summary`).pipe(
|
|
2262
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2263
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2264
|
+
orElse: unexpectedStatus
|
|
2265
|
+
}))
|
|
2266
|
+
),
|
|
2267
|
+
"generateWeeklyReport": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/reports/weekly`).pipe(
|
|
2268
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2269
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2270
|
+
orElse: unexpectedStatus
|
|
2271
|
+
}))
|
|
2272
|
+
),
|
|
2273
|
+
"getSharedReportsV1": (workspaceId, options) => HttpClientRequest.get(`/v1/workspaces/${workspaceId}/shared-reports`).pipe(
|
|
2274
|
+
HttpClientRequest.setUrlParams({ "page": options?.params?.["page"] as any, "pageSize": options?.params?.["pageSize"] as any, "sharedReportsFilter": options?.params?.["sharedReportsFilter"] as any }),
|
|
2275
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2276
|
+
orElse: unexpectedStatus
|
|
2277
|
+
}))
|
|
2278
|
+
),
|
|
2279
|
+
"saveSharedReportV1": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/shared-reports`).pipe(
|
|
2280
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2281
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2282
|
+
orElse: unexpectedStatus
|
|
2283
|
+
}))
|
|
2284
|
+
),
|
|
2285
|
+
"updateSharedReportV1": (workspaceId, id, options) => HttpClientRequest.put(`/v1/workspaces/${workspaceId}/shared-reports/${id}`).pipe(
|
|
2286
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2287
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2288
|
+
orElse: unexpectedStatus
|
|
2289
|
+
}))
|
|
2290
|
+
),
|
|
2291
|
+
"deleteSharedReportV1": (workspaceId, id, options) => HttpClientRequest.delete(`/v1/workspaces/${workspaceId}/shared-reports/${id}`).pipe(
|
|
2292
|
+
withResponse(options?.config)(HttpClientResponse.matchStatus({
|
|
2293
|
+
"204": () => Effect.void,
|
|
2294
|
+
orElse: unexpectedStatus
|
|
2295
|
+
}))
|
|
2296
|
+
),
|
|
2297
|
+
"getAuditLogs": (workspaceId, options) => HttpClientRequest.post(`/v1/workspaces/${workspaceId}/audit-log`).pipe(
|
|
2298
|
+
HttpClientRequest.bodyJsonUnsafe(options.payload),
|
|
2299
|
+
withResponse(options.config)(HttpClientResponse.matchStatus({
|
|
2300
|
+
"2xx": decodeSuccess(GetAuditLogs200),
|
|
2301
|
+
orElse: unexpectedStatus
|
|
2302
|
+
}))
|
|
2303
|
+
)
|
|
2304
|
+
}
|
|
2305
|
+
}
|
|
2306
|
+
|
|
2307
|
+
export interface ClockifyApi {
|
|
2308
|
+
readonly httpClient: HttpClient.HttpClient
|
|
2309
|
+
/**
|
|
2310
|
+
* Add a photo
|
|
2311
|
+
*/
|
|
2312
|
+
readonly "uploadImage": <Config extends OperationConfig>(options: { readonly payload: typeof UploadImageRequestFormData.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UploadImage200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2313
|
+
/**
|
|
2314
|
+
* Get currently logged-in user's info
|
|
2315
|
+
*/
|
|
2316
|
+
readonly "getLoggedUser": <Config extends OperationConfig>(options: { readonly params?: typeof GetLoggedUserParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetLoggedUser200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2317
|
+
/**
|
|
2318
|
+
* Get all my workspaces
|
|
2319
|
+
*/
|
|
2320
|
+
readonly "getWorkspacesOfUser": <Config extends OperationConfig>(options: { readonly params?: typeof GetWorkspacesOfUserParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetWorkspacesOfUser200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2321
|
+
/**
|
|
2322
|
+
* Add a workspace
|
|
2323
|
+
*/
|
|
2324
|
+
readonly "createWorkspace": <Config extends OperationConfig>(options: { readonly payload: typeof CreateWorkspaceRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateWorkspace201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2325
|
+
/**
|
|
2326
|
+
* Get workspace info
|
|
2327
|
+
*/
|
|
2328
|
+
readonly "getWorkspaceOfUser": <Config extends OperationConfig>(workspaceId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetWorkspaceOfUser200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2329
|
+
/**
|
|
2330
|
+
* Get all webhooks for addon on a workspace
|
|
2331
|
+
*/
|
|
2332
|
+
readonly "getAddonWebhooks": <Config extends OperationConfig>(workspaceId: string, addonId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetAddonWebhooks200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2333
|
+
/**
|
|
2334
|
+
* Get approval requests
|
|
2335
|
+
*/
|
|
2336
|
+
readonly "getApprovalRequests": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetApprovalRequestsParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetApprovalRequests200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2337
|
+
/**
|
|
2338
|
+
* Submit approval request
|
|
2339
|
+
*/
|
|
2340
|
+
readonly "createApprrovalRequest": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateApprrovalRequestRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateApprrovalRequest201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2341
|
+
/**
|
|
2342
|
+
* Submit non pending/approved entries/expenses for approval to an existing approval request
|
|
2343
|
+
*/
|
|
2344
|
+
readonly "resubmitApprovalRequest": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof ResubmitApprovalRequestRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2345
|
+
/**
|
|
2346
|
+
* Submit an approval request for a user
|
|
2347
|
+
*/
|
|
2348
|
+
readonly "createApprovalForOther": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly payload: typeof CreateApprovalForOtherRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateApprovalForOther201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2349
|
+
/**
|
|
2350
|
+
* Re-submit rejected/withdrawn entries/expenses for an approval of a user
|
|
2351
|
+
*/
|
|
2352
|
+
readonly "resubmitApprovalRequestForOther": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly payload: typeof ResubmitApprovalRequestForOtherRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2353
|
+
/**
|
|
2354
|
+
* Update an approval request
|
|
2355
|
+
*/
|
|
2356
|
+
readonly "updateApprovalStatus": <Config extends OperationConfig>(workspaceId: string, approvalRequestId: string, options: { readonly payload: typeof UpdateApprovalStatusRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateApprovalStatus200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2357
|
+
/**
|
|
2358
|
+
* Find clients on a workspace
|
|
2359
|
+
*/
|
|
2360
|
+
readonly "getClients": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetClientsParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetClients200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2361
|
+
/**
|
|
2362
|
+
* Add a new client
|
|
2363
|
+
*/
|
|
2364
|
+
readonly "createClient": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateClientRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateClient201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2365
|
+
/**
|
|
2366
|
+
* Get a client by ID
|
|
2367
|
+
*/
|
|
2368
|
+
readonly "getClient": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetClient200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2369
|
+
/**
|
|
2370
|
+
* Update a client
|
|
2371
|
+
*/
|
|
2372
|
+
readonly "updateClient": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly params?: typeof UpdateClientParams.Encoded | undefined; readonly payload: typeof UpdateClientRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateClient200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2373
|
+
/**
|
|
2374
|
+
* Delete a client
|
|
2375
|
+
*/
|
|
2376
|
+
readonly "deleteClient": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof DeleteClient200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2377
|
+
/**
|
|
2378
|
+
* Update workspace cost rate
|
|
2379
|
+
*/
|
|
2380
|
+
readonly "setWorkspaceCostRate": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof SetWorkspaceCostRateRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof SetWorkspaceCostRate200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2381
|
+
/**
|
|
2382
|
+
* Get custom fields on a workspace
|
|
2383
|
+
*/
|
|
2384
|
+
readonly "ofWorkspace": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof OfWorkspaceParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof OfWorkspace200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2385
|
+
/**
|
|
2386
|
+
* Create custom fields on a workspace
|
|
2387
|
+
*/
|
|
2388
|
+
readonly "create": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2389
|
+
/**
|
|
2390
|
+
* Update custom field on workspace
|
|
2391
|
+
*/
|
|
2392
|
+
readonly "editCustomField": <Config extends OperationConfig>(workspaceId: string, customFieldId: string, options: { readonly payload: typeof EditCustomFieldRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof EditCustomField200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2393
|
+
/**
|
|
2394
|
+
* Delete a custom field
|
|
2395
|
+
*/
|
|
2396
|
+
readonly "delete": <Config extends OperationConfig>(workspaceId: string, customFieldId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2397
|
+
/**
|
|
2398
|
+
* Retrieves records from the database collection that were created within a specified date range.
|
|
2399
|
+
* The date range is determined by two parameters: start and end.
|
|
2400
|
+
*/
|
|
2401
|
+
readonly "getCreatedEntityInfo": <Config extends OperationConfig>(workspaceId: string, options: { readonly params: typeof GetCreatedEntityInfoParams.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetCreatedEntityInfo200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2402
|
+
/**
|
|
2403
|
+
* Retrieves a list of record(s) that were deleted within a specified date range.
|
|
2404
|
+
* The date range is determined by the two parameters start and end.
|
|
2405
|
+
*
|
|
2406
|
+
* > ### 💡 Note
|
|
2407
|
+
* > Deleted entities will be updated and reflected in this endpoint approximately one minute after the deletion occurs. Also, entities that are created and deleted within the request date range will not appear in the /deleted endpoint.
|
|
2408
|
+
*/
|
|
2409
|
+
readonly "getDeletedEntityInfo": <Config extends OperationConfig>(workspaceId: string, options: { readonly params: typeof GetDeletedEntityInfoParams.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetDeletedEntityInfo200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2410
|
+
/**
|
|
2411
|
+
* Retrieves records that were updated within the specified date range.
|
|
2412
|
+
* The date range is determined by the two parameters: start and end.
|
|
2413
|
+
*
|
|
2414
|
+
* > ### 💡 Note
|
|
2415
|
+
* > If an entity is both created and updated within the requested date range, it will be excluded from the /updated endpoint results.
|
|
2416
|
+
*/
|
|
2417
|
+
readonly "getUpdatedEntityInfo": <Config extends OperationConfig>(workspaceId: string, options: { readonly params: typeof GetUpdatedEntityInfoParams.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetUpdatedEntityInfo200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2418
|
+
/**
|
|
2419
|
+
* Get all expenses on a workspace
|
|
2420
|
+
*/
|
|
2421
|
+
readonly "getExpenses": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetExpensesParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetExpenses200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2422
|
+
/**
|
|
2423
|
+
* Create an expense
|
|
2424
|
+
*/
|
|
2425
|
+
readonly "createExpense": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateExpenseRequestFormData.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateExpense201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2426
|
+
/**
|
|
2427
|
+
* Get all expense categories
|
|
2428
|
+
*/
|
|
2429
|
+
readonly "getCategories": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetCategoriesParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetCategories200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2430
|
+
/**
|
|
2431
|
+
* Add an expense category
|
|
2432
|
+
*/
|
|
2433
|
+
readonly "createExpenseCategory": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateExpenseCategoryRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateExpenseCategory201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2434
|
+
/**
|
|
2435
|
+
* Update an expense category
|
|
2436
|
+
*/
|
|
2437
|
+
readonly "updateCategory": <Config extends OperationConfig>(workspaceId: string, categoryId: string, options: { readonly payload: typeof UpdateCategoryRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateCategory200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2438
|
+
/**
|
|
2439
|
+
* Delete an expense category
|
|
2440
|
+
*/
|
|
2441
|
+
readonly "deleteCategory": <Config extends OperationConfig>(workspaceId: string, categoryId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2442
|
+
/**
|
|
2443
|
+
* Archive an expense category
|
|
2444
|
+
*/
|
|
2445
|
+
readonly "updateExpenseCategoryStatus": <Config extends OperationConfig>(workspaceId: string, categoryId: string, options: { readonly payload: typeof UpdateExpenseCategoryStatusRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateExpenseCategoryStatus200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2446
|
+
/**
|
|
2447
|
+
* Get an expense by ID
|
|
2448
|
+
*/
|
|
2449
|
+
readonly "getExpense": <Config extends OperationConfig>(workspaceId: string, expenseId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetExpense200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2450
|
+
/**
|
|
2451
|
+
* Update an expense
|
|
2452
|
+
*/
|
|
2453
|
+
readonly "updateExpense": <Config extends OperationConfig>(workspaceId: string, expenseId: string, options: { readonly payload: typeof UpdateExpenseRequestFormData.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateExpense200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2454
|
+
/**
|
|
2455
|
+
* Delete an expense
|
|
2456
|
+
*/
|
|
2457
|
+
readonly "deleteExpense": <Config extends OperationConfig>(workspaceId: string, expenseId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2458
|
+
/**
|
|
2459
|
+
* Download a receipt
|
|
2460
|
+
*/
|
|
2461
|
+
readonly "downloadFile": <Config extends OperationConfig>(workspaceId: string, expenseId: string, fileId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2462
|
+
/**
|
|
2463
|
+
* Get holidays on a workspace
|
|
2464
|
+
*/
|
|
2465
|
+
readonly "getHolidays": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetHolidaysParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetHolidays200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2466
|
+
/**
|
|
2467
|
+
* Create a holiday
|
|
2468
|
+
*/
|
|
2469
|
+
readonly "createHoliday": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateHolidayRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateHoliday200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2470
|
+
/**
|
|
2471
|
+
* Get holidays in a specific period
|
|
2472
|
+
*/
|
|
2473
|
+
readonly "getHolidaysInPeriod": <Config extends OperationConfig>(workspaceId: string, options: { readonly params: typeof GetHolidaysInPeriodParams.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetHolidaysInPeriod200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2474
|
+
/**
|
|
2475
|
+
* Update a holiday
|
|
2476
|
+
*/
|
|
2477
|
+
readonly "updateHoliday": <Config extends OperationConfig>(workspaceId: string, holidayId: string, options: { readonly payload: typeof UpdateHolidayRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateHoliday200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2478
|
+
/**
|
|
2479
|
+
* Delete a holiday
|
|
2480
|
+
*/
|
|
2481
|
+
readonly "deleteHoliday": <Config extends OperationConfig>(workspaceId: string, holidayId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof DeleteHoliday200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2482
|
+
/**
|
|
2483
|
+
* Update workspace billable rate
|
|
2484
|
+
*/
|
|
2485
|
+
readonly "setWorkspaceHourlyRate": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof SetWorkspaceHourlyRateRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof SetWorkspaceHourlyRate200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2486
|
+
/**
|
|
2487
|
+
* Get all invoices on a workspace
|
|
2488
|
+
*/
|
|
2489
|
+
readonly "getInvoices": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetInvoicesParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetInvoices200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2490
|
+
/**
|
|
2491
|
+
* Add an invoice
|
|
2492
|
+
*/
|
|
2493
|
+
readonly "createInvoice": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateInvoiceRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateInvoice201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2494
|
+
/**
|
|
2495
|
+
* Filter out invoices
|
|
2496
|
+
*/
|
|
2497
|
+
readonly "getInvoicesInfo": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof GetInvoicesInfoRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetInvoicesInfo200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2498
|
+
/**
|
|
2499
|
+
* Get an invoice in another language
|
|
2500
|
+
*/
|
|
2501
|
+
readonly "getInvoiceSettings": <Config extends OperationConfig>(workspaceId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetInvoiceSettings200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2502
|
+
/**
|
|
2503
|
+
* Change an invoice language
|
|
2504
|
+
*/
|
|
2505
|
+
readonly "updateInvoiceSettings": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof UpdateInvoiceSettingsRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2506
|
+
/**
|
|
2507
|
+
* Get an invoice by ID
|
|
2508
|
+
*/
|
|
2509
|
+
readonly "getInvoice": <Config extends OperationConfig>(workspaceId: string, invoiceId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetInvoice200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2510
|
+
/**
|
|
2511
|
+
* Update an invoice
|
|
2512
|
+
*/
|
|
2513
|
+
readonly "updateInvoice": <Config extends OperationConfig>(workspaceId: string, invoiceId: string, options: { readonly payload: typeof UpdateInvoiceRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateInvoice200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2514
|
+
/**
|
|
2515
|
+
* Delete an invoice
|
|
2516
|
+
*/
|
|
2517
|
+
readonly "deleteInvoice": <Config extends OperationConfig>(workspaceId: string, invoiceId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2518
|
+
/**
|
|
2519
|
+
* Duplicate an invoice
|
|
2520
|
+
*/
|
|
2521
|
+
readonly "duplicateInvoice": <Config extends OperationConfig>(workspaceId: string, invoiceId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof DuplicateInvoice201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2522
|
+
/**
|
|
2523
|
+
* Export an invoice
|
|
2524
|
+
*/
|
|
2525
|
+
readonly "exportInvoice": <Config extends OperationConfig>(workspaceId: string, invoiceId: string, options: { readonly params: typeof ExportInvoiceParams.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2526
|
+
/**
|
|
2527
|
+
* Add item to an invoice
|
|
2528
|
+
*/
|
|
2529
|
+
readonly "addInvoiceItem": <Config extends OperationConfig>(workspaceId: string, invoiceId: string, options: { readonly payload: typeof AddInvoiceItemRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof AddInvoiceItem200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2530
|
+
/**
|
|
2531
|
+
* Import time entries and expenses to an invoice
|
|
2532
|
+
*/
|
|
2533
|
+
readonly "importTimeEntriesAndExpenses": <Config extends OperationConfig>(workspaceId: string, invoiceId: string, options: { readonly payload: typeof ImportTimeEntriesAndExpensesRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof ImportTimeEntriesAndExpenses200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2534
|
+
/**
|
|
2535
|
+
* Delete item from an invoice
|
|
2536
|
+
*/
|
|
2537
|
+
readonly "removeInvoiceItem": <Config extends OperationConfig>(workspaceId: string, invoiceId: string, order: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof RemoveInvoiceItem200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2538
|
+
/**
|
|
2539
|
+
* Get payments for an invoice
|
|
2540
|
+
*/
|
|
2541
|
+
readonly "getPaymentsForInvoice": <Config extends OperationConfig>(workspaceId: string, invoiceId: string, options: { readonly params?: typeof GetPaymentsForInvoiceParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetPaymentsForInvoice200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2542
|
+
/**
|
|
2543
|
+
* Add payment to an invoice
|
|
2544
|
+
*/
|
|
2545
|
+
readonly "createInvoicePayment": <Config extends OperationConfig>(workspaceId: string, invoiceId: string, options: { readonly payload: typeof CreateInvoicePaymentRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateInvoicePayment201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2546
|
+
/**
|
|
2547
|
+
* Delete payment from an invoice
|
|
2548
|
+
*/
|
|
2549
|
+
readonly "deletePaymentById": <Config extends OperationConfig>(workspaceId: string, invoiceId: string, paymentId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof DeletePaymentById200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2550
|
+
/**
|
|
2551
|
+
* Change an invoice status
|
|
2552
|
+
*/
|
|
2553
|
+
readonly "changeInvoiceStatus": <Config extends OperationConfig>(workspaceId: string, invoiceId: string, options: { readonly payload: typeof ChangeInvoiceStatusRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2554
|
+
/**
|
|
2555
|
+
* Add limited users
|
|
2556
|
+
*/
|
|
2557
|
+
readonly "addLimitedUsers": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof AddLimitedUsersRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2558
|
+
/**
|
|
2559
|
+
* Get a member's profile
|
|
2560
|
+
*/
|
|
2561
|
+
readonly "getMemberProfile": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetMemberProfile200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2562
|
+
/**
|
|
2563
|
+
* Update a member's profile
|
|
2564
|
+
*/
|
|
2565
|
+
readonly "updateMemberProfileWithAdditionalData": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly payload: typeof UpdateMemberProfileWithAdditionalDataRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateMemberProfileWithAdditionalData200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2566
|
+
/**
|
|
2567
|
+
* Get all projects on a workspace
|
|
2568
|
+
*/
|
|
2569
|
+
readonly "getProjects": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetProjectsParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetProjects200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2570
|
+
/**
|
|
2571
|
+
* Add a new project
|
|
2572
|
+
*/
|
|
2573
|
+
readonly "createNewProject": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateNewProjectRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateNewProject201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2574
|
+
/**
|
|
2575
|
+
* Create project from a template
|
|
2576
|
+
*/
|
|
2577
|
+
readonly "createProjectFromTemplate": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateProjectFromTemplateRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateProjectFromTemplate200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2578
|
+
/**
|
|
2579
|
+
* Find a project by ID
|
|
2580
|
+
*/
|
|
2581
|
+
readonly "getProject": <Config extends OperationConfig>(workspaceId: string, projectId: string, options: { readonly params?: typeof GetProjectParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetProject200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2582
|
+
/**
|
|
2583
|
+
* Update a project on a workspace
|
|
2584
|
+
*/
|
|
2585
|
+
readonly "updateProject": <Config extends OperationConfig>(workspaceId: string, projectId: string, options: { readonly payload: typeof UpdateProjectRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateProject200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2586
|
+
/**
|
|
2587
|
+
* Delete a project from a workspace
|
|
2588
|
+
*/
|
|
2589
|
+
readonly "deleteProject": <Config extends OperationConfig>(workspaceId: string, projectId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof DeleteProject200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2590
|
+
/**
|
|
2591
|
+
* Get custom fields on a project
|
|
2592
|
+
*/
|
|
2593
|
+
readonly "getCustomFieldsOfProject": <Config extends OperationConfig>(workspaceId: string, projectId: string, options: { readonly params?: typeof GetCustomFieldsOfProjectParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetCustomFieldsOfProject200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2594
|
+
/**
|
|
2595
|
+
* Remove custom field from a project
|
|
2596
|
+
*/
|
|
2597
|
+
readonly "removeDefaultValueOfProject": <Config extends OperationConfig>(workspaceId: string, projectId: string, customFieldId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof RemoveDefaultValueOfProject200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2598
|
+
/**
|
|
2599
|
+
* Update custom field on a project
|
|
2600
|
+
*/
|
|
2601
|
+
readonly "editProjectCustomFieldDefaultValue": <Config extends OperationConfig>(workspaceId: string, projectId: string, customFieldId: string, options: { readonly payload: typeof EditProjectCustomFieldDefaultValueRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof EditProjectCustomFieldDefaultValue200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2602
|
+
/**
|
|
2603
|
+
* Update project estimate
|
|
2604
|
+
*/
|
|
2605
|
+
readonly "updateEstimate": <Config extends OperationConfig>(workspaceId: string, projectId: string, options: { readonly payload: typeof UpdateEstimateRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateEstimate200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2606
|
+
/**
|
|
2607
|
+
* Assign/remove users to/from the project
|
|
2608
|
+
*/
|
|
2609
|
+
readonly "addUsersToProject": <Config extends OperationConfig>(workspaceId: string, projectId: string, options: { readonly payload: typeof AddUsersToProjectRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2610
|
+
/**
|
|
2611
|
+
* Update project memberships
|
|
2612
|
+
*/
|
|
2613
|
+
readonly "updateMemberships": <Config extends OperationConfig>(workspaceId: string, projectId: string, options: { readonly payload: typeof UpdateMembershipsRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateMemberships200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2614
|
+
/**
|
|
2615
|
+
* Find tasks on a project
|
|
2616
|
+
*/
|
|
2617
|
+
readonly "getTasks": <Config extends OperationConfig>(workspaceId: string, projectId: string, options: { readonly params?: typeof GetTasksParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetTasks200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2618
|
+
/**
|
|
2619
|
+
* Add a new task on a project
|
|
2620
|
+
*/
|
|
2621
|
+
readonly "createTask": <Config extends OperationConfig>(workspaceId: string, projectId: string, options: { readonly params?: typeof CreateTaskParams.Encoded | undefined; readonly payload: typeof CreateTaskRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateTask201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2622
|
+
/**
|
|
2623
|
+
* Update a task's cost rate
|
|
2624
|
+
*/
|
|
2625
|
+
readonly "setTaskCostRate": <Config extends OperationConfig>(workspaceId: string, projectId: string, id: string, options: { readonly payload: typeof SetTaskCostRateRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof SetTaskCostRate200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2626
|
+
/**
|
|
2627
|
+
* Update a task's billable rate
|
|
2628
|
+
*/
|
|
2629
|
+
readonly "setTaskHourlyRate": <Config extends OperationConfig>(workspaceId: string, projectId: string, id: string, options: { readonly payload: typeof SetTaskHourlyRateRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof SetTaskHourlyRate200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2630
|
+
/**
|
|
2631
|
+
* Get a task by id
|
|
2632
|
+
*/
|
|
2633
|
+
readonly "getTask": <Config extends OperationConfig>(workspaceId: string, projectId: string, taskId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetTask200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2634
|
+
/**
|
|
2635
|
+
* Update a task on a project
|
|
2636
|
+
*/
|
|
2637
|
+
readonly "updateTask": <Config extends OperationConfig>(workspaceId: string, projectId: string, taskId: string, options: { readonly params?: typeof UpdateTaskParams.Encoded | undefined; readonly payload: typeof UpdateTaskRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateTask200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2638
|
+
/**
|
|
2639
|
+
* Delete a task from a project
|
|
2640
|
+
*/
|
|
2641
|
+
readonly "deleteTask": <Config extends OperationConfig>(workspaceId: string, projectId: string, taskId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof DeleteTask200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2642
|
+
/**
|
|
2643
|
+
* Update a project template
|
|
2644
|
+
*/
|
|
2645
|
+
readonly "updateIsProjectTemplate": <Config extends OperationConfig>(workspaceId: string, projectId: string, options: { readonly payload: typeof UpdateIsProjectTemplateRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateIsProjectTemplate200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2646
|
+
/**
|
|
2647
|
+
* Update project user's cost rate
|
|
2648
|
+
*/
|
|
2649
|
+
readonly "addUsersCostRate": <Config extends OperationConfig>(workspaceId: string, projectId: string, userId: string, options: { readonly payload: typeof AddUsersCostRateRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof AddUsersCostRate200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2650
|
+
/**
|
|
2651
|
+
* Update a project user's billable rate
|
|
2652
|
+
*/
|
|
2653
|
+
readonly "addUsersHourlyRate": <Config extends OperationConfig>(workspaceId: string, projectId: string, userId: string, options: { readonly payload: typeof AddUsersHourlyRateRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof AddUsersHourlyRate200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2654
|
+
/**
|
|
2655
|
+
* Get all assignments
|
|
2656
|
+
*/
|
|
2657
|
+
readonly "getAllAssignments": <Config extends OperationConfig>(workspaceId: string, options: { readonly params: typeof GetAllAssignmentsParams.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetAllAssignments200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2658
|
+
/**
|
|
2659
|
+
* Get all scheduled assignments per project
|
|
2660
|
+
*/
|
|
2661
|
+
readonly "getProjectTotals": <Config extends OperationConfig>(workspaceId: string, options: { readonly params: typeof GetProjectTotalsParams.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetProjectTotals200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2662
|
+
/**
|
|
2663
|
+
* Get all scheduled assignments per project
|
|
2664
|
+
*/
|
|
2665
|
+
readonly "getFilteredProjectTotals": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof GetFilteredProjectTotalsRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetFilteredProjectTotals200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2666
|
+
/**
|
|
2667
|
+
* Get all scheduled assignments on project
|
|
2668
|
+
*/
|
|
2669
|
+
readonly "getProjectTotalsForSingleProject": <Config extends OperationConfig>(workspaceId: string, projectId: string, options: { readonly params: typeof GetProjectTotalsForSingleProjectParams.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetProjectTotalsForSingleProject200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2670
|
+
/**
|
|
2671
|
+
* Publish assignments
|
|
2672
|
+
*/
|
|
2673
|
+
readonly "publishAssignments": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof PublishAssignmentsRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2674
|
+
/**
|
|
2675
|
+
* Create assignment
|
|
2676
|
+
*/
|
|
2677
|
+
readonly "createRecurring": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateRecurringRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateRecurring201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2678
|
+
/**
|
|
2679
|
+
* Delete assignment
|
|
2680
|
+
*/
|
|
2681
|
+
readonly "deleteRRecurringAssignment": <Config extends OperationConfig>(workspaceId: string, assignmentId: string, options: { readonly params?: typeof DeleteRRecurringAssignmentParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof DeleteRRecurringAssignment200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2682
|
+
/**
|
|
2683
|
+
* Update assignment
|
|
2684
|
+
*/
|
|
2685
|
+
readonly "editRecurring": <Config extends OperationConfig>(workspaceId: string, assignmentId: string, options: { readonly payload: typeof EditRecurringRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof EditRecurring200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2686
|
+
/**
|
|
2687
|
+
* Change the recurring period
|
|
2688
|
+
*/
|
|
2689
|
+
readonly "editRecurringPeriod": <Config extends OperationConfig>(workspaceId: string, assignmentId: string, options: { readonly payload: typeof EditRecurringPeriodRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof EditRecurringPeriod200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2690
|
+
/**
|
|
2691
|
+
* Get total of users' capacity on workspace
|
|
2692
|
+
*/
|
|
2693
|
+
readonly "getUserTotals": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof GetUserTotalsRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetUserTotals200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2694
|
+
/**
|
|
2695
|
+
* Get total capacity of a user
|
|
2696
|
+
*/
|
|
2697
|
+
readonly "getUserTotalsForSingleUser": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly params: typeof GetUserTotalsForSingleUserParams.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetUserTotalsForSingleUser200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2698
|
+
/**
|
|
2699
|
+
* Copy a scheduled assignment
|
|
2700
|
+
*/
|
|
2701
|
+
readonly "copyAssignment": <Config extends OperationConfig>(workspaceId: string, assignmentId: string, options: { readonly payload: typeof CopyAssignmentRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CopyAssignment200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2702
|
+
/**
|
|
2703
|
+
* Find tags on a workspace
|
|
2704
|
+
*/
|
|
2705
|
+
readonly "getTags": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetTagsParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetTags200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2706
|
+
/**
|
|
2707
|
+
* Add a new tag
|
|
2708
|
+
*/
|
|
2709
|
+
readonly "createNewTag": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateNewTagRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateNewTag201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2710
|
+
/**
|
|
2711
|
+
* Get a tag by ID
|
|
2712
|
+
*/
|
|
2713
|
+
readonly "getTag": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetTag200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2714
|
+
/**
|
|
2715
|
+
* Update a tag
|
|
2716
|
+
*/
|
|
2717
|
+
readonly "updateTag": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly payload: typeof UpdateTagRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateTag200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2718
|
+
/**
|
|
2719
|
+
* Delete a tag
|
|
2720
|
+
*/
|
|
2721
|
+
readonly "deleteTag": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof DeleteTag200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2722
|
+
/**
|
|
2723
|
+
* Get all templates on a workspace
|
|
2724
|
+
*/
|
|
2725
|
+
readonly "getTemplates": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetTemplatesParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetTemplates200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2726
|
+
/**
|
|
2727
|
+
* Create templates on a workspace
|
|
2728
|
+
*/
|
|
2729
|
+
readonly "createMany": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateManyRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateMany200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2730
|
+
/**
|
|
2731
|
+
* Get template by ID on a workspace
|
|
2732
|
+
*/
|
|
2733
|
+
readonly "getTemplate": <Config extends OperationConfig>(workspaceId: string, templateId: string, options: { readonly params?: typeof GetTemplateParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetTemplate200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2734
|
+
/**
|
|
2735
|
+
* Delete a template
|
|
2736
|
+
*/
|
|
2737
|
+
readonly "delete1": <Config extends OperationConfig>(workspaceId: string, templateId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof Delete1200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2738
|
+
/**
|
|
2739
|
+
* Update a template
|
|
2740
|
+
*/
|
|
2741
|
+
readonly "update": <Config extends OperationConfig>(workspaceId: string, templateId: string, options: { readonly payload: typeof UpdateRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof Update200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2742
|
+
/**
|
|
2743
|
+
* Add a new time entry
|
|
2744
|
+
*/
|
|
2745
|
+
readonly "createTimeEntry": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateTimeEntryRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateTimeEntry201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2746
|
+
/**
|
|
2747
|
+
* Mark time entries as invoiced
|
|
2748
|
+
*/
|
|
2749
|
+
readonly "updateInvoicedStatus": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof UpdateInvoicedStatusRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2750
|
+
/**
|
|
2751
|
+
* Get all in progress time entries on a workspace
|
|
2752
|
+
*/
|
|
2753
|
+
readonly "getInProgressTimeEntries": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetInProgressTimeEntriesParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2754
|
+
/**
|
|
2755
|
+
* Get a specific time entry on a workspace
|
|
2756
|
+
*/
|
|
2757
|
+
readonly "getTimeEntry": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly params?: typeof GetTimeEntryParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetTimeEntry200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2758
|
+
/**
|
|
2759
|
+
* Update time entry on a workspace
|
|
2760
|
+
*/
|
|
2761
|
+
readonly "updateTimeEntry": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly payload: typeof UpdateTimeEntryRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateTimeEntry200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2762
|
+
/**
|
|
2763
|
+
* Delete a time entry from a workspace
|
|
2764
|
+
*/
|
|
2765
|
+
readonly "deleteTimeEntry": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2766
|
+
/**
|
|
2767
|
+
* Get balances for a policy
|
|
2768
|
+
*/
|
|
2769
|
+
readonly "getBalancesForPolicy": <Config extends OperationConfig>(workspaceId: string, policyId: string, options: { readonly params?: typeof GetBalancesForPolicyParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2770
|
+
/**
|
|
2771
|
+
* Update a balance
|
|
2772
|
+
*/
|
|
2773
|
+
readonly "updateBalance": <Config extends OperationConfig>(workspaceId: string, policyId: string, options: { readonly payload: typeof UpdateBalanceRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2774
|
+
/**
|
|
2775
|
+
* Get balance for a user
|
|
2776
|
+
*/
|
|
2777
|
+
readonly "getBalancesForUser": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly params?: typeof GetBalancesForUserParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2778
|
+
/**
|
|
2779
|
+
* Get policies on a workspace
|
|
2780
|
+
*/
|
|
2781
|
+
readonly "findPoliciesForWorkspace": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof FindPoliciesForWorkspaceParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof FindPoliciesForWorkspace200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2782
|
+
/**
|
|
2783
|
+
* Create a time off policy
|
|
2784
|
+
*/
|
|
2785
|
+
readonly "createPolicy": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreatePolicyRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreatePolicy201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2786
|
+
/**
|
|
2787
|
+
* Get a time off policy
|
|
2788
|
+
*/
|
|
2789
|
+
readonly "getPolicy": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetPolicy200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2790
|
+
/**
|
|
2791
|
+
* Update a policy
|
|
2792
|
+
*/
|
|
2793
|
+
readonly "updatePolicy": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly payload: typeof UpdatePolicyRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdatePolicy200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2794
|
+
/**
|
|
2795
|
+
* Delete a policy
|
|
2796
|
+
*/
|
|
2797
|
+
readonly "deletePolicy": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2798
|
+
/**
|
|
2799
|
+
* Change a policy status
|
|
2800
|
+
*/
|
|
2801
|
+
readonly "updatePolicyStatus": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly payload: typeof UpdatePolicyStatusRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdatePolicyStatus200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2802
|
+
/**
|
|
2803
|
+
* Create a time off request
|
|
2804
|
+
*/
|
|
2805
|
+
readonly "createTimeOffRequest": <Config extends OperationConfig>(workspaceId: string, policyId: string, options: { readonly payload: typeof CreateTimeOffRequestRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateTimeOffRequest200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2806
|
+
/**
|
|
2807
|
+
* Delete a time off request
|
|
2808
|
+
*/
|
|
2809
|
+
readonly "deleteTimeOffRequest": <Config extends OperationConfig>(workspaceId: string, policyId: string, requestId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof DeleteTimeOffRequest200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2810
|
+
/**
|
|
2811
|
+
* Change a time off request status
|
|
2812
|
+
*/
|
|
2813
|
+
readonly "changeTimeOffRequestStatus": <Config extends OperationConfig>(workspaceId: string, policyId: string, requestId: string, options: { readonly payload: typeof ChangeTimeOffRequestStatusRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof ChangeTimeOffRequestStatus200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2814
|
+
/**
|
|
2815
|
+
* Create a time off request for a user
|
|
2816
|
+
*/
|
|
2817
|
+
readonly "createTimeOffRequestForOther": <Config extends OperationConfig>(workspaceId: string, policyId: string, userId: string, options: { readonly payload: typeof CreateTimeOffRequestForOtherRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateTimeOffRequestForOther200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2818
|
+
/**
|
|
2819
|
+
* Get all time off requests on a workspace
|
|
2820
|
+
*/
|
|
2821
|
+
readonly "getTimeOffRequest": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof GetTimeOffRequestRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetTimeOffRequest200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2822
|
+
/**
|
|
2823
|
+
* Find all groups on a workspace
|
|
2824
|
+
*/
|
|
2825
|
+
readonly "getUserGroups": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetUserGroupsParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetUserGroups200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2826
|
+
/**
|
|
2827
|
+
* Add a new group
|
|
2828
|
+
*/
|
|
2829
|
+
readonly "createUserGroup": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateUserGroupRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateUserGroup201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2830
|
+
/**
|
|
2831
|
+
* Update a group
|
|
2832
|
+
*/
|
|
2833
|
+
readonly "updateUserGroup": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly payload: typeof UpdateUserGroupRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateUserGroup200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2834
|
+
/**
|
|
2835
|
+
* Delete a group
|
|
2836
|
+
*/
|
|
2837
|
+
readonly "deleteUserGroup": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof DeleteUserGroup200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2838
|
+
/**
|
|
2839
|
+
* Add users to a group
|
|
2840
|
+
*/
|
|
2841
|
+
readonly "addUser": <Config extends OperationConfig>(workspaceId: string, userGroupId: string, options: { readonly payload: typeof AddUserRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof AddUser200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2842
|
+
/**
|
|
2843
|
+
* Remove a user from a group
|
|
2844
|
+
*/
|
|
2845
|
+
readonly "deleteUser": <Config extends OperationConfig>(workspaceId: string, userGroupId: string, userId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof DeleteUser200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2846
|
+
/**
|
|
2847
|
+
* Get time entries for a user on a workspace
|
|
2848
|
+
*/
|
|
2849
|
+
readonly "getTimeEntries": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly params?: typeof GetTimeEntriesParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetTimeEntries200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2850
|
+
/**
|
|
2851
|
+
* Bulk edit time entries
|
|
2852
|
+
*/
|
|
2853
|
+
readonly "replaceMany": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly params?: typeof ReplaceManyParams.Encoded | undefined; readonly payload: typeof ReplaceManyRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof ReplaceMany200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2854
|
+
/**
|
|
2855
|
+
* Add a new time entry for another user on workspace
|
|
2856
|
+
*/
|
|
2857
|
+
readonly "createForOthers": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly params?: typeof CreateForOthersParams.Encoded | undefined; readonly payload: typeof CreateForOthersRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateForOthers201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2858
|
+
/**
|
|
2859
|
+
* Delete all time entries for a user on a workspace
|
|
2860
|
+
*/
|
|
2861
|
+
readonly "deleteMany": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly params: typeof DeleteManyParams.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof DeleteMany200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2862
|
+
/**
|
|
2863
|
+
* Stop a currently running timer on a workspace for a user
|
|
2864
|
+
*/
|
|
2865
|
+
readonly "stopRunningTimeEntry": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly payload: typeof StopRunningTimeEntryRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof StopRunningTimeEntry200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2866
|
+
/**
|
|
2867
|
+
* Duplicate a time entry
|
|
2868
|
+
*/
|
|
2869
|
+
readonly "duplicateTimeEntry": <Config extends OperationConfig>(workspaceId: string, userId: string, id: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof DuplicateTimeEntry201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2870
|
+
/**
|
|
2871
|
+
* Find all users on a workspace
|
|
2872
|
+
*/
|
|
2873
|
+
readonly "getUsersOfWorkspace": <Config extends OperationConfig>(workspaceId: string, options: { readonly params: typeof GetUsersOfWorkspaceParams.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetUsersOfWorkspace200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2874
|
+
/**
|
|
2875
|
+
* You can add users to a workspace via API only if that workspace has a paid subscription. If the workspace has a paid subscription, you can add as many users as you want but you are limited by the number of paid user seats on that workspace.
|
|
2876
|
+
*/
|
|
2877
|
+
readonly "addUsers": <Config extends OperationConfig>(workspaceId: string, options: { readonly params: typeof AddUsersParams.Encoded; readonly payload: typeof AddUsersRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof AddUsers200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2878
|
+
/**
|
|
2879
|
+
* Filter workspace users
|
|
2880
|
+
*/
|
|
2881
|
+
readonly "filterUsersOfWorkspace": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof FilterUsersOfWorkspaceRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof FilterUsersOfWorkspace200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2882
|
+
/**
|
|
2883
|
+
* Update a user's status
|
|
2884
|
+
*/
|
|
2885
|
+
readonly "updateUserStatus": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly payload: typeof UpdateUserStatusRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateUserStatus200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2886
|
+
/**
|
|
2887
|
+
* This endpoint is not functional and has been deprecated. A user can be removed/deleted on the CAKE.com Account Members page after deactivating all their existing memberships on all workspaces within an organization.
|
|
2888
|
+
*/
|
|
2889
|
+
readonly "removeMember": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof RemoveMember200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2890
|
+
/**
|
|
2891
|
+
* Update a user's cost rate
|
|
2892
|
+
*/
|
|
2893
|
+
readonly "setCostRateForUser": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly payload: typeof SetCostRateForUserRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof SetCostRateForUser200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2894
|
+
/**
|
|
2895
|
+
* Update a user's custom field
|
|
2896
|
+
*/
|
|
2897
|
+
readonly "upsertUserCustomFieldValue": <Config extends OperationConfig>(workspaceId: string, userId: string, customFieldId: string, options: { readonly payload: typeof UpsertUserCustomFieldValueRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpsertUserCustomFieldValue201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2898
|
+
/**
|
|
2899
|
+
* Update a user's hourly rate
|
|
2900
|
+
*/
|
|
2901
|
+
readonly "setHourlyRateForUser": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly payload: typeof SetHourlyRateForUserRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof SetHourlyRateForUser200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2902
|
+
/**
|
|
2903
|
+
* Find user's team manager
|
|
2904
|
+
*/
|
|
2905
|
+
readonly "getManagersOfUser": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly params?: typeof GetManagersOfUserParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetManagersOfUser200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2906
|
+
/**
|
|
2907
|
+
* Give manager role to a user
|
|
2908
|
+
*/
|
|
2909
|
+
readonly "createUserRole": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly payload: typeof CreateUserRoleRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateUserRole201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2910
|
+
/**
|
|
2911
|
+
* Remove user's manager role
|
|
2912
|
+
*/
|
|
2913
|
+
readonly "deleteUserRole": <Config extends OperationConfig>(workspaceId: string, userId: string, options: { readonly payload: typeof DeleteUserRoleRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2914
|
+
/**
|
|
2915
|
+
* Get all webhooks on a workspace
|
|
2916
|
+
*/
|
|
2917
|
+
readonly "getWebhooks": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetWebhooksParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetWebhooks200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2918
|
+
/**
|
|
2919
|
+
* Creating a webhook generates a new token which can be used to verify that the webhook being sent was sent by Clockify, as it will always be present in the header.
|
|
2920
|
+
*/
|
|
2921
|
+
readonly "createWebhook": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof CreateWebhookRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof CreateWebhook201.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2922
|
+
/**
|
|
2923
|
+
* Get a specific webhook by id
|
|
2924
|
+
*/
|
|
2925
|
+
readonly "getWebhook": <Config extends OperationConfig>(workspaceId: string, webhookId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetWebhook200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2926
|
+
/**
|
|
2927
|
+
* Update a webhook
|
|
2928
|
+
*/
|
|
2929
|
+
readonly "updateWebhook": <Config extends OperationConfig>(workspaceId: string, webhookId: string, options: { readonly payload: typeof UpdateWebhookRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof UpdateWebhook200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2930
|
+
/**
|
|
2931
|
+
* Delete a webhook
|
|
2932
|
+
*/
|
|
2933
|
+
readonly "deleteWebhook": <Config extends OperationConfig>(workspaceId: string, webhookId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2934
|
+
/**
|
|
2935
|
+
* Get logs for a webhook
|
|
2936
|
+
*/
|
|
2937
|
+
readonly "getLogsForWebhook": <Config extends OperationConfig>(workspaceId: string, webhookId: string, options: { readonly params?: typeof GetLogsForWebhookParams.Encoded | undefined; readonly payload: typeof GetLogsForWebhookRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetLogsForWebhook200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2938
|
+
/**
|
|
2939
|
+
* Get webhook event statuses for a webhook
|
|
2940
|
+
*/
|
|
2941
|
+
readonly "getWebhookEventStatusesWithLatestLog": <Config extends OperationConfig>(workspaceId: string, webhookId: string, options: { readonly params?: typeof GetWebhookEventStatusesWithLatestLogParams.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GetWebhookEventStatusesWithLatestLog200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2942
|
+
/**
|
|
2943
|
+
* Generates a new webhook token and invalidates previous one
|
|
2944
|
+
*/
|
|
2945
|
+
readonly "generateNewToken": <Config extends OperationConfig>(workspaceId: string, webhookId: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<typeof GenerateNewToken200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2946
|
+
/**
|
|
2947
|
+
* Response depends on report type and export type. Given example is for SUMMARY report and JSON exportType.
|
|
2948
|
+
*
|
|
2949
|
+
* Shared report data on FREE subscription plan is limited to a maximum interval length of one month (31 days).
|
|
2950
|
+
*/
|
|
2951
|
+
readonly "generateSharedReportV1": <Config extends OperationConfig>(id: string, options: { readonly params?: typeof GenerateSharedReportV1Params.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2952
|
+
/**
|
|
2953
|
+
* Generate an attendance report
|
|
2954
|
+
*/
|
|
2955
|
+
readonly "generateAttendanceReport": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof GenerateAttendanceReportRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2956
|
+
/**
|
|
2957
|
+
* Detailed report data on FREE subscription plan is limited to a maximum interval length of one month (31 days).
|
|
2958
|
+
*/
|
|
2959
|
+
readonly "generateDetailedReport": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof GenerateDetailedReportRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2960
|
+
/**
|
|
2961
|
+
* Expense report data on FREE subscription plan is limited to a maximum interval length of one month (31 days).
|
|
2962
|
+
*/
|
|
2963
|
+
readonly "generateDetailedReportV1": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof GenerateDetailedReportV1RequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GenerateDetailedReportV1200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2964
|
+
/**
|
|
2965
|
+
* Summary report data on FREE subscription plan is limited to a maximum interval length of one month (31 days).
|
|
2966
|
+
*/
|
|
2967
|
+
readonly "generateSummaryReport": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof GenerateSummaryReportRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2968
|
+
/**
|
|
2969
|
+
* Weekly report data on FREE subscription plan is limited to a maximum interval length of one month (31 days).
|
|
2970
|
+
*/
|
|
2971
|
+
readonly "generateWeeklyReport": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof GenerateWeeklyReportRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2972
|
+
/**
|
|
2973
|
+
* Gets all shared reports for current user on given workspace
|
|
2974
|
+
*/
|
|
2975
|
+
readonly "getSharedReportsV1": <Config extends OperationConfig>(workspaceId: string, options: { readonly params?: typeof GetSharedReportsV1Params.Encoded | undefined; readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2976
|
+
/**
|
|
2977
|
+
* Saves shared report with name, options and report filter.
|
|
2978
|
+
*
|
|
2979
|
+
* Shared report data on FREE subscription plan is limited to a maximum interval length of one month (31 days).
|
|
2980
|
+
*/
|
|
2981
|
+
readonly "saveSharedReportV1": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof SaveSharedReportV1RequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2982
|
+
/**
|
|
2983
|
+
* Updates shared report name and/or options
|
|
2984
|
+
*/
|
|
2985
|
+
readonly "updateSharedReportV1": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly payload: typeof UpdateSharedReportV1RequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2986
|
+
/**
|
|
2987
|
+
* Delete a shared report
|
|
2988
|
+
*/
|
|
2989
|
+
readonly "deleteSharedReportV1": <Config extends OperationConfig>(workspaceId: string, id: string, options: { readonly config?: Config | undefined } | undefined) => Effect.Effect<WithOptionalResponse<void, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2990
|
+
/**
|
|
2991
|
+
* Generate an audit log report
|
|
2992
|
+
*/
|
|
2993
|
+
readonly "getAuditLogs": <Config extends OperationConfig>(workspaceId: string, options: { readonly payload: typeof GetAuditLogsRequestJson.Encoded; readonly config?: Config | undefined }) => Effect.Effect<WithOptionalResponse<typeof GetAuditLogs200.Type, Config>, HttpClientError.HttpClientError | SchemaError>
|
|
2994
|
+
}
|
|
2995
|
+
|
|
2996
|
+
export interface ClockifyApiError<Tag extends string, E> {
|
|
2997
|
+
readonly _tag: Tag
|
|
2998
|
+
readonly request: HttpClientRequest.HttpClientRequest
|
|
2999
|
+
readonly response: HttpClientResponse.HttpClientResponse
|
|
3000
|
+
readonly cause: E
|
|
3001
|
+
}
|
|
3002
|
+
|
|
3003
|
+
class ClockifyApiErrorImpl extends Data.Error<{
|
|
3004
|
+
_tag: string
|
|
3005
|
+
cause: any
|
|
3006
|
+
request: HttpClientRequest.HttpClientRequest
|
|
3007
|
+
response: HttpClientResponse.HttpClientResponse
|
|
3008
|
+
}> {}
|
|
3009
|
+
|
|
3010
|
+
export const ClockifyApiError = <Tag extends string, E>(
|
|
3011
|
+
tag: Tag,
|
|
3012
|
+
cause: E,
|
|
3013
|
+
response: HttpClientResponse.HttpClientResponse,
|
|
3014
|
+
): ClockifyApiError<Tag, E> =>
|
|
3015
|
+
new ClockifyApiErrorImpl({
|
|
3016
|
+
_tag: tag,
|
|
3017
|
+
cause,
|
|
3018
|
+
response,
|
|
3019
|
+
request: response.request,
|
|
3020
|
+
}) as any
|