Skip to content

Commit b4a93eb

Browse files
committed
new v3
1 parent b905b3f commit b4a93eb

29 files changed

+3304
-2
lines changed

_data/taps/schemas/harvest/v3/harvest-v3-foreign-keys.yml

Lines changed: 946 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 333 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,333 @@
1+
tap: harvest
2+
version: '2'
3+
tables:
4+
- name: clients
5+
description: 'The `{{ table.name }}` table contains info about the clients in your
6+
Harvest account.
7+
8+
'
9+
links:
10+
doc-link: https://help.getharvest.com/api-v2/clients-api/clients/clients/
11+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/clients.json
12+
api-method: https://help.getharvest.com/api-v2/clients-api/clients/clients/#list-all-clients
13+
table-details:
14+
replication-method: Key-based Incremental
15+
primary-key: id
16+
replication-key: updated_at
17+
- name: contacts
18+
description: 'The `{{ table.name }}` table contains info about the client contacts
19+
in your Harvest account.
20+
21+
'
22+
links:
23+
doc-link: https://help.getharvest.com/api-v2/clients-api/clients/contacts/
24+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/contacts.json
25+
api-method: https://help.getharvest.com/api-v2/clients-api/clients/contacts/#list-all-contacts
26+
table-details:
27+
replication-method: Key-based Incremental
28+
primary-key: id
29+
replication-key: updated_at
30+
- name: estimates
31+
description: 'The `{{ table.name }}` table contains info about the estimates in your
32+
{{ integration.display_name }} account.
33+
34+
'
35+
links:
36+
doc-link: https://help.getharvest.com/api-v2/estimates-api/estimates/estimates/
37+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/estimates.json
38+
api-method: https://help.getharvest.com/api-v2/estimates-api/estimates/estimate-messages/#list-all-messages-for-an-estimate
39+
table-details:
40+
replication-method: Key-based Incremental
41+
primary-key: id
42+
replication-key: updated_at
43+
- name: estimate_item_categories
44+
description: 'The `estimate_item_categories` table contains info about the estimate
45+
item categories in your Harvest account.
46+
47+
'
48+
links:
49+
doc-link: https://help.getharvest.com/api-v2/estimates-api/estimates/estimate-item-categories/
50+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/estimate_item_categories.json
51+
api-method: https://help.getharvest.com/api-v2/estimates-api/estimates/estimate-item-categories/#list-all-estimate-item-categories
52+
table-details:
53+
replication-method: Key-based Incremental
54+
primary-key: id
55+
replication-key: updated_at
56+
- name: estimate_line_items
57+
description: 'The `{{ table.name }}` table contains info about the line items contained
58+
in estimates.
59+
60+
61+
**Note**: This table is updated based on new and updated `estimates`. This means
62+
that when an estimate is updated, this table will also be updated.
63+
64+
'
65+
links:
66+
doc-link: https://help.getharvest.com/api-v2/estimates-api/estimates/estimates/#the-estimate-line-item-object
67+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/estimate_line_items.json
68+
api-method: https://help.getharvest.com/api-v2/estimates-api/estimates/estimates/#get-all-estimates
69+
table-details:
70+
replication-method: Key-based Incremental
71+
primary-key: id
72+
- name: estimate_messages
73+
description: 'The `{{ table.name }}` table contains info about the messages associated
74+
with estimates.
75+
76+
'
77+
links:
78+
doc-link: https://help.getharvest.com/api-v2/estimates-api/estimates/estimate-messages/
79+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/estimate_messages.json
80+
api-method: https://help.getharvest.com/api-v2/estimates-api/estimates/estimate-messages/#list-all-messages-for-an-estimate
81+
table-details:
82+
replication-method: Key-based Incremental
83+
primary-key: id
84+
replication-key: updated_at
85+
- name: expenses
86+
description: 'The `expenses` table contains info about the expenses recorded in
87+
your Harvest account.
88+
89+
'
90+
links:
91+
doc-link: https://help.getharvest.com/api-v2/expenses-api/expenses/expenses/
92+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/expenses.json
93+
api-method: https://help.getharvest.com/api-v2/expenses-api/expenses/expenses#list-all-expenses
94+
table-details:
95+
replication-method: Key-based Incremental
96+
primary-key: id
97+
replication-key: updated_at
98+
- name: expense_categories
99+
description: 'The `expense_categories` table contains info about the expense categories
100+
in your Harvest account.
101+
102+
'
103+
links:
104+
doc-link: https://help.getharvest.com/api-v2/expenses-api/expenses/expense-categories/
105+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/expense_categories.json
106+
api-method: https://help.getharvest.com/api-v2/expenses-api/expenses/expense-categories/#list-all-expense-categories
107+
table-details:
108+
replication-method: Key-based Incremental
109+
primary-key: id
110+
replication-key: updated_at
111+
- name: invoices
112+
description: 'The `{{ table.name }}` table contains info about the invoices in your
113+
Harvest account.
114+
115+
'
116+
links:
117+
doc-link: https://help.getharvest.com/api-v2/invoices-api/invoices/invoices/
118+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoices.json
119+
api-method: https://help.getharvest.com/api-v2/invoices-api/invoices/invoices#list-all-invoices
120+
table-details:
121+
replication-method: Key-based Incremental
122+
primary-key: id
123+
replication-key: updated_at
124+
- name: invoice_item_categories
125+
description: 'The `{{ table.name }}` table contains info about the various categories
126+
that can be applied to invoice line items.
127+
128+
129+
**Note**: Harvest includes two non-removable categories by default for the hours
130+
and expenses you bill.
131+
132+
'
133+
links:
134+
doc-link: https://help.getharvest.com/api-v2/invoices-api/invoices/invoice-item-categories/
135+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_item_categories.json
136+
api-method: http://help.getharvest.com/api-v1/invoices-api/invoices/invoice-messages-payments/#show-all-categories
137+
table-details:
138+
replication-method: Key-based Incremental
139+
primary-key: id
140+
replication-key: updated_at
141+
- name: invoice_line_items
142+
description: 'The `{{ table.name }}` table contains info about the line items contained
143+
in invoices.
144+
145+
146+
**Note**: This table is updated based on new and updated `invoices`. This means
147+
that when an invoice is updated, this table will also be updated.
148+
149+
'
150+
links:
151+
doc-link: https://help.getharvest.com/api-v2/invoices-api/invoices/invoices#the-invoice-line-item-object
152+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_line_items.json
153+
api-method: https://help.getharvest.com/api-v2/invoices-api/invoices/invoices#list-all-invoices
154+
table-details:
155+
replication-method: Key-based Incremental
156+
primary-key: id
157+
- name: invoice_messages
158+
description: 'The `{{ table.name }}` table contains info about invoice messages,
159+
or emails sent to clients about invoices.
160+
161+
'
162+
links:
163+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_messages.json
164+
api-method: https://help.getharvest.com/api-v2/invoices-api/invoices/invoice-messages/
165+
table-details:
166+
replication-method: Key-based Incremental
167+
primary-key: id
168+
replication-key: updated_at
169+
- name: invoice_payments
170+
description: 'The `{{ table.name }}` table contains info about the payments applied
171+
to invoices in your Harvest account.
172+
173+
'
174+
links:
175+
doc-link: https://help.getharvest.com/api-v2/invoices-api/invoices/invoice-payments/
176+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/invoice_payments.json
177+
api-method: https://help.getharvest.com/api-v2/invoices-api/invoices/invoice-payments#list-all-payments-for-an-invoice
178+
table-details:
179+
replication-method: Key-based Incremental
180+
primary-key: id
181+
replication-key: updated_at
182+
- name: projects
183+
description: 'The `{{ table.name }}` table contains info about the projects in your
184+
Harvest account.
185+
186+
'
187+
links:
188+
doc-link: https://help.getharvest.com/api-v2/projects-api/projects/projects/
189+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/projects.json
190+
api-method: https://help.getharvest.com/api-v2/projects-api/projects/projects#list-all-projects
191+
table-details:
192+
replication-method: Key-based Incremental
193+
primary-key: id
194+
replication-key: updated_at
195+
- name: project_tasks
196+
description: 'The `{{ table.name }}` table contains info about the tasks assigned
197+
to projects.
198+
199+
'
200+
links:
201+
doc-link: https://help.getharvest.com/api-v2/projects-api/projects/task-assignments/
202+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/project_tasks.json
203+
api-method: https://help.getharvest.com/api-v2/projects-api/projects/task-assignments#list-all-task-assignments
204+
table-details:
205+
replication-method: Key-based Incremental
206+
primary-key: id
207+
replication-key: updated_at
208+
- name: project_users
209+
description: 'The `{{ table.name }}` table contains info about the users assigned
210+
to projects.
211+
212+
'
213+
links:
214+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/project_users.json
215+
api-method: https://help.getharvest.com/api-v2/projects-api/projects/user-assignments/
216+
table-details:
217+
replication-method: Key-based Incremental
218+
primary-key: id
219+
replication-key: updated_at
220+
- name: roles
221+
description: 'The `{{ table.name }}` table contains info about the roles in your
222+
{{ integration.display_name }} account.
223+
224+
'
225+
links:
226+
doc-link: https://help.getharvest.com/api-v2/roles-api/roles/roles/
227+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/roles.json
228+
api-method: https://help.getharvest.com/api-v2/roles-api/roles/roles#list-all-roles
229+
table-details:
230+
replication-method: Key-based Incremental
231+
primary-key: id
232+
replication-key: updated_at
233+
- name: tasks
234+
description: 'The `{{ table.name }}` table contains info about the tasks in your
235+
Harvest account.
236+
237+
'
238+
links:
239+
doc-link: https://help.getharvest.com/api-v2/tasks-api/tasks/tasks/
240+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/tasks.json
241+
api-method: https://help.getharvest.com/api-v2/tasks-api/tasks/tasks#list-all-tasks
242+
table-details:
243+
replication-method: Key-based Incremental
244+
primary-key: id
245+
replication-key: updated_at
246+
- name: time_entries
247+
description: 'The `{{ table.name }}` table contains info about the time entries
248+
in your Harvest account.
249+
250+
'
251+
links:
252+
doc-link: https://help.getharvest.com/api-v2/timesheets-api/timesheets/time-entries/
253+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/time_entries.json
254+
api-method: https://help.getharvest.com/api-v2/timesheets-api/timesheets/time-entries#list-all-time-entries
255+
table-details:
256+
replication-method: Key-based Incremental
257+
primary-key: id
258+
replication-key: updated_at
259+
- name: time_entry_external_reference
260+
description: 'The `{{ table.name }}` table contains pairs of time entry IDs and
261+
external reference IDs. This data can be used to tie time entries tracked in external
262+
services (such as Trello) to your other Harvest data.
263+
264+
265+
**Note**: This table is updated based on new and updated `time_entries`. This
266+
means that when a time entry is updated, this table will also be updated.
267+
268+
'
269+
links:
270+
doc-link: https://help.getharvest.com/api-v2/timesheets-api/timesheets/time-entries/
271+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/time_entry_external_reference.json
272+
api-method: https://help.getharvest.com/api-v2/timesheets-api/timesheets/time-entries#list-all-time-entries
273+
table-details:
274+
replication-method: Key-based Incremental
275+
primary-keys:
276+
- time_entry_id
277+
- external_reference_id
278+
- name: users
279+
description: 'The `{{ table.name }}` table contains info about the users in your
280+
Harvest account.
281+
282+
'
283+
links:
284+
doc-link: https://help.getharvest.com/api-v2/users-api/users/users/
285+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/users.json
286+
api-method: https://help.getharvest.com/api-v2/users-api/users/users#list-all-users
287+
table-details:
288+
replication-method: Key-based Incremental
289+
primary-key: id
290+
replication-key: updated_at
291+
- name: user_projects
292+
description: 'The `{{ table.name }}` table contains info about the project assignments
293+
users are assigned to.
294+
295+
'
296+
links:
297+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/user_projects.json
298+
api-method: https://help.getharvest.com/api-v2/users-api/users/project-assignments/
299+
table-details:
300+
replication-method: Key-based Incremental
301+
primary-key: id
302+
replication-key: updated_at
303+
- name: user_project_tasks
304+
description: "The `{{ table.name }}` table contains pairs of user IDs and project\
305+
\ task IDs.\n\n This data can be used to see lists of all the project tasks associated\
306+
\ with a user, and join tables together to get a comprehensive look at the user's\
307+
\ projects.\n\n**Note**: This table is updated based on new and updated `users`.\
308+
\ This means that when a user is updated, this table will also be updated.\n"
309+
links:
310+
doc-link: null
311+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/user_project_tasks.json
312+
table-details:
313+
replication-method: Key-based Incremental
314+
primary-keys:
315+
- user_id
316+
- project_task_id
317+
- name: user_roles
318+
description: 'The `{{ table.name }}` table contains a list of user ID and role ID
319+
pairs, enabling you to see the roles users are associated with.
320+
321+
322+
**Note**: This table is updated based on new and updated `users`. This means that
323+
when a user is updated, this table will also be updated.
324+
325+
'
326+
links:
327+
doc-link: https://help.getharvest.com/api-v2/users-api/users/users/
328+
singer-schema: https://github.com/singer-io/tap-harvest/blob/master/tap_harvest/schemas/user_roles.json
329+
table-details:
330+
replication-method: Key-based Incremental
331+
primary-keys:
332+
- user_id
333+
- role_id
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
{
2+
"properties": {
3+
"address": {
4+
"type": [
5+
"null",
6+
"string"
7+
]
8+
},
9+
"created_at": {
10+
"type": [
11+
"null",
12+
"date-time"
13+
]
14+
},
15+
"currency": {
16+
"type": [
17+
"null",
18+
"string"
19+
]
20+
},
21+
"id": {
22+
"type": [
23+
"null",
24+
"integer"
25+
]
26+
},
27+
"is_active": {
28+
"type": [
29+
"null",
30+
"boolean"
31+
]
32+
},
33+
"name": {
34+
"type": [
35+
"null",
36+
"string"
37+
]
38+
},
39+
"updated_at": {
40+
"type": [
41+
"null",
42+
"date-time"
43+
]
44+
}
45+
},
46+
"type": "object"
47+
}

0 commit comments

Comments
 (0)