Skip to content

Instantly share code, notes, and snippets.

@Furkanzmc
Last active March 10, 2020 00:30
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Furkanzmc/ed29e9044816df9701d4ef5fb2969f01 to your computer and use it in GitHub Desktop.
Save Furkanzmc/ed29e9044816df9701d4ef5fb2969f01 to your computer and use it in GitHub Desktop.
swagger: '2.0'
produces:
- application/json
securityDefinitions:
apiKey:
in: header
type: apiKey
description: Make sure to include `JWT` prefix when typing your API key in the dialog
name: Authorization
host: api.cuz.ca
consumes:
- application/json
info:
version: 0.4.5
title: Cuz API
description: |
This is an excerpt from the internal API documentation at Cuz. This is
intended for evaluation purposes and does not reflect the entire API.
paths:
/jobs/:
post:
responses:
'201':
description: Successful response
schema:
type: object
properties:
job:
$ref: '#/definitions/Job'
'400':
description: Parameter error
schema:
$ref: '#/definitions/Error'
'401':
description: User is not authenticated
schema:
$ref: '#/definitions/Error'
description: |
Here's how job adding works. You need to create an initial job before
you can assign a translator to it. So, when a job is created it's
initial status will be `draft`, meaning that no translator has been
appointed to it yet. At this stage, you can update the job and see
the pricing for it. After a translator request is sent, the job's
status will change to `offer`.
## On-site Jobs
- address
- start_date
- end_date
## Document Jobs
- end_date
- documents
If you are creating a doc job, the `start_date` will be the date the
translator accepts the job. Also, the ID's in the `documents` field
must point to job documents that were not previously assigned a job.
If such is the case, the operation will be be continued.
## Interpretation
The `over_the_phone` parameter can be sent as True to allow for over
the phone interpretation. In that case, the `note` parameter must
contain the contact and other necessary details.
## Video Interpretation
If the customer wants a video interpretation, then the location is
not required but a note to interpeter will be required. Using this
note, they can add the medium for video interpretation or use the
interpreter's social accounts to contact them.
When a video interpretation request is sent, the start and end date
will be in UTC as usual and that date should be converted to local
time.
- note
- start_date
- end_date
# Note
- If the customer has not yet set an address in the profile, creating
a job won't work.
parameters:
- in: body
name: body
schema:
$ref: '#/definitions/Job'
tags:
- Job
summary: Create a Job
/login/:
post:
responses:
'200':
description: Successful login.
'400':
description: Wrong credentials.
schema:
$ref: '#/definitions/Error'
description: |
Users log in using email and password to Cuz The password may be a
temporary password that was requested using the
`/users/temporary-password/` endpoint or the user's actual password.
If the user has an active temporary password, that password is tried
first. If that doesn't succeed and the user's account has a password,
then the password is matched against that one. If that doesn't work
either, the authentication will fail.
**This endpoint is only used for logging in.**
To sign a user up, use the `/sign-up/` endpoint.
# Important Note
Translators are not registered here.
parameters:
- required: true
in: body
name: body
schema:
type: object
properties:
platform:
format: platform
enum:
- 0
- 1
- 2
- 3
- 4
- 5
type: integer
example: 1
description: |
See the top of the documentation for options. This will change
the format of the login URL.
- `0`: Not specified
- `1`: iOS
- `2`: Android
- `3`: Web
- `4`: Windows
- `5`: macOS
password:
required: true
type: string
description: Account password or temporary password.
example: super_safe_password
email:
format: email
required: true
type: string
example: customer@email.com
description: Email for the user
tags:
- Authentication
summary: Login
schemes:
- https
- http
definitions:
PayoutList:
required:
- translator
- job
type: object
description: |
This will only have the job summary.
properties:
status:
enum:
- 0
- 1
- 2
- 3
type: integer
description: |
This status change will always be automatic and will not accept input
from the outside.
- `0` (n/a): This means that the project is still in progress.
- `1` (invalid): This is the status for an invalid Payout. This means
that the translator did not finish the project.
- `2` (processing): This is the status for an processing payout. This
means that the money is currently being processed.
- `3` (paid): This is the status for a paid payout. This means that
the translator received the payout.
example: 0
earned_amount:
format: float
type: integer
example: 23.32
description: |
This is the amount of money that the translator earns from the
project after the commision,
paid_amount:
format: float
type: integer
example: 23.32
description: |
This is the amount of money paid to the translator. This may differ
from the `earned_amount` in case of a penalty to the translator or to
the customer.
payout_date:
format: dateTime
type: string
example: '2018-01-06T12:22'
description: |
This is the date that translator received the money to their
accounts. This is updated automatically when the status is changed.
creation_date:
format: dateTime
type: string
example: '2018-01-01T12:22'
description: |
This is the date that this object was created at. This is added
automatically.
translator:
type: integer
description: |
The ID of the translator.
example: 1
currency:
type: string
description: |
This is the currency as
[ISO 4217](https://en.wikipedia.org/wiki/ISO_4217#Active_codes)
standard.
example: cad
job:
$ref: '#/definitions/PayoutListJob'
hst_amount:
format: float
type: integer
example: 2.34
description: |
This is the amount of money for HST tax calculated from earned
amount. The earned_amount does not contain this amount.
bank_account:
$ref: '#/definitions/BankAccount'
JobPaymentError:
type: object
properties:
purchase:
$ref: '#/definitions/Purchase'
end_date:
type: string
example: '2017-01-03T15:55'
format: dateTime
nature:
$ref: '#/definitions/Nature'
page_count:
type: integer
description: |
If `job_type` is 'doc', this will have the page count. Otherwise,
it will be 0.
example: 2
job_type:
required: true
description: |
- `0`: Document Job
- `1`: On-Site Job
- `2`: Video Interpretation Job
format: int32
enum:
- 0
- 1
- 2
type: integer
example: 1
start_date:
type: string
example: '2017-01-02T15:55'
format: dateTime
word_count:
type: integer
description: |
If `job_type` is 'doc', this will have the word count. Otherwise, it
will be 0.
example: 1250
Certificate:
type: object
description: A certificate object
properties:
cloud_name:
format: 'char[128]'
type: string
example: 1.plan_to_destroy_the_world.jpeg
description: The file's name on the cloud.
name:
format: 'char[256]'
type: string
example: How to Translate
description: Name will always be saved in lower case.
content_type:
format: 'char[127]'
type: string
example: image/jpeg
description: The file's content type.
year:
format: int32
type: integer
example: 1988
description: The year the certificate was earned.
file_name:
format: 'char[128]'
type: string
example: plan_to_destroy_the_world.jpeg
description: The file's original name.
file_url:
format: url
type: string
example: 'http://www.file-url.com/asd.png'
description: Name of the certificate.
file_checksum:
format: 'char[128]'
type: string
example: 12345qwertwqwe12345qwertwqwe12345qwertwqwe12345qwertwqwe12345qwertwqwe
description: File checksum.
Notification:
type: object
properties:
is_read:
type: boolean
description: |
This can be updated to true when the user reads the notification. Default value is false.
example: false
sent_date:
format: dateTime
type: string
description: The date when the notification was sent.
example: '2017-01-01T13:45'
user:
type: integer
description: The user ID.
example: 1
read_date:
format: dateTime
type: string
description: The date when the user read the notification.
example: '2017-01-01T13:45'
notification_type:
type: integer
description: This is app specific. The default value is -1 If it is not set.
example: 2
data:
type: string
example: '{}'
description: A JSON object that represents the payload of the notification.
ProvinceTranslation:
type: object
description: |
The same province with different names can be added.
properties:
name:
type: string
example: United States
format: 'char[64]'
language:
$ref: '#/definitions/Language'
DelayRequestSummary:
type: object
properties:
response_date:
type: string
example: '2017-02-09T23:43'
format: dateTime
is_accepted:
type: boolean
example: true
request_date:
type: string
example: '2017-02-09T23:43'
format: dateTime
end_date:
type: string
example: '2017-02-19T23:43'
format: dateTime
JobDeclineReason:
type: object
description: The reason the job was denied by the translator.
properties:
reason:
format: 'char[512]'
type: string
example: Busy with other projects.
description: |
This is the reason the translator didn't accept the job.
The default language is English.
UserProfileUpdate:
type: object
description: This is used when updating a user
allOf:
- $ref: '#/definitions/UserUpdate'
- properties:
user_type:
type: integer
description: |
The user type.
- `0` (company): User belongs to a company.
- `1` (law firm): User belongs to a law firm.
- `2` (individual): User is an individual.
- `3` (translator): User is a translator.
example: 2
address:
type: string
description: Address
example:
country: Canada
city: Toronto
Penalty:
required:
- job
- target
- incurred_percentage
- user_profile
type: object
description: |
This object represents a Penalty incurred to a customer or a translator. A job can only have one associated
penalty. In order to create a penalty for a job, that job's status must be failed.
properties:
status:
enum:
- 0
- 1
- 2
- 3
type: integer
description: |
The status of the penalty.
- `0` (default): This means that the penalty has not been yet applied.
- `1` (incurred): This means that the penalty was fully applied to the target.
- `2` (cancelled): This means that the penalty was cancelled and will not be applied to the target.
- `3` (partial): This means that the penalty was partially subjected and there is still money that needs to
be taken from the target.
example: 0
deactivation_date:
format: dateTime
type: string
example: '2018-01-02T12:33'
description: |
This is automatically added by the API. This is the date that the penalty was fully incurred.
target:
enum:
- 0
- 1
type: integer
description: |
This is the target user for the penalty.
- `0` (translator): This means that the job was cancelled or failed because of the translator and s/he will
be subject to the penalty.
- `1` (customer): This means that the job was canceled or failed because of the customer and s/he will be
subject to the penalty.
example: 0
remaining_amount:
format: float
type: integer
example: 10
description: |
This is the amount of penalty still remaining.
is_active:
format: float
type: integer
example: true
description: |
This will be true as long as the remaining_amount is greater than 0.
creation_date:
format: dateTime
type: string
example: '2018-01-01T12:33'
description: |
This is automatically added by the API. This is the date that the penalty is created.
system_manager_note:
format: 'char[1024]'
type: string
example: Something something danger zone.
description: |
This is the note that the system manager left for this penalty.
job:
$ref: '#/definitions/JobSummary'
user:
$ref: '#/definitions/UserSummary'
incurred_percentage:
format: float
type: integer
example: 0.13
description: |
This is the amount of percentage that will be cut from the project price for this penalty.
incurred_amount:
format: float
type: integer
example: 23
description: |
This is the amount of money for the penalty. It will be updated when the penalty is created and it cannot be
changed after. The job price will be multiplied by incurred_percentage to set this price.
system_manager:
type: integer
description: |
This is the system manager who created the penalty. This can be null If the creation was automated.
example: 1
JobDeclineReasonTranslation:
type: object
description: The reason the job was denied by the translator.
properties:
reason:
format: 'char[512]'
type: string
example: Baska islerle mesgulum.
description: This is the reason the translator didn't accept the job.
language_code:
format: 'char[512]'
type: string
example: Baska islerle mesgulum.
description: This is the reason the translator didn't accept the job.
CountryTranslation:
type: object
description: |
The same country with different names can be added. But the country with the same country code will have the same
cities. City names are not translatable.
properties:
name:
type: string
example: United States
format: 'char[64]'
language:
$ref: '#/definitions/Language'
NatureDetailView:
type: object
properties:
price:
type: string
description: 'If nature price is constant, this field nature price'
translations:
items:
$ref: '#/definitions/NatureTranslation'
type: array
DeviceUpdate:
type: object
properties:
platform:
enum:
- 0
- 1
- 2
- 3
- 4
- 5
type: integer
description: |
- `0`: Not specified
- `1`: iOS
- `2`: Android
- `3`: Web
- `4`: Windows
- `5`: macOS
example: 1
pns_token:
type: string
example: qewrtyuhjgfasdsdfgbvc123
format: 'char[512]'
device_hash:
type: string
example: 3416asdslfu3094rwsedf54_totally_not_an_id
format: 'char[256]'
device_name:
type: string
example: Google Pixel
format: 'char[256]'
UserProfile:
type: object
description: |
This is the main model used for customers and translators. When a customer
wants to become a translator, the created translator is attached to
`UserProfile`.
allOf:
- $ref: '#/definitions/User'
- properties:
referrals:
items:
$ref: '#/definitions/ReferralSummary'
type: array
completed_video_live_jobs_count:
type: integer
description: |
The number of doc jobs this customer completed. This is increased
whenever a job is completed.
example: 2
user_type:
type: integer
description: |
The user type.
- `0` (company): User belongs to a company.
- `1` (law firm): User belongs to a law firm.
- `2` (individual): User is an individual.
- `3` (translator): User is a translator.
example: 2
translator:
type: integer
description: |
If the user is a translator this field will have the translator
ID. If the user is not a translator, this field will be empty.
example: 2
is_payment_method_required:
type: bool
description: |
This field indicates whether a payment method is required from
this user to create a project. This will be false If the user
has an active and approved billing method. When this field is true
the user should not be asked for a payment method.
example: false
lao_certification:
$ref: '#/definitions/LAOCertification'
address:
$ref: '#/definitions/Address'
completed_doc_jobs_count:
type: integer
description: |
The number of doc jobs this customer completed. This is increased
whenever a job is completed.
example: 2
completed_live_jobs_count:
type: integer
description: |
The number of live jobs this customer completed. This is increased
whenever a job is completed.
example: 23
DocumentExportSub:
type: object
properties:
file_url:
format: url
type: string
example: 'http://www.link.to/file'
description: Translated file url.
translator_full_name:
format: 'char[128]'
type: string
example: Cortlak Mahmut
description: Full name of the translator.
id:
format: in64
type: integer
example: 1
description: Translated Document ID
name:
format: 'char[64]'
type: string
example: cortlak_mahmut_customer_doc.pdf
description: File name on local filesystem.
TranslatorRequest:
type: object
properties:
translator:
$ref: '#/definitions/Translator'
response_date:
type: string
description: Response date for the translator request.
request_date:
type: string
description: Request date for the translator request.
admin_note:
type: string
admin:
$ref: '#/definitions/Admin'
is_accepted:
type: boolean
description: Accept/Decline for the translator request.
is_active:
type: boolean
description: |
If this is set to true, it means the translator request is accepted by
the administrators
Referral:
type: object
description: |
An account can only have one referral code. Referral code must be unique,
regardless of the referral type. If the referral is internal, then the
owner will be null.
When a new referral is being created, it takes all the default limits.
A promotion can be attached to a referral so that whenever a customer
uses a referral code, they get the attached promotion. There can only
be one promotion per referral. If you want to have different promotion,
create a new referral object for the owner.
properties:
is_default:
type: bool
description: |
Indicates whether this is the default referral that the customer owns.
example: true
code:
format: 'char[32]'
type: string
example: xfd23gh2
description: The unique referral code.
limits:
items:
$ref: '#/definitions/ReferralLimit'
type: array
owner:
$ref: '#/definitions/UserProfile'
promotion:
$ref: '#/definitions/Promotion'
referral_type:
type: string
description: |
Can be one of:
- personal: Belongs to an account.
- internal: Referrals by us.
format: 'char[16]'
TranslatorRatingSummary:
type: object
properties:
comment:
type: string
example: 'He''s OK, I guess...'
would_you_use_again_rating:
type: integer
description: |
The question is "Would you use this translator/translator for another project?". This is between 1 and 5
inclusive. This is asked for both types of jobs.
example: 3
appearance_rating:
type: integer
description: |
The question is "Did the translator show up with appropriate clothing?". This is between 1 and 5 inclusive.
This is only asked for live jobs.
example: 3
kindness_rating:
type: integer
description: |
The question is "Was the translator polite, respectful and tactful?". This is between 1 and 5 inclusive.
This is only asked for live jobs.
example: 5
arrived_on_time:
type: integer
description: |
The question is "Was the interpretation at the interpretation site on time?". This is between 1 and 5
inclusive. This is only asked for live jobs.
example: 5
overall_rating:
type: integer
description: This is between 1 and 5 inclusive. This is asked for both types of jobs.
example: 4
Province:
type: object
properties:
country:
type: integer
description: The country ID
example: 23
name:
format: 'char[128]'
type: string
example: Ontario
description: The name of the province in the country language
RushHourRate:
type: object
description: |
Holds information about the additional price that will be applied to
projects within certain time distance to its end date.
Once a `RushHourRate` is created, it cannot be changed.
properties:
additional_price:
format: float
type: integer
example: 20000
description: |
This is the additional price that will be added to the final price of
the project. This amount is in the smallest unit of the currency that
this limit belongs to. e.g 50 cents or 500 cents for 5 dollars.
deadline_limit:
format: int32
type: integer
example: 120
description: |
This is the time distance from the deadline to the current date time.
If this deadline limit is met, the `multiplier` or the `additional_price`
will be applied to the price of the project.
This is in minutes.
multiplier:
format: float
type: integer
example: 1.2
description: This amount is applied to the final price of the project.
TranslatorUpdate:
type: object
properties:
bio:
type: string
description: Description of the user.
example: Here's a bio.
language_pairs:
items:
$ref: '#/definitions/LanguagePair'
type: array
max_job_distance:
type: integer
description: |
The maximum distance that the translator can go in kilometers.
example: 50
address:
$ref: '#/definitions/Address'
certificates:
items:
$ref: '#/definitions/Certificate'
type: array
is_available_for_assignments:
type: bool
example: true
schools:
items:
$ref: '#/definitions/School'
type: array
nature_groups:
items:
$ref: '#/definitions/NatureGroup'
type: array
hst_number:
type: string
description: HST number of the translator.
example: 123456789RT0001 (Usually it is a 15-digit number).
available_for_lao:
type: boolean
description: Indicates whether the translator accepts LAO projects.
example: false
language_certificates:
items:
$ref: '#/definitions/LanguageCertificate'
type: array
available_for_live_video_job:
type: boolean
description: |
If this is set to true, it means the interpreter can join the video
interpretations. If this is set to true, the address will not be
required.
example: false
courses:
items:
$ref: '#/definitions/Course'
type: array
video_chat_accounts:
$ref: '#/definitions/VideoChatAccounts'
available_for_doc_job:
type: boolean
description: |
If this is set to true, it means the translator can make document
translation.
example: false
available_for_live_job:
type: boolean
description: |
If this is set to true, it means the translator can make live
translation.
example: true
years_of_experience:
type: integer
description: The number of years the interpreter has worked.
example: 4
Translator:
type: object
properties:
bio:
type: string
description: Description of the user.
example: Here's a bio.
language_pairs:
items:
$ref: '#/definitions/LanguagePair'
type: array
user_profile:
$ref: '#/definitions/UserProfile'
completed_video_live_jobs_count:
type: integer
description: |
The number of video interpretations jobs this translator completed. This
is increased whenever a job is completed.
example: 42
available_for_live_job:
type: boolean
description: |
If this is set to true, it means the translator can make live
translation.
example: true
live_job_average_response:
format: float
type: integer
example: 123.2
description: |
The response time is not affected by whether the translator accepted the
job or denied it. It's about how long it took for the translator to
respond to the job. This is the average time that it took for the
translator to respond to the job. It's in minutes.
is_available_for_assignments:
type: boolean
description: |
Defaults to false. This can be set to false when the translator does not
want to receive assignments for a period of time.
example: true
is_active:
type: boolean
description: |
If this is set to true, it means the translator is accepted by the
administrators.
example: true
is_atio_certified:
type: boolean
description: |
If this is set to true, it means the translator is ATIO certified. ATIO
certified transaltors are required for translations of document types
other than regular.
example: false
latitude:
format: float
type: integer
example: 43.99
description: |
The latitude of the translators location.
address:
$ref: '#/definitions/Address'
schools:
items:
$ref: '#/definitions/School'
type: array
nature_groups:
items:
$ref: '#/definitions/NatureGroup'
type: array
is_banned:
type: boolean
description: |
If this is set to true, it means the translator is blocked by the
administrators.
example: false
job_certifications:
items:
$ref: '#/definitions/JobCertification'
type: array
live_job_video_average_response:
format: float
type: integer
example: 13.2
description: |
The response time is not affected by whether the translator accepted the
job or denied it. It's about how long it took for the translator to
respond to the job. This is the average time that it took for the
translator to respond to the job. It's in minutes.
hst_number:
type: string
description: |
HST number of the translator (usually it is a 15-digit number).
https://turbotax.intuit.ca/tips/a-guide-to-business-numbers-6211
example: 123456789RT0001
completed_doc_jobs_count:
type: integer
description: |
The number of doc jobs this translator completed. This is increased
whenever a job is completed.
example: 42
doc_job_average_response:
format: float
type: integer
example: 123.2
description: |
The response time is not affected by whether the translator accepted
the job or denied it. It's about how long it took for the translator to
respond to the job. This is the average time that it took for the
translator to respond to the job. It's in minutes.
available_for_lao:
type: boolean
description: Indicates whether the translator accepts LAO projects.
example: false
courses:
items:
$ref: '#/definitions/Course'
type: array
language_certificates:
items:
$ref: '#/definitions/LanguageCertificate'
type: array
available_for_live_video_job:
type: boolean
description: |
If this is set to true, it means the interpreter can join the video
interpretations. If this is set to true, the address will not be
required.
example: false
longitude:
format: float
type: integer
example: 43.99
description: |
The latitude of the translators location.
max_job_distance:
type: integer
description: |
The maximum distance that the translator can go. Unit kilometers
example: 50
video_chat_accounts:
$ref: '#/definitions/VideoChatAccounts'
available_for_doc_job:
type: boolean
description: |
If this is set to true, it means the translator can make document
translation.
example: false
certificates:
items:
$ref: '#/definitions/Certificate'
type: array
years_of_experience:
type: integer
description: The number of years the interpreter has worked.
example: 4
completed_live_jobs_count:
type: integer
description: |
The number of live jobs this translator completed. This is increased
whenever a job is completed.
example: 32
overall_rating:
format: float
type: integer
example: 4.3
description: |
This is updated whenever a translator is rated. This is calculated based
on the overall rating of the translator. This will be [-1, 5]. If it
is -1, then it means we still don't have enough data to calculate a
rating.
LanguagePair:
required:
- name
type: object
description: |
Used in Translator profile to search for translators that only translate
from one language to another.
properties:
source_language:
$ref: '#/definitions/Language'
target_language:
$ref: '#/definitions/Language'
User:
type: object
description: A User object
properties:
username:
type: string
description: Unique user name of the user.
example: furkanzmc
first_name:
type: string
description: First name of the user.
example: Furkan
last_name:
type: string
description: Last name of the user.
example: Uzumcu
gender:
enum:
- 0
- 1
- 2
type: string
description: |
- `0`: Not specified
- `1`: Male
- `2`: Female
example: 1
email_rules:
$ref: '#/definitions/EmailRule'
is_active:
type: boolean
description: This will be false If the user is not active.
example: true
birthday:
type: string
description: User birthday
example: '1999-01-01'
profile_photo:
type: string
description: Profile photo
example: 'http://www.edmoware.com/gamze.png'
phone:
type: string
example: '+905064569878'
password:
type: string
description: Password.
example: furkan12345
requires_password_change:
type: bool
description: |
Indicates whether the password must be changed. When this field is
true, the existing password will not be asked.
example: false
last_login:
format: date
type: string
example: '2017-01-01'
description: |
This is a read-only field. It is updated every time a user sends a
request.
is_registration_completed:
type: bool
description: |
Whether or not the user has completed registration, i.e updated their
profile after sign up.
example: true
email:
type: string
description: Email address of the user
example: furkan@zmc.com
date_joined:
format: date
type: string
example: '2017-01-01'
description: This is a read-only field
Device:
type: object
properties:
last_visit_date:
type: string
example: 1
format: dateTime
login_count:
format: int32
type: integer
example: 45
description: The count of login requests.
enabled:
type: boolean
description: 'If the device is enabled, it will be used to send a push notification.'
example: true
device_hash:
type: string
example: 3416asdslfu3094rwsedf54_totally_not_an_id
format: 'char[256]'
register_date:
type: string
example: '2017-01-01T13:45'
format: dateTime
platform:
enum:
- 0
- 1
- 2
- 3
- 4
- 5
type: integer
description: |
- `0`: Not specified
- `1`: iOS
- `2`: Android
- `3`: Web
- `4`: Windows
- `5`: macOS
example: 1
user:
type: integer
description: The user ID.
example: 1
pns_token:
format: 'char[512]'
type: string
example: qewrtyuhjgfasdsdfgbvc123
description: The PNS token for the push notification service being used.
device_name:
type: string
example: Google Pixel
format: 'char[256]'
LanguageCertificate:
required:
- language
- name
- number
type: object
description: |
Since language certificates are directly bundled with Translator profile, we are only going to use the language
ID and not the object itself.
properties:
name:
format: 'char[128]'
type: string
example: Best Translator Certificate
description: Name of the certificate.
language:
type: integer
example: 2
file_name:
type: string
description: The file's original name.
example: plan_to_destroy_the_world.jpeg
file_url:
format: url
type: string
example: 'http://www.file-url.com/asd.png'
description: File url for the certificate photo.
number:
format: 'char[64]'
type: string
example: 453618364
description: This the number of the certificate.
file_checksum:
format: 'char[128]'
type: string
example: 12345qwertwqwe12345qwertwqwe12345qwertwqwe12345qwertwqwe12345qwertwqwe
description: The file's checksum.
cloud_name:
type: string
description: The file's name on the cloud.
example: 1.plan_to_destroy_the_world.jpeg
content_type:
type: string
description: The file's content type.
example: image/jpeg
TranslatorMinimal:
first_name:
type: string
description: First name of the translator.
example: John
last_name:
type: string
description: Last name of the translator.
example: Doe
description: |
Used to display minimal information about the translator. The rating
field contains the rating for the job that this translator is attached to.
rating:
$ref: '#/definitions/TranslatorRatingSummary'
profile_photo:
format: url
type: string
example: 'https://www.herei.am/me.png'
description: Translator's profile photo
years_of_experience:
type: integer
description: Years of experience.
example: 43
type: object
properties: null
overall_rating:
type: integer
description: Overall rating.
example: 4.3
Error:
type: object
properties:
message:
type: string
example: Parameter error ocurred.
description: The user friendly error message from the API.
code:
type: number
example: 32
description: |
This is the context dependant error code.
parameters:
type: object
properties:
field_name:
type: array
items:
type: string
example: "Error descirption."
BillingMethod:
required:
- name
- owner
- payment_schedule
type: object
description: |
A billing method is used to enable billing on a weekly/bi-weekly/monthly
basis. When a user belongs to an organization with a billing method,
they will not be required to add a payment method to their profiles.
This model is not yet exposed to the API.
properties:
billing_address:
$ref: '#/definitions/Address'
name:
format: 'char[32]'
type: string
example: My Billing
description: Billing method name.
owner:
$ref: '#/definitions/UserSummary'
billing_email:
format: 'char[254]'
type: string
example: billing@cuztranslation.com
description: |
The email address that will recieve the invoices. If this is not
provided, the email address of the owner will be used.
is_active:
type: bool
description: |
Indicates whether this billing method can be used. There can be more
than one active billing method.
example: true
payment_schedule:
format: 'char[16]'
type: string
example: monthly
description: |
The payment schedule of the billing account.
- `weekly`: Weekly payment schedule.
- `bi_weekly`: Bi-weekly payment schedule.
Job:
type: object
required:
- customer
- title
- job_type
- end_date
- from_language
- to_language
- nature
properties:
creation_date:
type: string
description: Job's creation date.
example: "2017-01-01T12:55"
response_date:
type: string
description: Job response date
example: "2017-01-01T15:55"
is_accepted:
type: boolean
description: Job accept/decline
example: true
status:
type: integer
format: int32
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
example: 0
title:
type: string
format: char[512]
description: Job's title
example: Interpretation for Case #23
required: true
job_type:
type: integer
format: int32
enum:
- 0
- 1
- 2
example: 1
required: true
start_date:
type: string
format: dateTime
example: "2017-01-02T15:55"
end_date:
type: string
format: dateTime
example: "2017-01-03T15:55"
required: true
total_duration:
type: integer
example: 1440
from_language:
type: string
example: fr
to_language:
type: string
example: es
word_count:
type: integer
example: 1250
page_count:
type: integer
example: 2
job_distance:
type: number
example: 0
address:
type: str
example: 598 St. Clair Ave West Toronto, ON M6C 1A6, Canada
note:
type: string
format: char[1048]
example: Please pay extra attention to the second document.
dress_code:
type: integer
format: int32
description: |
Dress code for the live interpretation.
- `0`: Not Specified
- `1`: Formal
- `2`: Semi-Formal
- `3`: Casual
enum:
- 0
- 1
- 2
- 3
example: 1
is_archived:
type: boolean
description: A job can be archived.
example: false
over_the_phone:
type: boolean
description: |
Whether the interpretation to be done over the phone. The
necessary contact details must be given in the "note" field.
example: false
video_caller:
type: integer
format: int32
description: |
Determines who is calling who for a video interpretation job. The default
value is `not_specified`. It is required for a video job.
- `0`: Not Specified. This means that the job type is not video.
- `1`: Customer is calling the interpreter.
- `2`: Interpreter is calling the customer.
enum:
- 0
- 1
- 2
example: 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment