diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/estimate_messages.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/estimate_messages.json index 2157406a16beb..28fbab6eaf43b 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/estimate_messages.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/estimate_messages.json @@ -29,7 +29,18 @@ "format": "date-time" }, "recipients": { - "type": ["null", "array"] + "type": ["null", "array"], + "items": { + "properties": { + "email": { + "type": ["string", "null"] + }, + "name": { + "type": ["string", "null"] + } + }, + "type": "object" + } }, "event_type": { "type": ["null", "string"] diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses.json index 547c6c54ce9dd..d87804ef27625 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses.json @@ -82,7 +82,7 @@ "type": ["null", "boolean"] }, "budget": { - "type": ["null", "string"] + "type": ["null", "number"] }, "created_at": { "type": ["null", "string"], @@ -94,6 +94,9 @@ }, "hourly_rate": { "type": ["null", "number"] + }, + "use_default_rates": { + "type": ["null", "boolean"] } } }, @@ -121,7 +124,7 @@ "type": ["null", "string"] }, "unit_price": { - "type": ["null", "string"] + "type": ["null", "number"] }, "unit_name": { "type": ["null", "string"] diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses_categories.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses_categories.json index 8a3f3503b69dd..742b22e66431b 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses_categories.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses_categories.json @@ -9,10 +9,10 @@ "type": ["null", "string"] }, "total_amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "billable_amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "currency": { "type": ["null", "string"] diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses_clients.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses_clients.json index c101189f93a02..8d5024f67412b 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses_clients.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses_clients.json @@ -9,10 +9,10 @@ "type": ["null", "string"] }, "total_amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "billable_amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "currency": { "type": ["null", "string"] diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses_team.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses_team.json index e107c3f125091..9055c1afe6a64 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses_team.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/expenses_team.json @@ -12,10 +12,10 @@ "type": ["null", "boolean"] }, "total_amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "billable_amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "currency": { "type": ["null", "string"] diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/invoice_messages.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/invoice_messages.json index eb16f1ae1e8aa..436d37644cf80 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/invoice_messages.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/invoice_messages.json @@ -47,14 +47,17 @@ "type": ["null", "string"] }, "recipients": { - "type": ["null", "object"], - "properties": { - "name": { - "type": ["null", "string"] + "type": ["null", "array"], + "items": { + "properties": { + "email": { + "type": "string" + }, + "name": { + "type": "string" + } }, - "email": { - "type": ["null", "string"] - } + "type": "object" } }, "subject": { diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/invoice_payments.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/invoice_payments.json index 6b5890eb5aa14..3794c190fcc8c 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/invoice_payments.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/invoice_payments.json @@ -6,7 +6,7 @@ "type": ["null", "integer"] }, "amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "paid_at": { "type": ["null", "string"], diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/invoices.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/invoices.json index a9bc6037c4e48..285f7ccf1c091 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/invoices.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/invoices.json @@ -21,22 +21,22 @@ "type": ["null", "number"] }, "tax": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "tax_amount": { "type": ["null", "number"] }, "tax2": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "tax2_amount": { "type": ["null", "number"] }, "discount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "discount_amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "subject": { "type": ["null", "string"] @@ -94,7 +94,15 @@ "type": ["null", "string"] }, "client": { - "type": ["null", "string"] + "type": ["null", "object"], + "properties": { + "id": { + "type": ["null", "integer"] + }, + "name": { + "type": ["null", "string"] + } + } }, "estimate": { "type": ["null", "string"] @@ -103,39 +111,61 @@ "type": ["null", "string"] }, "creator": { - "type": ["null", "string"] - }, - "line_items": { "type": ["null", "object"], "properties": { "id": { "type": ["null", "integer"] }, - "kind": { - "type": ["null", "string"] - }, - "description": { - "type": ["null", "string"] - }, - "quantity": { - "type": ["null", "integer"] - }, - "unit_price": { - "type": ["null", "integer"] - }, - "amount": { - "type": ["null", "integer"] - }, - "taxed": { - "type": ["null", "boolean"] - }, - "taxed2": { - "type": ["null", "boolean"] - }, - "project": { + "name": { "type": ["null", "string"] } } + }, + "line_items": { + "type": ["null", "array"], + "items": { + "type": ["null", "object"], + "properties": { + "id": { + "type": ["null", "integer"] + }, + "kind": { + "type": ["null", "string"] + }, + "description": { + "type": ["null", "string"] + }, + "quantity": { + "type": ["null", "number"] + }, + "unit_price": { + "type": ["null", "number"] + }, + "amount": { + "type": ["null", "number"] + }, + "taxed": { + "type": ["null", "boolean"] + }, + "taxed2": { + "type": ["null", "boolean"] + }, + "project": { + "type": ["null", "object"], + "properties": { + "code": { + "type": ["null", "string"] + }, + "id": { + "type": ["integer", "null"] + }, + "name": { + "type": ["null", "string"] + } + } + } + } + } } } } diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/project_assignments.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/project_assignments.json index eaf7b2b642c4a..ae8710b066c11 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/project_assignments.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/project_assignments.json @@ -15,7 +15,7 @@ "type": ["null", "boolean"] }, "budget": { - "type": ["null", "string"] + "type": ["null", "number"] }, "created_at": { "type": ["null", "string"], @@ -50,11 +50,51 @@ }, "name": { "type": ["null", "string"] + }, + "currency": { + "type": ["null", "string"] } } }, "task_assignments": { - "type": ["null", "array"] + "type": ["null", "array"], + "items": { + "properties": { + "billable": { + "type": ["null", "boolean"] + }, + "budget": { + "type": ["null", "number"] + }, + "created_at": { + "type": ["string", "null"] + }, + "hourly_rate": { + "type": ["null", "number"] + }, + "id": { + "type": ["null", "integer"] + }, + "is_active": { + "type": ["null", "boolean"] + }, + "task": { + "properties": { + "id": { + "type": ["null", "integer"] + }, + "name": { + "type": ["null", "string"] + } + }, + "type": ["object", "null"] + }, + "updated_at": { + "type": ["null", "string"] + } + }, + "type": "object" + } } } } diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/project_budget.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/project_budget.json index 3742a85771d25..b4a064e925c3a 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/project_budget.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/project_budget.json @@ -24,13 +24,13 @@ "type": ["null", "boolean"] }, "budget": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "budget_spent": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "budget_remaining": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "from": { "type": ["null", "string"] diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/projects.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/projects.json index 639ea72f65272..49dc9f583271f 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/projects.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/projects.json @@ -78,7 +78,7 @@ } }, "cost_budget": { - "type": ["null", "string"] + "type": ["null", "number"] }, "cost_budget_include_expenses": { "type": ["null", "boolean"] @@ -87,7 +87,7 @@ "type": ["null", "number"] }, "fee": { - "type": ["null", "string"] + "type": ["null", "number"] } } } diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/roles.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/roles.json index fce9c76fcf817..93035198df643 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/roles.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/roles.json @@ -17,7 +17,10 @@ "format": "date-time" }, "user_ids": { - "type": ["null", "array"] + "type": ["null", "array"], + "items": { + "type": "integer" + } } } } diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_clients.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_clients.json index 43a92dba12ab7..dff25fe2d3640 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_clients.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_clients.json @@ -18,7 +18,7 @@ "type": ["null", "string"] }, "billable_amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "from": { "type": ["null", "string"] diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_entries.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_entries.json index 95acba6cffcdb..e4a8abe428587 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_entries.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_entries.json @@ -28,6 +28,9 @@ }, "name": { "type": ["null", "string"] + }, + "currency": { + "type": ["null", "string"] } } }, @@ -39,6 +42,9 @@ }, "name": { "type": ["null", "string"] + }, + "code": { + "type": ["null", "string"] } } }, @@ -66,7 +72,7 @@ "type": ["null", "boolean"] }, "budget": { - "type": ["null", "string"] + "type": ["null", "number"] }, "created_at": { "type": ["null", "string"], @@ -105,13 +111,16 @@ "type": ["null", "number"] }, "budget": { - "type": ["null", "string"] + "type": ["null", "number"] } } }, "hours": { "type": ["null", "number"] }, + "hours_without_timer": { + "type": ["null", "number"] + }, "rounded_hours": { "type": ["null", "number"] }, @@ -153,7 +162,15 @@ "type": ["null", "boolean"] }, "invoice": { - "type": ["null", "string"] + "type": ["null", "object"], + "properties": { + "id": { + "type": "integer" + }, + "number": { + "type": "string" + } + } }, "external_reference": { "type": ["null", "string"] diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_projects.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_projects.json index 7577b038da407..c0098e6dd9a12 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_projects.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_projects.json @@ -15,16 +15,16 @@ "type": ["null", "string"] }, "total_hours": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "billable_hours": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "currency": { "type": ["null", "string"] }, "billable_amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "from": { "type": ["null", "string"] diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_tasks.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_tasks.json index 6c337cbc37492..a5839cc24b738 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_tasks.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_tasks.json @@ -9,16 +9,16 @@ "type": ["null", "string"] }, "total_hours": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "billable_hours": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "currency": { "type": ["null", "string"] }, "billable_amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "from": { "type": ["null", "string"] diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_team.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_team.json index 4971b00b087d7..ae7ae68534512 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_team.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/time_team.json @@ -21,7 +21,7 @@ "type": ["null", "string"] }, "billable_amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "from": { "type": ["null", "string"] diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/uninvoiced.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/uninvoiced.json index b124db596ea98..67606e10cf15f 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/uninvoiced.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/uninvoiced.json @@ -18,16 +18,16 @@ "type": ["null", "string"] }, "total_hours": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "uninvoiced_hours": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "uninvoiced_expenses": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "uninvoiced_amount": { - "type": ["null", "integer"] + "type": ["null", "number"] }, "from": { "type": ["null", "string"] diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/users.json b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/users.json index 0a1329308ac8f..2cef070277074 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/users.json +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/schemas/users.json @@ -62,10 +62,19 @@ "type": ["null", "number"] }, "roles": { - "type": ["null", "array"] + "type": ["null", "array"], + "items": { + "type": "string" + } }, "avatar_url": { "type": ["null", "string"] + }, + "calendar_integration_enabled": { + "type": ["null", "boolean"] + }, + "calendar_integration_source": { + "type": ["null", "string"] } } } diff --git a/airbyte-integrations/connectors/source-harvest/source_harvest/streams.py b/airbyte-integrations/connectors/source-harvest/source_harvest/streams.py index 8e7690c937b29..8270376eeb7c3 100644 --- a/airbyte-integrations/connectors/source-harvest/source_harvest/streams.py +++ b/airbyte-integrations/connectors/source-harvest/source_harvest/streams.py @@ -294,6 +294,7 @@ class ProjectAssignments(HarvestSubStream, IncrementalHarvestStream): class ReportsBase(HarvestStream, ABC): data_field = "results" date_param_template = "%Y%m%d" + primary_key = None @property @abstractmethod