# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-08-13T20:03:03+00:00
from __future__ import annotations
from datetime import datetime
from enum import Enum
from typing import Any, Dict, List, Optional, Union
from pydantic import BaseModel, Field, RootModel
class AccessDTO(BaseModel):
change: Optional[bool] = None
delete: Optional[bool] = None
class AccessTokenDTO(BaseModel):
token: Optional[str] = None
url: Optional[str] = None
class AccessTokenRequestDTO(BaseModel):
loginOrEmail: Optional[str] = None
class ActionDTO(BaseModel):
header: Optional[str] = None
name: Optional[str] = None
class ActionStartedDTO(BaseModel):
actionId: Optional[str] = None
resultUrl: Optional[str] = None
statusUrl: Optional[str] = None
class ActiveSubscriptionDTO(BaseModel):
embed: Optional[str] = Field(
None, description='additional fields which should be embedded in the event'
)
event: Optional[str] = Field(
None, description='event to which you want to subscribe'
)
filter: Optional[str] = Field(
None, description="filter expression in the form 'attribute=value'"
)
subscriptionId: Optional[str] = Field(None, description='subscription identifier')
url: Optional[str] = Field(
None, description='url that will be invoked by XTRF on event'
)
class AddressDTO(BaseModel):
addressLine1: Optional[str] = Field(None, description='first line of address')
addressLine2: Optional[str] = Field(None, description='second line of address')
city: Optional[str] = Field(None, description='city')
countryId: Optional[int] = Field(None, description='country')
postalCode: Optional[str] = Field(None, description='postal code')
provinceId: Optional[int] = Field(None, description='province')
sameAsBillingAddress: Optional[bool] = Field(
None, description='should billing address be used instead of this one'
)
class AssignVendorDTO(BaseModel):
recalculateRates: Optional[bool] = None
vendorPriceProfileId: Optional[int] = None
class BigDecimalDTO(BaseModel):
value: Optional[float] = None
class Headers(BaseModel):
empty: Optional[bool] = None
class MediaType(BaseModel):
parameters: Optional[Dict[str, str]] = None
subtype: Optional[str] = None
type: Optional[str] = None
wildcardSubtype: Optional[bool] = None
wildcardType: Optional[bool] = None
class ParameterizedHeaders(BaseModel):
empty: Optional[bool] = None
class CATToolProjectDTO(BaseModel):
projectCreatedInCatToolOrCreationIsQueued: Optional[bool] = None
class Type(Enum):
TIME = 'TIME'
VOLUME = 'VOLUME'
PERCENT = 'PERCENT'
class CalculationUnitDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
canBeUsedInCatAnalysis: Optional[bool] = None
catQuantityConversionExpression: Optional[str] = None
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
exchangeRatio: Optional[float] = None
fileStatsConversionExpression: Optional[str] = None
id: Optional[int] = Field(None, description='internal identifier')
jobTypeIds: Optional[List[int]] = None
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
symbol: Optional[str] = None
timeToQuantityConversionExpression: Optional[str] = None
type: Optional[Type] = None
class CategoriesDTO1(BaseModel):
empty: Optional[bool] = None
class CategoriesDTO(RootModel[Union[List[int], CategoriesDTO1]]):
root: Union[List[int], CategoriesDTO1]
class SupportedClass(Enum):
PROJECT = 'PROJECT'
QUOTE = 'QUOTE'
QUOTE_TASK = 'QUOTE_TASK'
TASK = 'TASK'
PROVIDER = 'PROVIDER'
CUSTOMER = 'CUSTOMER'
CUSTOMER_PERSON = 'CUSTOMER_PERSON'
PROVIDER_PERSON = 'PROVIDER_PERSON'
FINANCIAL_REPORT = 'FINANCIAL_REPORT'
REMINDER = 'REMINDER'
PROVIDER_INVOICE = 'PROVIDER_INVOICE'
CUSTOMER_INVOICE = 'CUSTOMER_INVOICE'
PROJECT_GROUP = 'PROJECT_GROUP'
class CategoryDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
id: Optional[int] = Field(None, description='internal identifier')
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
supportedClasses: Optional[List[SupportedClass]] = Field(
None, description='set of types for which this category can be selected'
)
class RateOrigin(Enum):
PRICE_PROFILE = 'PRICE_PROFILE'
PRICE_LIST = 'PRICE_LIST'
FILLED_MANUALLY = 'FILLED_MANUALLY'
AUTOCALCULATED = 'AUTOCALCULATED'
class Type1(Enum):
SIMPLE = 'SIMPLE'
CAT = 'CAT'
class ChargeLanguageCombinationDTO(BaseModel):
sourceLanguageId: Optional[int] = None
targetLanguageId: Optional[int] = None
class CommonLanguageCombinationDTO(BaseModel):
sourceLanguageId: Optional[int] = None
targetLanguageId: Optional[int] = None
class CompetenciesDTO(BaseModel):
languageCombinations: Optional[List[CommonLanguageCombinationDTO]] = None
class ContactsDTO(BaseModel):
additionalIds: Optional[List[int]] = None
primaryId: Optional[int] = None
sendBackToId: Optional[int] = None
class ContentDisposition(BaseModel):
creationDate: Optional[datetime] = None
fileName: Optional[str] = None
modificationDate: Optional[datetime] = None
parameters: Optional[Dict[str, str]] = None
readDate: Optional[datetime] = None
size: Optional[int] = None
type: Optional[str] = None
class CountryDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
id: Optional[int] = Field(None, description='internal identifier')
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
symbol: Optional[str] = Field(None, description='specific symbol or abbreviation')
class CurrencyDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
id: Optional[int] = Field(None, description='internal identifier')
isoCode: Optional[str] = Field(
None,
description='<a href="http://en.wikipedia.org/wiki/ISO_4217">ISO 4217 code</a>',
)
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
symbol: Optional[str] = Field(None, description='specific symbol or abbreviation')
class Type2(Enum):
TEXT = 'TEXT'
DATE = 'DATE'
DATE_AND_TIME = 'DATE_AND_TIME'
NUMBER = 'NUMBER'
CHECKBOX = 'CHECKBOX'
SELECTION = 'SELECTION'
MULTI_SELECTION = 'MULTI_SELECTION'
class CustomFieldDTO(BaseModel):
key: Optional[str] = None
name: Optional[str] = None
type: Optional[Type2] = None
value: Optional[Dict[str, Any]] = None
class CustomFieldsDTO1(BaseModel):
customFields: Optional[List[CustomFieldDTO]] = None
empty: Optional[bool] = None
class CustomFieldsDTO(RootModel[Union[List[CustomFieldDTO], CustomFieldsDTO1]]):
root: Union[List[CustomFieldDTO], CustomFieldsDTO1]
class CustomerContactEmailsDTO(BaseModel):
additional: Optional[List[str]] = Field(
None, description='additional e-mails addresses'
)
cc: Optional[List[str]] = Field(
None, description='e-mails which will be included in the CC list'
)
primary: str = Field(..., description='primary e-mail')
class CategoriesIds(BaseModel):
empty: Optional[bool] = None
class CustomFields(BaseModel):
customFields: Optional[List[CustomFieldDTO]] = None
empty: Optional[bool] = None
class IndustriesIds(BaseModel):
empty: Optional[bool] = None
class Status(Enum):
ACTIVE = 'ACTIVE'
INACTIVE = 'INACTIVE'
POTENTIAL = 'POTENTIAL'
class CustomerDetailsDTO(BaseModel):
addressLine: Optional[str] = None
city: Optional[str] = None
country: Optional[str] = None
countryId: Optional[int] = None
name: Optional[str] = None
postalCode: Optional[str] = None
vatUE: Optional[str] = None
class Type3(Enum):
FINAL = 'FINAL'
DRAFT = 'DRAFT'
CREDIT_NOTE = 'CREDIT_NOTE'
class CustomerInvoiceCreateDTO(BaseModel):
prepaymentsIds: Optional[List[int]] = None
tasksIds: Optional[List[int]] = None
type: Optional[Type3] = None
class CustomerInvoiceCreateResultDTO(BaseModel):
invoiceUrl: Optional[str] = None
invoicesIds: Optional[List[int]] = None
class Status1(Enum):
NOT_READY = 'NOT_READY'
READY = 'READY'
SENT = 'SENT'
class VatCalculationRule(Enum):
SUM_ITEMS = 'SUM_ITEMS'
BY_NET_TOTAL = 'BY_NET_TOTAL'
class Gender(Enum):
FEMALE = 'FEMALE'
MALE = 'MALE'
class CustomerResponsiblePersonsDTO(BaseModel):
accountManagerId: Optional[int] = Field(None, description='account manager')
projectCoordinatorId: Optional[int] = Field(None, description='project coordinator')
projectManagerId: int = Field(..., description='project manager')
salesPersonId: int = Field(..., description='sales person')
class CustomerTaxNoDTO(BaseModel):
number: Optional[str] = Field(None, description='tax number')
type: Optional[str] = Field(
None, description='type (ie. NIP, VAT Reg No, P.IVA) or empty value if unknown'
)
class DocumentsDTO(BaseModel):
projectConfirmationStatus: Optional[str] = None
class DownloadDocumentsRequestDTO(BaseModel):
ids: Optional[List[int]] = None
class EntityWithNameDTO(BaseModel):
id: Optional[int] = None
name: Optional[str] = None
class Event(BaseModel):
raiseTime: Optional[int] = None
class EventsQueue(BaseModel):
all: Optional[List[Event]] = None
empty: Optional[bool] = None
readyToBeDispatched: Optional[bool] = None
class ExportRequestDTO(BaseModel):
ids: Optional[List[int]] = None
class ExternalInfo(BaseModel):
steps: Optional[List[Dict[str, str]]] = None
class FileDTO(BaseModel):
content: Optional[str] = None
name: Optional[str] = None
token: Optional[str] = None
url: Optional[str] = None
class FileDto(BaseModel):
fileId: Optional[str] = None
class FileMetadataDTO(BaseModel):
categoryKey: Optional[str] = None
id: Optional[int] = None
lastModifiedOn: Optional[int] = None
name: Optional[str] = None
size: Optional[int] = None
class FileShareStatusDto(BaseModel):
fileId: Optional[str] = None
message: Optional[str] = None
successful: Optional[bool] = None
class FileToUploadDto(BaseModel):
file: Optional[bytes] = None
class FilesArchiveDto(BaseModel):
archiveUrl: Optional[str] = None
class FilesDto(BaseModel):
files: Optional[List[str]] = None
class FilesShareStatusDto(BaseModel):
statuses: Optional[List[FileShareStatusDto]] = None
class FilterDTO(BaseModel):
properties: Optional[List[Dict[str, Any]]] = None
class FilterPropertyDTO(BaseModel):
name: Optional[str] = None
settings: Optional[Dict[str, Any]] = None
settingsPresent: Optional[bool] = None
type: Optional[str] = None
class FormDataContentDisposition(BaseModel):
creationDate: Optional[datetime] = None
fileName: Optional[str] = None
modificationDate: Optional[datetime] = None
name: Optional[str] = None
parameters: Optional[Dict[str, str]] = None
readDate: Optional[datetime] = None
size: Optional[int] = None
type: Optional[str] = None
class Identifier(BaseModel):
compoundId: Optional[str] = None
id: Optional[int] = None
class ImportRequestDTO(BaseModel):
fileToken: Optional[str] = None
class ImportResultDTO(BaseModel):
currentSystemVersion: Optional[str] = None
importedReportsNames: Optional[List[str]] = None
invalidReportsNames: Optional[List[str]] = None
targetSystemVersion: Optional[str] = None
class IndustriesDTO1(BaseModel):
empty: Optional[bool] = None
class IndustriesDTO(RootModel[Union[List[int], IndustriesDTO1]]):
root: Union[List[int], IndustriesDTO1]
class IndustryDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
id: Optional[int] = Field(None, description='internal identifier')
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
class InputFilesDTO(BaseModel):
logFiles: Optional[List[FileDTO]] = None
referenceFiles: Optional[List[FileDTO]] = None
terminology: Optional[List[FileDTO]] = None
tm: Optional[List[FileDTO]] = None
workFiles: Optional[List[FileDTO]] = None
class InstructionsDTO(BaseModel):
forProvider: Optional[str] = None
fromCustomer: Optional[str] = None
internal: Optional[str] = None
notes: Optional[str] = None
paymentNoteForCustomer: Optional[str] = None
paymentNoteForVendor: Optional[str] = None
class InvitationStatisticsDTO(BaseModel):
alreadyRegisteredPersonsCount: Optional[int] = None
invitedPersonsCount: Optional[int] = None
providersWithAlreadyRegisteredPersonCount: Optional[int] = None
providersWithInvitedPersonCount: Optional[int] = None
providersWithoutPersonCount: Optional[int] = None
class JobCommunicationDto(BaseModel):
instructionsForAllJobs: Optional[str] = None
instructionsForJob: Optional[str] = None
noteFromVendor: Optional[str] = None
class JobDatesDto(BaseModel):
actualEndDate: Optional[int] = None
actualStartDate: Optional[int] = None
deadline: Optional[int] = None
startDate: Optional[int] = None
class JobDocumentsDto(BaseModel):
purchaseOrderStatus: Optional[str] = None
class JobFilesDTO(BaseModel):
inputFiles: Optional[List[FileDTO]] = None
outputFiles: Optional[List[FileDTO]] = None
class JobFilesDto(BaseModel):
deliveredInJobFiles: Optional[List[str]] = None
sharedReferenceFiles: Optional[List[str]] = None
sharedWorkFiles: Optional[List[str]] = None
class JobLanguageCombinationDto(BaseModel):
sourceLanguageId: Optional[int] = None
specializationId: Optional[int] = None
targetLanguageId: Optional[int] = None
class JobStatusDTO(BaseModel):
externalId: Optional[str] = None
status: Optional[str] = None
class RelationToLanguage(Enum):
LANGUAGE_COMBINATION_RELATED = 'LANGUAGE_COMBINATION_RELATED'
SOURCE_LANGUAGE_RELATED_ONLY = 'SOURCE_LANGUAGE_RELATED_ONLY'
TARGET_LANGUAGE_RELATED_ONLY = 'TARGET_LANGUAGE_RELATED_ONLY'
LANGUAGE_INDEPENDENT = 'LANGUAGE_INDEPENDENT'
class JobTypeDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
calculationUnitIds: Optional[List[int]] = None
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
filesNeeded: Optional[bool] = None
id: Optional[int] = Field(None, description='internal identifier')
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
providedByClient: Optional[bool] = None
relationToLanguage: Optional[RelationToLanguage] = None
vendorProductivity: Optional[float] = None
vendorProductivityCalculationUnitId: Optional[int] = None
class JsonNode(BaseModel):
pass
class LanguageCombinationDTO(BaseModel):
sourceLanguageId: Optional[int] = None
specializationId: Optional[int] = None
targetLanguageId: Optional[int] = None
class LanguageCombinationDto(BaseModel):
sourceLanguageId: Optional[int] = None
targetLanguageId: Optional[int] = None
class LanguageDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
id: Optional[int] = Field(None, description='internal identifier')
iso6391: Optional[str] = Field(
None,
description='<a href="http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes">ISO 639-1 code</a>',
)
iso6392: Optional[str] = Field(
None,
description='<a href="http://en.wikipedia.org/wiki/List_of_ISO_639-2_codes">ISO 639-2 code</a>',
)
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
symbol: Optional[str] = Field(None, description='specific symbol or abbreviation')
class LanguageRelationDto(BaseModel):
languageCombinations: Optional[List[LanguageCombinationDto]] = None
languages: Optional[List[int]] = None
class LanguageSpecializationDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
id: Optional[int] = Field(None, description='internal identifier')
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
class LastModificationDTO(BaseModel):
date: Optional[str] = None
modifier: Optional[str] = None
class LeadSourceDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
availableForCustomer: Optional[bool] = Field(
None, description='should be available for customer'
)
availableForProvider: Optional[bool] = Field(
None, description='should be available for provider'
)
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
id: Optional[int] = Field(None, description='internal identifier')
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
class LocalSettingsDTO(BaseModel):
maxLinesInRow: Optional[int] = None
maxRows: Optional[int] = None
class LongDTO(BaseModel):
value: Optional[int] = None
class MacroRequestDTO(BaseModel):
async_: Optional[bool] = Field(
None,
alias='async',
description='indicates whether the macro should be executed asynchronously or synchronously (default: false)',
)
ids: Optional[List[int]] = Field(
None,
description='list of internal identifiers of elements to be processed by the macro, can be empty for certain macros',
)
params: Optional[Dict[str, Dict[str, Any]]] = Field(
None,
description='map of custom key-value pairs that can optionally parametrize the macro execution',
)
class MessageBodyWorkers(BaseModel):
pass
class OrderDTO(BaseModel):
column: Optional[str] = None
type: Optional[str] = None
class Parameter(BaseModel):
type: Optional[str] = None
value: Optional[str] = None
class ParameterizedHeader(BaseModel):
parameters: Optional[Dict[str, str]] = None
value: Optional[str] = None
class Type5(Enum):
SIMPLE = 'SIMPLE'
CAT = 'CAT'
class PayableCreateDTO(BaseModel):
calculationUnitId: Optional[int] = None
catLogFile: Optional[FileDTO] = None
currencyId: Optional[int] = None
description: Optional[str] = None
id: Optional[int] = None
ignoreMinimumCharge: Optional[bool] = None
invoiceId: Optional[str] = None
jobId: Optional[Dict[str, Any]] = None
jobTypeId: Optional[int] = None
languageCombination: Optional[ChargeLanguageCombinationDTO] = None
languageCombinationIdNumber: Optional[str] = None
minimumCharge: Optional[float] = None
quantity: Optional[float] = None
rate: Optional[float] = None
rateOrigin: Optional[RateOrigin] = None
total: Optional[float] = None
type: Optional[Type5] = None
class PayableDTO(BaseModel):
calculationUnitId: Optional[int] = None
currencyId: Optional[int] = None
description: Optional[str] = None
id: Optional[int] = None
ignoreMinimumCharge: Optional[bool] = None
invoiceId: Optional[str] = None
jobId: Optional[Dict[str, Any]] = None
jobTypeId: Optional[int] = None
languageCombination: Optional[ChargeLanguageCombinationDTO] = None
languageCombinationIdNumber: Optional[str] = None
minimumCharge: Optional[float] = None
quantity: Optional[float] = None
rate: Optional[float] = None
rateOrigin: Optional[RateOrigin] = None
total: Optional[float] = None
type: Optional[Type5] = None
class PaymentTermsDTO(BaseModel):
description: Optional[str] = None
name: Optional[str] = None
class PeopleDTO(BaseModel):
projectManagerId: Optional[int] = None
class PermissionsDTO(BaseModel):
sharedGroups: Optional[List[int]] = None
class PersonContactEmailsDTO(BaseModel):
additional: Optional[List[str]] = Field(
None, description='additional e-mails addresses'
)
primary: str = Field(..., description='primary e-mail')
class PersonDepartmentDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
id: Optional[int] = Field(None, description='internal identifier')
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
class PersonPositionDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
id: Optional[int] = Field(None, description='internal identifier')
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
class PreferredRequestDTO(BaseModel):
preferred: Optional[bool] = None
class ProjectCreateDTO(BaseModel):
clientId: Optional[int] = None
externalId: Optional[str] = None
name: Optional[str] = None
serviceId: Optional[int] = None
class Status2(Enum):
REQUESTED_PROJECT = 'REQUESTED_PROJECT'
OPENED = 'OPENED'
CLOSED = 'CLOSED'
CANCELLED = 'CANCELLED'
CLAIM = 'CLAIM'
class ProjectFileAddedByDto(BaseModel):
userType: Optional[str] = None
vendorId: Optional[int] = None
class ProjectLanguagesDTO(BaseModel):
languageCombinations: Optional[List[LanguageCombinationDTO]] = None
sourceLanguageId: Optional[int] = None
specializationId: Optional[int] = None
targetLanguageIds: Optional[List[int]] = None
class ProjectStatusDTO(BaseModel):
status: Optional[str] = None
class Status3(Enum):
ACTIVE = 'ACTIVE'
INACTIVE = 'INACTIVE'
WAITING_FOR_APPROVAL = 'WAITING_FOR_APPROVAL'
REJECTED = 'REJECTED'
TOO_EXPENSIVE = 'TOO_EXPENSIVE'
INCOMPLETE_DATA = 'INCOMPLETE_DATA'
POTENTIAL = 'POTENTIAL'
NOT_CONFIRMED = 'NOT_CONFIRMED'
class ProviderInvoiceCreateDTO(BaseModel):
jobsIds: Optional[List[int]] = None
class ProviderInvoiceCreateResultDTO(BaseModel):
invoiceUrl: Optional[str] = None
invoicesIds: Optional[List[int]] = None
class PaymentStatus(Enum):
NOT_PAID = 'NOT_PAID'
FULLY_PAID = 'FULLY_PAID'
IRRECOVERABLE = 'IRRECOVERABLE'
PARTIALLY_PAID = 'PARTIALLY_PAID'
class Status4(Enum):
POSTPONED = 'POSTPONED'
TO_BE_SENT = 'TO_BE_SENT'
SENT = 'SENT'
CONFIRMED = 'CONFIRMED'
BILL_CREATED = 'BILL_CREATED'
class ProvinceDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
countryId: Optional[int] = Field(None, description="country's identifier")
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
id: Optional[int] = Field(None, description='internal identifier')
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
class QuoteCreateDTO(BaseModel):
clientId: Optional[int] = None
name: Optional[str] = None
opportunityOfferId: Optional[int] = None
serviceId: Optional[int] = None
class ReceivableCreateDTO(BaseModel):
calculationUnitId: Optional[int] = None
catLogFile: Optional[FileDTO] = None
currencyId: Optional[int] = None
description: Optional[str] = None
id: Optional[int] = None
ignoreMinimumCharge: Optional[bool] = None
invoiceId: Optional[str] = None
jobTypeId: Optional[int] = None
languageCombination: Optional[ChargeLanguageCombinationDTO] = None
languageCombinationIdNumber: Optional[str] = None
minimumCharge: Optional[float] = None
quantity: Optional[float] = None
rate: Optional[float] = None
rateOrigin: Optional[RateOrigin] = None
taskId: Optional[int] = None
total: Optional[float] = None
type: Optional[Type5] = None
class ReceivableDTO(BaseModel):
calculationUnitId: Optional[int] = None
currencyId: Optional[int] = None
description: Optional[str] = None
id: Optional[int] = None
ignoreMinimumCharge: Optional[bool] = None
invoiceId: Optional[str] = None
jobTypeId: Optional[int] = None
languageCombination: Optional[ChargeLanguageCombinationDTO] = None
languageCombinationIdNumber: Optional[str] = None
minimumCharge: Optional[float] = None
quantity: Optional[float] = None
rate: Optional[float] = None
rateOrigin: Optional[RateOrigin] = None
taskId: Optional[int] = None
total: Optional[float] = None
type: Optional[Type5] = None
class RemoteCATToolReferencesDto(BaseModel):
catResourceId: Optional[str] = None
catToolDocumentId: Optional[str] = None
editorUrl: Optional[str] = None
class ReportResultDTO(BaseModel):
url: Optional[str] = None
class ResponsiblePersonsDTO(BaseModel):
projectCoordinatorId: Optional[int] = None
projectManagerId: Optional[int] = None
class SendRemindersRequestDTO(BaseModel):
ids: Optional[List[int]] = None
class SendRemindersResponseDTO(BaseModel):
numberOfSentEmails: Optional[int] = None
class ServiceDTO(BaseModel):
active: Optional[bool] = Field(
None, description='should this value be available on the XTRF selection lists'
)
default: Optional[bool] = Field(
None, description='should this value be set by default in XTRF selection lists'
)
id: Optional[int] = Field(None, description='internal identifier')
name: Optional[str] = Field(
None, description="localised name (formatted in the current user's locale)"
)
preferred: Optional[bool] = Field(
None,
description='should this value be available on the top of XTRF selection lists, in the Preferred section',
)
class SettingsDTO(BaseModel):
local: Optional[LocalSettingsDTO] = None
name: Optional[str] = None
class SmartContactsDTO(BaseModel):
additionalIds: Optional[List[int]] = None
primaryId: Optional[int] = None
class SmartCustomFieldDTO(BaseModel):
value: Optional[Dict[str, Any]] = None
class SourceLanguageDTO(BaseModel):
sourceLanguageId: Optional[int] = None
class SpecializationDTO(BaseModel):
specializationId: Optional[int] = None
class StatusRequestDTO(BaseModel):
status: Optional[Status4] = None
class StepTypeSemanticsDto(BaseModel):
canVerifyFiles: Optional[bool] = None
isScripted: Optional[bool] = None
class StringDTO(BaseModel):
value: Optional[str] = None
class SubscriptionDTO(BaseModel):
embed: Optional[str] = Field(
None, description='additional fields which should be embedded in the event'
)
event: Optional[str] = Field(
None, description='event to which you want to subscribe'
)
filter: Optional[str] = Field(
None, description="filter expression in the form 'attribute=value'"
)
url: Optional[str] = Field(
None, description='url that will be invoked by XTRF on event'
)
class TargetLanguagesDTO(BaseModel):
targetLanguageIds: Optional[List[int]] = None
class Category(Enum):
WORKFILE = 'WORKFILE'
TM = 'TM'
DICTIONARY = 'DICTIONARY'
REF = 'REF'
LOG_FILE = 'LOG_FILE'
class TaskFileDTO(BaseModel):
category: Optional[Category] = Field(None, description='file category')
content: Optional[str] = None
name: Optional[str] = None
token: Optional[str] = None
url: Optional[str] = None
class TaskFinanceDTO(BaseModel):
invoiceable: Optional[bool] = Field(
None, description='is this task invoiceable or not'
)
class TaskJobsDTO(BaseModel):
jobCount: Optional[int] = None
jobIds: Optional[List[int]] = None
class TaskProgressDTO(BaseModel):
phase: Optional[str] = None
status: Optional[str] = None
class TimeDTO(BaseModel):
value: Optional[int] = None
class TimeZoneDTO(BaseModel):
displayName: Optional[str] = None
id: Optional[str] = None
offset: Optional[int] = None
class UrlResultDTO(BaseModel):
url: Optional[str] = None
class UserDTO(BaseModel):
customFields: Optional[Union[List[CustomFieldDTO], CustomFields]] = None
email: Optional[str] = None
firstName: Optional[str] = None
gender: Optional[str] = None
id: Optional[int] = None
lastName: Optional[str] = None
login: Optional[str] = None
mobilePhone: Optional[str] = None
phone: Optional[str] = None
positionName: Optional[str] = None
timeZoneId: Optional[str] = None
userGroupName: Optional[str] = None
class VendorPriceProfileDTO(BaseModel):
vendorPriceProfileId: Optional[int] = None
class ViewBriefDTO(BaseModel):
access: Optional[AccessDTO] = None
current: Optional[bool] = None
id: Optional[int] = None
lastModification: Optional[LastModificationDTO] = None
mine: Optional[bool] = None
name: Optional[str] = None
owner: Optional[str] = None
class ViewsBriefDTO(BaseModel):
access: Optional[AccessDTO] = None
list: Optional[List[ViewBriefDTO]] = None
class VolumeDTO(BaseModel):
unitId: Optional[int] = None
value: Optional[float] = None
class AccountingCustomersInvoicesIdsGetResponse(RootModel[List[int]]):
root: List[int]
class AccountingProvidersInvoicesIdsGetResponse(RootModel[List[int]]):
root: List[int]
class BrowserGetResponse(BaseModel):
pass
class BrowserCsvGetResponse(BaseModel):
pass
class BrowserViewsViewIdColumnsColumnNameSettingsGetResponse(BaseModel):
pass
class BrowserViewsViewIdColumnsColumnNameSettingsPutRequest(BaseModel):
pass
class BrowserViewsViewIdColumnsColumnNameSettingsPutResponse(BaseModel):
pass
class BrowserViewsViewIdFilterPutRequest(RootModel[List[FilterPropertyDTO]]):
root: List[FilterPropertyDTO]
class BrowserViewsViewIdFilterFilterPropertyPutResponse(BaseModel):
pass
class CustomersGetResponse(RootModel[List[EntityWithNameDTO]]):
root: List[EntityWithNameDTO]
class CustomersIdsGetResponse(RootModel[List[int]]):
root: List[int]
class CustomersPersonsIdsGetResponse(RootModel[List[int]]):
root: List[int]
class ProjectsIdsGetResponse(RootModel[List[int]]):
root: List[int]
class ProvidersIdsGetResponse(RootModel[List[int]]):
root: List[int]
class ProvidersPersonsIdsGetResponse(RootModel[List[int]]):
root: List[int]
class QuotesIdsGetResponse(RootModel[List[int]]):
root: List[int]
class SubscriptionGetResponse(RootModel[List[ActiveSubscriptionDTO]]):
root: List[ActiveSubscriptionDTO]
class UsersGetResponse(RootModel[List[EntityWithNameDTO]]):
root: List[EntityWithNameDTO]
class UsersUserIdPasswordPutRequest(BaseModel):
newPassword: Optional[str] = Field(None, description='new password')
oldPassword: Optional[str] = Field(None, description='old password')
class AddJobToProcessDTO(BaseModel):
externalInfo: Optional[ExternalInfo] = None
externalProjectId: Optional[str] = None
previousStepNumber: Optional[int] = None
stepTypeId: Optional[str] = None
class ChargeDTO(BaseModel):
calculationUnitId: Optional[int] = None
currencyId: Optional[int] = None
description: Optional[str] = None
id: Optional[int] = None
ignoreMinimumCharge: Optional[bool] = None
invoiceId: Optional[str] = None
jobTypeId: Optional[int] = None
languageCombination: Optional[ChargeLanguageCombinationDTO] = None
languageCombinationIdNumber: Optional[str] = None
minimumCharge: Optional[float] = None
rateOrigin: Optional[RateOrigin] = None
total: Optional[float] = None
type: Optional[Type1] = None
class ClassicPeopleDTO(BaseModel):
customerContacts: Optional[ContactsDTO] = None
responsiblePersons: Optional[ResponsiblePersonsDTO] = None
class ColumnDTO(BaseModel):
name: Optional[str] = None
settings: Optional[JsonNode] = None
class ContactDTO(BaseModel):
emails: Optional[CustomerContactEmailsDTO] = None
fax: Optional[str] = Field(None, description='fax number')
phones: Optional[List[str]] = Field(None, description="phones' numbers")
sms: Optional[str] = Field(
None,
description='mobile phone for which SMS notifications will be sent (if configured)',
)
websites: Optional[List[str]] = Field(None, description='websites')
class CurrencyHistoryDTO(BaseModel):
dateFrom: Optional[TimeDTO] = None
exchangeRate: Optional[str] = None
lastModification: Optional[TimeDTO] = None
originDetails: Optional[str] = None
publicationDate: Optional[TimeDTO] = None
class CustomerAccountingDTO(BaseModel):
taxNumbers: Optional[List[CustomerTaxNoDTO]] = None
class CustomerInvoiceDatesDTO(BaseModel):
draftDate: Optional[TimeDTO] = None
finalDate: Optional[TimeDTO] = None
invoiceDate: Optional[TimeDTO] = None
paymentDueDate: Optional[TimeDTO] = None
class DictionaryEntity(BaseModel):
active: Optional[bool] = None
andClearEventsQueue: Optional[EventsQueue] = None
auditDisplayName: Optional[str] = None
auditPath: Optional[str] = None
classNameKey: Optional[str] = None
classSimpleName: Optional[str] = None
compoundId: Optional[str] = None
defaultEntity: Optional[bool] = None
displayName: Optional[str] = None
entityMarkedAsNotSupposedToBePersisted: Optional[bool] = None
eventsQueueReadyToBeDispatched: Optional[bool] = None
id: Optional[int] = None
identifier: Optional[Identifier] = None
internalDescription: Optional[str] = None
lastModificationDate: Optional[datetime] = None
name: str
packedCompoundId: Optional[str] = None
preferedEntity: bool
preferred: Optional[bool] = None
version: Optional[int] = None
class ExternalFileDto(BaseModel):
category: Optional[str] = None
externalInfo: Optional[Dict[str, str]] = None
filename: Optional[str] = None
languageCombinationIds: Optional[List[LanguageCombinationDto]] = None
languageIds: Optional[List[int]] = None
class FileCategorizationDto(BaseModel):
category: Optional[str] = None
fileId: Optional[str] = None
languageCombinationIds: Optional[List[LanguageCombinationDto]] = None
languageIds: Optional[List[int]] = None
class FileCategorizationsDto(BaseModel):
files: Optional[List[FileCategorizationDto]] = None
class FileLinkCategorizationDto(BaseModel):
category: Optional[str] = None
externalInfo: Optional[Dict[str, str]] = None
filename: Optional[str] = None
languageCombinationIds: Optional[List[LanguageCombinationDto]] = None
languageIds: Optional[List[int]] = None
toBeGenerated: Optional[bool] = None
url: Optional[str] = None
class FileLinkCategorizationsDto(BaseModel):
fileLinks: Optional[List[FileLinkCategorizationDto]] = None
class FinanceDTO(BaseModel):
ROI: Optional[float] = None
currencyId: Optional[int] = None
margin: Optional[float] = None
payables: Optional[List[ChargeDTO]] = None
profit: Optional[float] = None
receivables: Optional[List[ChargeDTO]] = None
totalAgreed: Optional[float] = None
totalCost: Optional[float] = None
class GetLicenseResult(BaseModel):
clientId: Optional[str] = None
parameters: Optional[Dict[str, Parameter]] = None
class JobDTO(BaseModel):
files: Optional[JobFilesDTO] = None
id: Optional[int] = None
idNumber: Optional[str] = None
name: Optional[str] = None
class ManyValuesPerTypeDTO(BaseModel):
calculationUnit: Optional[List[CalculationUnitDTO]] = None
category: Optional[List[CategoryDTO]] = None
country: Optional[List[CountryDTO]] = None
currency: Optional[List[CurrencyDTO]] = None
industry: Optional[List[IndustryDTO]] = None
jobType: Optional[List[JobTypeDTO]] = None
language: Optional[List[LanguageDTO]] = None
leadSource: Optional[List[LeadSourceDTO]] = None
personDepartment: Optional[List[PersonDepartmentDTO]] = None
personPosition: Optional[List[PersonPositionDTO]] = None
province: Optional[List[ProvinceDTO]] = None
specialization: Optional[List[LanguageSpecializationDTO]] = None
class PaymentDTO(BaseModel):
amount: Optional[float] = None
notes: Optional[str] = None
paymentDate: Optional[TimeDTO] = None
paymentMethodId: Optional[int] = None
class PersonContactDTO(BaseModel):
emails: Optional[PersonContactEmailsDTO] = None
fax: Optional[str] = Field(None, description='fax number')
phones: Optional[List[str]] = Field(None, description="phones' numbers")
sms: Optional[str] = Field(
None,
description='mobile phone for which SMS notifications will be sent (if configured)',
)
class ProjectDTOv2(BaseModel):
budgetCode: Optional[str] = None
categoryIds: Optional[List[int]] = None
clientDeadline: Optional[int] = None
clientId: Optional[int] = None
clientNotes: Optional[str] = None
clientReferenceNumber: Optional[str] = None
documents: Optional[DocumentsDTO] = None
id: Optional[str] = None
instructionsForAllJobs: Optional[str] = None
internalNotes: Optional[str] = None
isClassicProject: Optional[bool] = None
languages: Optional[ProjectLanguagesDTO] = None
name: Optional[str] = None
orderedOn: Optional[int] = None
origin: Optional[str] = None
people: Optional[PeopleDTO] = None
projectId: Optional[str] = None
projectIdNumber: Optional[str] = None
quoteIdNumber: Optional[str] = None
serviceId: Optional[int] = None
status: Optional[str] = None
volume: Optional[VolumeDTO] = None
class ProjectDatesDTO(BaseModel):
actualDeliveryDate: Optional[TimeDTO] = None
actualStartDate: Optional[TimeDTO] = None
deadline: Optional[TimeDTO] = None
startDate: Optional[TimeDTO] = None
class ProjectFileDto(BaseModel):
addedBy: Optional[ProjectFileAddedByDto] = None
addedInJob: Optional[str] = None
addedInLastStep: Optional[bool] = None
addedInStep: Optional[int] = None
categoryKey: Optional[str] = None
id: Optional[str] = None
isAccepted: Optional[bool] = None
isLink: Optional[bool] = None
isRemote: Optional[bool] = None
languageRelation: Optional[LanguageRelationDto] = None
lastModifiedOn: Optional[int] = None
name: Optional[str] = None
remoteCATToolReferences: Optional[RemoteCATToolReferencesDto] = None
sharedWithJobs: Optional[List[str]] = None
size: Optional[int] = None
url: Optional[str] = None
class ProviderInvoiceDatesDTO(BaseModel):
draftDate: Optional[TimeDTO] = None
finalDate: Optional[TimeDTO] = None
invoiceUploadedDate: Optional[TimeDTO] = None
paymentDueDate: Optional[TimeDTO] = None
class ProviderPersonDTO(BaseModel):
active: Optional[bool] = None
contact: Optional[PersonContactDTO] = None
customFields: Optional[Union[List[CustomFieldDTO], CustomFields]] = None
gender: Optional[Gender] = None
id: Optional[int] = None
lastName: Optional[str] = None
motherTonguesIds: Optional[List[int]] = None
name: Optional[str] = None
positionId: Optional[int] = None
providerId: Optional[int] = None
class QuoteDTOv2(BaseModel):
budgetCode: Optional[str] = None
businessDays: Optional[int] = None
categoryIds: Optional[List[int]] = None
clientDeadline: Optional[int] = None
clientId: Optional[int] = None
clientNotes: Optional[str] = None
clientReferenceNumber: Optional[str] = None
createdOn: Optional[int] = None
documents: Optional[DocumentsDTO] = None
expectedDeliveryDate: Optional[int] = None
id: Optional[str] = None
instructionsForAllJobs: Optional[str] = None
internalNotes: Optional[str] = None
isClassicQuote: Optional[bool] = None
languages: Optional[ProjectLanguagesDTO] = None
name: Optional[str] = None
origin: Optional[str] = None
people: Optional[PeopleDTO] = None
quoteExpiry: Optional[int] = None
quoteId: Optional[str] = None
quoteIdNumber: Optional[str] = None
serviceId: Optional[int] = None
status: Optional[str] = None
volume: Optional[VolumeDTO] = None
class QuoteDatesDTO(BaseModel):
createdOn: Optional[TimeDTO] = None
deadline: Optional[TimeDTO] = None
offerExpiry: Optional[TimeDTO] = None
startDate: Optional[TimeDTO] = None
class StepTypeDto(BaseModel):
id: Optional[str] = None
jobTypeId: Optional[int] = None
name: Optional[str] = None
semantics: Optional[StepTypeSemanticsDto] = None
class TaskCreateDTO(BaseModel):
clientTaskPONumber: Optional[str] = Field(None, description='client task PO number')
dates: Optional[ProjectDatesDTO] = None
files: Optional[List[TaskFileDTO]] = Field(None, description='files')
instructions: Optional[InstructionsDTO] = None
languageCombination: Optional[CommonLanguageCombinationDTO] = None
name: Optional[str] = Field(None, description='name')
people: Optional[ClassicPeopleDTO] = None
specializationId: Optional[int] = Field(None, description='specialization')
workflowId: Optional[int] = Field(None, description='workflow')
class TaskDTO(BaseModel):
clientTaskPONumber: Optional[str] = Field(None, description='client task PO number')
customFields: Optional[Union[List[CustomFieldDTO], CustomFields]] = None
dates: Optional[ProjectDatesDTO] = None
finance: Optional[TaskFinanceDTO] = None
id: Optional[int] = Field(None, description='internal identifier')
idNumber: Optional[str] = Field(None, description='identifier')
instructions: Optional[InstructionsDTO] = None
jobs: Optional[TaskJobsDTO] = None
languageCombination: Optional[CommonLanguageCombinationDTO] = None
name: Optional[str] = Field(None, description='name')
people: Optional[ClassicPeopleDTO] = None
projectId: Optional[int] = Field(None, description="project's internal identifier")
quoteId: Optional[int] = Field(None, description="quote's internal identifier")
class TaskFilesDTO(BaseModel):
bundles: Optional[Dict[str, List[FileDTO]]] = None
inputFiles: Optional[InputFilesDTO] = None
jobs: Optional[List[JobDTO]] = None
outputFiles: Optional[List[FileDTO]] = None
class ViewDTO(BaseModel):
columns: Optional[List[ColumnDTO]] = None
order: Optional[OrderDTO] = None
permissions: Optional[PermissionsDTO] = None
settings: Optional[SettingsDTO] = None
class ViewDetailsDTO(BaseModel):
access: Optional[AccessDTO] = None
actions: Optional[List[ActionDTO]] = None
filter: Optional[FilterDTO] = None
view: Optional[ViewDTO] = None
viewId: Optional[int] = None
class ViewWithIdDTO(BaseModel):
columns: Optional[List[ColumnDTO]] = None
order: Optional[OrderDTO] = None
permissions: Optional[PermissionsDTO] = None
settings: Optional[SettingsDTO] = None
viewId: Optional[int] = None
class AccountingCustomersInvoicesInvoiceIdPaymentsGetResponse(
RootModel[List[PaymentDTO]]
):
root: List[PaymentDTO]
class AccountingProvidersInvoicesInvoiceIdPaymentsGetResponse(
RootModel[List[PaymentDTO]]
):
root: List[PaymentDTO]
class BrowserViewsViewIdColumnsGetResponse(RootModel[List[ColumnDTO]]):
root: List[ColumnDTO]
class BrowserViewsViewIdColumnsPutRequest(RootModel[List[ColumnDTO]]):
root: List[ColumnDTO]
class BrowserViewsViewIdColumnsPutResponse(RootModel[List[ColumnDTO]]):
root: List[ColumnDTO]
class BrowserViewsViewIdColumnsColumnNameDeleteResponse(RootModel[List[ColumnDTO]]):
root: List[ColumnDTO]
class V2JobsJobIdFilesDeliveredGetResponse(RootModel[List[ProjectFileDto]]):
root: List[ProjectFileDto]
class V2JobsJobIdFilesSharedReferenceFilesGetResponse(RootModel[List[ProjectFileDto]]):
root: List[ProjectFileDto]
class V2JobsJobIdFilesSharedWorkFilesGetResponse(RootModel[List[ProjectFileDto]]):
root: List[ProjectFileDto]
class V2ProjectsProjectIdFilesGetResponse(RootModel[List[ProjectFileDto]]):
root: List[ProjectFileDto]
class V2ProjectsProjectIdFilesDeliverableGetResponse(RootModel[List[ProjectFileDto]]):
root: List[ProjectFileDto]
class V2QuotesQuoteIdFilesGetResponse(RootModel[List[ProjectFileDto]]):
root: List[ProjectFileDto]
class ClassicProjectCreateDTO(BaseModel):
categoriesIds: Optional[List[int]] = Field(
None, description='list of language categories'
)
customerId: int
dates: Optional[ProjectDatesDTO] = None
inputFiles: Optional[List[TaskFileDTO]] = Field(None, description='input files')
instructions: Optional[InstructionsDTO] = None
name: Optional[str] = None
people: Optional[ClassicPeopleDTO] = None
serviceId: int
sourceLanguageId: Optional[int] = None
specializationId: int
targetLanguagesIds: Optional[List[int]] = None
class CustomerInvoiceDTO(BaseModel):
currencyId: Optional[int] = None
customerDetails: Optional[CustomerDetailsDTO] = None
customerId: Optional[int] = None
dates: Optional[CustomerInvoiceDatesDTO] = None
id: Optional[int] = None
invoiceNumber: Optional[str] = None
paymentMethodId: Optional[int] = None
paymentTerms: Optional[PaymentTermsDTO] = None
status: Optional[Status1] = None
tasks: Optional[List[TaskDTO]] = None
tasksValue: Optional[float] = None
totalGross: Optional[float] = None
totalInWords: Optional[str] = None
totalNetto: Optional[float] = None
type: Optional[Type3] = None
vatCalculationRule: Optional[VatCalculationRule] = None
class CustomerPersonDTO(BaseModel):
active: Optional[bool] = None
contact: Optional[PersonContactDTO] = None
customFields: Optional[Union[List[CustomFieldDTO], CustomFields]] = None
customerId: Optional[int] = None
firstProjectDate: Optional[datetime] = None
firstQuoteDate: Optional[datetime] = None
gender: Optional[Gender] = None
id: Optional[int] = None
lastName: Optional[str] = None
lastProjectDate: Optional[datetime] = None
lastQuoteDate: Optional[datetime] = None
motherTonguesIds: Optional[List[int]] = None
name: Optional[str] = None
numberOfProjects: Optional[int] = None
numberOfQuotes: Optional[int] = None
positionId: Optional[int] = None
class JobDto(BaseModel):
communication: Optional[JobCommunicationDto] = None
dates: Optional[JobDatesDto] = None
documents: Optional[JobDocumentsDto] = None
files: Optional[JobFilesDto] = None
id: Optional[str] = None
idNumber: Optional[str] = None
languages: Optional[List[JobLanguageCombinationDto]] = None
name: Optional[str] = None
status: Optional[str] = None
stepNumber: Optional[int] = None
stepType: Optional[StepTypeDto] = None
vendorId: Optional[int] = None
vendorPriceProfileId: Optional[int] = None
class ProjectDTOv1(BaseModel):
categoriesIds: Optional[List[int]] = None
contactPersonId: Optional[int] = None
contacts: Optional[ContactsDTO] = None
customFields: Optional[Union[List[CustomFieldDTO], CustomFields]] = None
customerId: Optional[int] = None
dates: Optional[ProjectDatesDTO] = None
finance: Optional[FinanceDTO] = None
id: Optional[int] = None
idNumber: Optional[str] = None
instructions: Optional[InstructionsDTO] = None
isClassicProject: Optional[bool] = None
name: Optional[str] = None
projectId: Optional[str] = None
projectManagerId: Optional[int] = None
specializationId: Optional[int] = None
status: Optional[Status2] = None
tasks: Optional[List[TaskDTO]] = None
class ProviderDTO(BaseModel):
billingAddress: Optional[AddressDTO] = None
branchId: Optional[int] = None
competencies: Optional[CompetenciesDTO] = None
contact: Optional[ContactDTO] = None
correspondenceAddress: Optional[AddressDTO] = None
customFields: Optional[Union[List[CustomFieldDTO], CustomFields]] = None
fullName: Optional[str] = None
id: Optional[int] = None
idNumber: Optional[str] = None
leadSourceId: Optional[int] = None
name: Optional[str] = None
notes: Optional[str] = None
persons: Optional[List[ProviderPersonDTO]] = None
status: Optional[Status3] = None
class ProviderInvoiceDTO(BaseModel):
currencyId: Optional[int] = None
dates: Optional[ProviderInvoiceDatesDTO] = None
draftNumber: Optional[str] = None
finalNumber: Optional[str] = None
id: Optional[int] = None
internalNumber: Optional[str] = None
jobsNetValue: Optional[float] = None
notesFromProvider: Optional[str] = None
paymentStatus: Optional[PaymentStatus] = None
providerId: Optional[int] = None
status: Optional[Status4] = None
totalGross: Optional[float] = None
totalGrossInWords: Optional[str] = None
totalNetto: Optional[float] = None
class QuoteDTOv1(BaseModel):
automaticallyAcceptSentQuote: Optional[bool] = None
categoriesIds: Optional[List[int]] = None
contactPersonId: Optional[int] = None
customFields: Optional[Union[List[CustomFieldDTO], CustomFields]] = None
customerId: Optional[int] = None
dates: Optional[QuoteDatesDTO] = None
finance: Optional[FinanceDTO] = None
id: Optional[int] = None
idNumber: Optional[str] = None
instructions: Optional[InstructionsDTO] = None
isClassicQuote: Optional[bool] = None
name: Optional[str] = None
quoteId: Optional[str] = None
salesPersonId: Optional[int] = None
status: Optional[str] = None
tasks: Optional[List[TaskDTO]] = None
class AccountingCustomersInvoicesGetResponse(RootModel[List[CustomerInvoiceDTO]]):
root: List[CustomerInvoiceDTO]
class AccountingProvidersInvoicesGetResponse(RootModel[List[ProviderInvoiceDTO]]):
root: List[ProviderInvoiceDTO]
class V2ProjectsProjectIdJobsGetResponse(RootModel[List[JobDto]]):
root: List[JobDto]
class V2QuotesQuoteIdJobsGetResponse(RootModel[List[JobDto]]):
root: List[JobDto]
class CustomerDTO(BaseModel):
accountOnCustomerServer: Optional[str] = None
accounting: Optional[CustomerAccountingDTO] = None
billingAddress: Optional[AddressDTO] = None
branchId: Optional[int] = None
categoriesIds: Optional[Union[List[int], CategoriesIds]] = None
clientFirstProjectDate: Optional[datetime] = None
clientFirstQuoteDate: Optional[datetime] = None
clientLastProjectDate: Optional[datetime] = None
clientLastQuoteDate: Optional[datetime] = None
clientNumberOfProjects: Optional[int] = None
clientNumberOfQuotes: Optional[int] = None
contact: Optional[ContactDTO] = None
contractNumber: Optional[str] = None
correspondenceAddress: Optional[AddressDTO] = None
customFields: Optional[Union[List[CustomFieldDTO], CustomFields]] = None
fullName: Optional[str] = None
id: Optional[int] = None
idNumber: Optional[str] = None
industriesIds: Optional[Union[List[int], IndustriesIds]] = None
leadSourceId: Optional[int] = None
limitAccessToPeopleResponsible: Optional[bool] = None
name: Optional[str] = None
notes: Optional[str] = None
persons: Optional[List[CustomerPersonDTO]] = None
responsiblePersons: Optional[CustomerResponsiblePersonsDTO] = None
salesNotes: Optional[str] = None
status: Optional[Status] = None
class BodyPart(BaseModel):
contentDisposition: Optional[ContentDisposition] = None
entity: Optional[Dict[str, Any]] = None
headers: Optional[Headers] = None
mediaType: Optional[MediaType] = None
messageBodyWorkers: Optional[MessageBodyWorkers] = None
parameterizedHeaders: Optional[ParameterizedHeaders] = None
parent: Optional[MultiPart] = None
providers: Optional[Dict[str, Any]] = None
class FormDataBodyPart(BaseModel):
contentDisposition: Optional[ContentDisposition] = None
entity: Optional[Dict[str, Any]] = None
formDataContentDisposition: Optional[FormDataContentDisposition] = None
headers: Optional[Headers] = None
mediaType: Optional[MediaType] = None
messageBodyWorkers: Optional[MessageBodyWorkers] = None
name: Optional[str] = None
parameterizedHeaders: Optional[ParameterizedHeaders] = None
parent: Optional[MultiPart] = None
providers: Optional[Dict[str, Any]] = None
simple: Optional[bool] = None
value: Optional[str] = None
class FormDataMultiPart(BaseModel):
bodyParts: Optional[List[BodyPart]] = None
contentDisposition: Optional[ContentDisposition] = None
entity: Optional[Dict[str, Any]] = None
fields: Optional[Dict[str, List[FormDataBodyPart]]] = None
headers: Optional[Headers] = None
mediaType: Optional[MediaType] = None
messageBodyWorkers: Optional[MessageBodyWorkers] = None
parameterizedHeaders: Optional[ParameterizedHeaders] = None
parent: Optional[MultiPart] = None
providers: Optional[Dict[str, Any]] = None
class MultiPart(BaseModel):
bodyParts: Optional[List[BodyPart]] = None
contentDisposition: Optional[ContentDisposition] = None
entity: Optional[Dict[str, Any]] = None
headers: Optional[Headers] = None
mediaType: Optional[MediaType] = None
messageBodyWorkers: Optional[MessageBodyWorkers] = None
parameterizedHeaders: Optional[ParameterizedHeaders] = None
parent: Optional[MultiPart] = None
providers: Optional[Dict[str, Any]] = None
BodyPart.model_rebuild()
FormDataBodyPart.model_rebuild()
FormDataMultiPart.model_rebuild()