diff --git a/airbyte-integrations/connectors/source-uptick/manifest.yaml b/airbyte-integrations/connectors/source-uptick/manifest.yaml index 5111c50edd7b..f03e39f84e5d 100644 --- a/airbyte-integrations/connectors/source-uptick/manifest.yaml +++ b/airbyte-integrations/connectors/source-uptick/manifest.yaml @@ -27,7 +27,7 @@ definitions: - type: WaitTimeFromHeader header: Retry-After request_headers: - User-Agent: Airbyte (Connector Version 0.3.5) + User-Agent: Airbyte (Connector Version 0.3.9) SimpleRetriever: requester: $ref: "#/definitions/linked/HttpRequester" @@ -4527,7 +4527,7 @@ streams: request_parameters: ordering: -updated show_deleted: "true" - fields[Asset]: id,created,updated,deleted,is_active,internal_note,contractor_note,contractor_ref,is_silent,is_notoncofo,uptick_ref,ref,iotdevice,label,location,standard_maintenance,standard_performance,standard_installation,compliant,status,inspection_ref,barcode,inspection_order,serviced_date,base_date,installation_date,total_expected_life,asset_condition,inspected_date,make,model,size,signoff_date,signoff_method,guid,coord_lat,coord_lng,bsecure_latest_sticker_guid,bsecure_resolved_guid,extra_fields,tags,type,variant,product,property,contractor,serviced_by,servicelevels,floorplan_location,last_service_result,highest_severity + fields[Asset]: id,created,updated,deleted,is_active,internal_note,contractor_note,contractor_ref,is_silent,is_notoncofo,uptick_ref,ref,iotdevice,label,location,standard_maintenance,standard_performance,standard_installation,compliant,status,inspection_ref,barcode,inspection_order,serviced_date,base_date,installation_date,total_expected_life,asset_condition,inspected_date,make,model,size,signoff_date,signoff_method,guid,coord_lat,coord_lng,bsecure_latest_sticker_guid,bsecure_resolved_guid,extra_fields,tags,type,variant,product,property,contractor,serviced_by,servicelevels,last_service_result,highest_severity schema_loader: type: InlineSchemaLoader schema: @@ -4713,10 +4713,6 @@ streams: servicelevels: type: - array - floorplan_location_id: - type: - - integer - - "null" last_service_result: type: - string @@ -4919,10 +4915,6 @@ streams: path: - servicelevels value: '{{ record["relationships"]["servicelevels"]["data"] }}' - - type: AddedFieldDefinition - path: - - floorplan_location_id - value: '{{ record["relationships"]["floorplan_location"]["data"]["id"] or "None"}}' - type: AddedFieldDefinition path: - last_service_result @@ -5382,7 +5374,7 @@ streams: request_parameters: ordering: -updated show_deleted: "true" - fields[TaskSession]: id,created,updated,trashed,submitted,is_approved,is_submitted,type,started,finished,started_coord_lat,started_coord_lng,finished_coord_lat,finished_coord_lng,original_started,original_finished,description,rate,timezone,multiplier,multiplier_label,sell_rate,hours,cost,sell,submitted_at,approved_at,task,technician,sell_product,submitted_by,approved_by,sell_hours,duration,duration_hours,status,payroll_date,appointment_attendance,is_suspicious_started,is_suspicious_finished + fields[TaskSession]: id,created,updated,trashed,submitted,is_approved,is_submitted,type,started,finished,started_coord_lat,started_coord_lng,finished_coord_lat,finished_coord_lng,original_started,original_finished,description,rate,timezone,multiplier,multiplier_label,sell_rate,cost,sell,submitted_at,approved_at,task,technician,sell_product,submitted_by,approved_by,duration,duration_hours,status,payroll_date schema_loader: type: InlineSchemaLoader schema: @@ -5487,11 +5479,6 @@ streams: - string - "null" format: decimal - hours: - type: - - string - - "null" - format: decimal cost: type: - string @@ -5534,9 +5521,6 @@ streams: type: - string - "null" - sell_hours: - type: - - string duration: type: - integer @@ -5555,16 +5539,6 @@ streams: - string - "null" format: date - appointment_attendance: - type: - - string - - "null" - is_suspicious_started: - type: - - boolean - is_suspicious_finished: - type: - - boolean transformations: - type: AddFields fields: @@ -5656,10 +5630,6 @@ streams: path: - sell_rate value: '{{ record["attributes"]["sell_rate"] or "None"}}' - - type: AddedFieldDefinition - path: - - hours - value: '{{ record["attributes"]["hours"] or "None"}}' - type: AddedFieldDefinition path: - cost @@ -5696,10 +5666,6 @@ streams: path: - approved_by_id value: '{{ record["relationships"]["approved_by"]["data"]["id"] or "None"}}' - - type: AddedFieldDefinition - path: - - sell_hours - value: '{{ record["attributes"]["sell_hours"] }}' - type: AddedFieldDefinition path: - duration @@ -5716,18 +5682,6 @@ streams: path: - payroll_date value: '{{ record["attributes"]["payroll_date"] or "None"}}' - - type: AddedFieldDefinition - path: - - appointment_attendance - value: '{{ record["attributes"]["appointment_attendance"] or "None"}}' - - type: AddedFieldDefinition - path: - - is_suspicious_started - value: '{{ record["attributes"]["is_suspicious_started"] }}' - - type: AddedFieldDefinition - path: - - is_suspicious_finished - value: '{{ record["attributes"]["is_suspicious_finished"] }}' - type: DeclarativeStream name: contractors primary_key: @@ -5950,3 +5904,1157 @@ streams: path: - asset_count value: '{{ record["attributes"]["asset_count"] or "None"}}' + - type: DeclarativeStream + name: appointments + primary_key: + - id + incremental_sync: + $ref: "#/definitions/linked/DeclarativeStream/incremental_sync" + retriever: + $ref: "#/definitions/linked/BaseSimpleRetriever" + requester: + $ref: "#/definitions/linked/BaseSimpleRetriever/requester" + url: '{{ config["base_url"] }}/api/v2.14/appointments/' + request_parameters: + ordering: -updated + show_deleted: "true" + fields[Appointment]: id,created,updated,status,subject,scheduled_start,scheduled_end,scheduler,notes,address,last_reminder_sent,timezone,attendance,category,routine,technicians,task + schema_loader: + type: InlineSchemaLoader + schema: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + id: + type: + - integer + created: + type: + - string + format: date-time + airbyte_type: timestamp_with_timezone + updated: + type: + - string + format: date-time + airbyte_type: timestamp_with_timezone + status: + type: + - string + subject: + type: + - string + scheduled_start: + type: + - string + format: date-time + airbyte_type: timestamp_with_timezone + scheduled_end: + type: + - string + format: date-time + airbyte_type: timestamp_with_timezone + scheduler: + type: + - string + notes: + type: + - string + address: + type: + - string + last_reminder_sent: + type: + - string + - "null" + format: date-time + airbyte_type: timestamp_with_timezone + timezone: + type: + - string + attendance: + type: + - string + - "null" + category_id: + type: + - integer + - "null" + routine_id: + type: + - integer + - "null" + technicians: + type: + - array + task_id: + type: + - integer + - "null" + transformations: + - type: AddFields + fields: + - type: AddedFieldDefinition + path: + - id + value: '{{ record["id"] }}' + - type: AddedFieldDefinition + path: + - created + value: '{{ record["attributes"]["created"] }}' + - type: AddedFieldDefinition + path: + - updated + value: '{{ record["attributes"]["updated"] }}' + - type: AddedFieldDefinition + path: + - status + value: '{{ record["attributes"]["status"] }}' + - type: AddedFieldDefinition + path: + - subject + value: '{{ record["attributes"]["subject"] }}' + - type: AddedFieldDefinition + path: + - scheduled_start + value: '{{ record["attributes"]["scheduled_start"] }}' + - type: AddedFieldDefinition + path: + - scheduled_end + value: '{{ record["attributes"]["scheduled_end"] }}' + - type: AddedFieldDefinition + path: + - scheduler + value: '{{ record["attributes"]["scheduler"] }}' + - type: AddedFieldDefinition + path: + - notes + value: '{{ record["attributes"]["notes"] }}' + - type: AddedFieldDefinition + path: + - address + value: '{{ record["attributes"]["address"] }}' + - type: AddedFieldDefinition + path: + - last_reminder_sent + value: '{{ record["attributes"]["last_reminder_sent"] or "None"}}' + - type: AddedFieldDefinition + path: + - timezone + value: '{{ record["attributes"]["timezone"] }}' + - type: AddedFieldDefinition + path: + - attendance + value: '{{ record["attributes"]["attendance"] or "None"}}' + - type: AddedFieldDefinition + path: + - category_id + value: '{{ record["relationships"]["category"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - routine_id + value: '{{ record["relationships"]["routine"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - technicians + value: '{{ record["relationships"]["technicians"]["data"] }}' + - type: AddedFieldDefinition + path: + - task_id + value: '{{ record["relationships"]["task"]["data"]["id"] or "None"}}' + - type: DeclarativeStream + name: billingcontracts + primary_key: + - id + incremental_sync: + $ref: "#/definitions/linked/DeclarativeStream/incremental_sync" + retriever: + $ref: "#/definitions/linked/BaseSimpleRetriever" + requester: + $ref: "#/definitions/linked/BaseSimpleRetriever/requester" + url: '{{ config["base_url"] }}/api/v2.14/billingcontracts/' + request_parameters: + ordering: -updated + show_deleted: "true" + fields[BillingContract]: id,created,updated,name,type,property,billingcard,recurrence,invoice_mode,is_active,start_date,finish_date,review_date,send_invoice,author,authorisation,authorisation_ref,next_due,value,annual_value,period_begin,period_end,notes,priceincrease_policy,priceincrease_auto_next_date,priceincrease_auto_percentage,extra_fields + schema_loader: + type: InlineSchemaLoader + schema: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + id: + type: + - integer + created: + type: + - string + format: date-time + airbyte_type: timestamp_with_timezone + updated: + type: + - string + format: date-time + airbyte_type: timestamp_with_timezone + name: + type: + - string + type: + type: + - string + property_id: + type: + - integer + - "null" + billingcard_id: + type: + - integer + - "null" + recurrence: + type: + - string + invoice_mode: + type: + - string + is_active: + type: + - boolean + start_date: + type: + - string + format: date + finish_date: + type: + - string + - "null" + format: date + review_date: + type: + - string + - "null" + format: date + send_invoice: + type: + - string + - "null" + format: date + author_id: + type: + - integer + - "null" + authorisation: + type: + - string + format: decimal + authorisation_ref: + type: + - string + next_due: + type: + - string + - "null" + format: date + value: + type: + - string + annual_value: + type: + - string + format: decimal + period_begin: + type: + - string + period_end: + type: + - string + notes: + type: + - string + priceincrease_policy: + type: + - string + priceincrease_auto_next_date: + type: + - string + - "null" + format: date + priceincrease_auto_percentage: + type: + - string + - "null" + format: decimal + extra_fields: + type: + - object + transformations: + - type: AddFields + fields: + - type: AddedFieldDefinition + path: + - id + value: '{{ record["id"] }}' + - type: AddedFieldDefinition + path: + - created + value: '{{ record["attributes"]["created"] }}' + - type: AddedFieldDefinition + path: + - updated + value: '{{ record["attributes"]["updated"] }}' + - type: AddedFieldDefinition + path: + - name + value: '{{ record["attributes"]["name"] }}' + - type: AddedFieldDefinition + path: + - type + value: '{{ record["attributes"]["type"] }}' + - type: AddedFieldDefinition + path: + - property_id + value: '{{ record["relationships"]["property"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - billingcard_id + value: '{{ record["relationships"]["billingcard"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - recurrence + value: '{{ record["attributes"]["recurrence"] }}' + - type: AddedFieldDefinition + path: + - invoice_mode + value: '{{ record["attributes"]["invoice_mode"] }}' + - type: AddedFieldDefinition + path: + - is_active + value: '{{ record["attributes"]["is_active"] }}' + - type: AddedFieldDefinition + path: + - start_date + value: '{{ record["attributes"]["start_date"] }}' + - type: AddedFieldDefinition + path: + - finish_date + value: '{{ record["attributes"]["finish_date"] or "None"}}' + - type: AddedFieldDefinition + path: + - review_date + value: '{{ record["attributes"]["review_date"] or "None"}}' + - type: AddedFieldDefinition + path: + - send_invoice + value: '{{ record["attributes"]["send_invoice"] or "None"}}' + - type: AddedFieldDefinition + path: + - author_id + value: '{{ record["relationships"]["author"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - authorisation + value: '{{ record["attributes"]["authorisation"] }}' + - type: AddedFieldDefinition + path: + - authorisation_ref + value: '{{ record["attributes"]["authorisation_ref"] }}' + - type: AddedFieldDefinition + path: + - next_due + value: '{{ record["attributes"]["next_due"] or "None"}}' + - type: AddedFieldDefinition + path: + - value + value: '{{ record["attributes"]["value"] }}' + - type: AddedFieldDefinition + path: + - annual_value + value: '{{ record["attributes"]["annual_value"] }}' + - type: AddedFieldDefinition + path: + - period_begin + value: '{{ record["attributes"]["period_begin"] }}' + - type: AddedFieldDefinition + path: + - period_end + value: '{{ record["attributes"]["period_end"] }}' + - type: AddedFieldDefinition + path: + - notes + value: '{{ record["attributes"]["notes"] }}' + - type: AddedFieldDefinition + path: + - priceincrease_policy + value: '{{ record["attributes"]["priceincrease_policy"] }}' + - type: AddedFieldDefinition + path: + - priceincrease_auto_next_date + value: '{{ record["attributes"]["priceincrease_auto_next_date"] or "None"}}' + - type: AddedFieldDefinition + path: + - priceincrease_auto_percentage + value: '{{ record["attributes"]["priceincrease_auto_percentage"] or "None"}}' + - type: AddedFieldDefinition + path: + - extra_fields + value: '{{ record["attributes"]["extra_fields"] }}' + - type: DeclarativeStream + name: billingcontractlineitems + primary_key: + - id + incremental_sync: + $ref: "#/definitions/linked/DeclarativeStream/incremental_sync" + retriever: + $ref: "#/definitions/linked/BaseSimpleRetriever" + requester: + $ref: "#/definitions/linked/BaseSimpleRetriever/requester" + url: '{{ config["base_url"] }}/api/v2.14/billingcontractlineitems/' + request_parameters: + ordering: -updated + show_deleted: "true" + fields[BillingContractLineItem]: id,created,updated,billingcontract,visible,product,description,unit_price,all_routines,price_period,type + schema_loader: + type: InlineSchemaLoader + schema: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + id: + type: + - integer + created: + type: + - string + format: date-time + airbyte_type: timestamp_with_timezone + updated: + type: + - string + format: date-time + airbyte_type: timestamp_with_timezone + billingcontract_id: + type: + - integer + - "null" + visible: + type: + - boolean + product_id: + type: + - integer + - "null" + description: + type: + - string + unit_price: + type: + - string + format: decimal + all_routines: + type: + - boolean + price_period: + type: + - string + type: + type: + - string + transformations: + - type: AddFields + fields: + - type: AddedFieldDefinition + path: + - id + value: '{{ record["id"] }}' + - type: AddedFieldDefinition + path: + - created + value: '{{ record["attributes"]["created"] }}' + - type: AddedFieldDefinition + path: + - updated + value: '{{ record["attributes"]["updated"] }}' + - type: AddedFieldDefinition + path: + - billingcontract_id + value: '{{ record["relationships"]["billingcontract"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - visible + value: '{{ record["attributes"]["visible"] }}' + - type: AddedFieldDefinition + path: + - product_id + value: '{{ record["relationships"]["product"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - description + value: '{{ record["attributes"]["description"] }}' + - type: AddedFieldDefinition + path: + - unit_price + value: '{{ record["attributes"]["unit_price"] }}' + - type: AddedFieldDefinition + path: + - all_routines + value: '{{ record["attributes"]["all_routines"] }}' + - type: AddedFieldDefinition + path: + - price_period + value: '{{ record["attributes"]["price_period"] }}' + - type: AddedFieldDefinition + path: + - type + value: '{{ record["attributes"]["type"] }}' + - type: DeclarativeStream + name: defectquotelineitems + primary_key: + - id + incremental_sync: + $ref: "#/definitions/linked/DeclarativeStream/incremental_sync" + retriever: + $ref: "#/definitions/linked/BaseSimpleRetriever" + requester: + $ref: "#/definitions/linked/BaseSimpleRetriever/requester" + url: '{{ config["base_url"] }}/api/v2.14/defectquotelineitems/' + request_parameters: + ordering: -updated + show_deleted: "true" + fields[DefectQuoteLineItem]: id,created,updated,description,unit_price,cost_price,markup,quantity,taxcode,taxrate,subtotal,total,gst,index,estimated_time,product_type,product,quote,asset,remark + schema_loader: + type: InlineSchemaLoader + schema: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + id: + type: + - integer + created: + type: + - string + format: date-time + airbyte_type: timestamp_with_timezone + updated: + type: + - string + format: date-time + airbyte_type: timestamp_with_timezone + description: + type: + - string + unit_price: + type: + - string + format: decimal + cost_price: + type: + - string + format: decimal + markup: + type: + - string + format: decimal + quantity: + type: + - string + format: decimal + taxcode: + type: + - string + taxrate: + type: + - string + format: decimal + subtotal: + type: + - string + total: + type: + - string + gst: + type: + - string + index: + type: + - integer + estimated_time: + type: + - integer + product_type: + type: + - string + - "null" + product_id: + type: + - integer + - "null" + quote_id: + type: + - integer + - "null" + asset_id: + type: + - integer + - "null" + remark_id: + type: + - integer + - "null" + transformations: + - type: AddFields + fields: + - type: AddedFieldDefinition + path: + - id + value: '{{ record["id"] }}' + - type: AddedFieldDefinition + path: + - created + value: '{{ record["attributes"]["created"] }}' + - type: AddedFieldDefinition + path: + - updated + value: '{{ record["attributes"]["updated"] }}' + - type: AddedFieldDefinition + path: + - description + value: '{{ record["attributes"]["description"] }}' + - type: AddedFieldDefinition + path: + - unit_price + value: '{{ record["attributes"]["unit_price"] }}' + - type: AddedFieldDefinition + path: + - cost_price + value: '{{ record["attributes"]["cost_price"] }}' + - type: AddedFieldDefinition + path: + - markup + value: '{{ record["attributes"]["markup"] }}' + - type: AddedFieldDefinition + path: + - quantity + value: '{{ record["attributes"]["quantity"] }}' + - type: AddedFieldDefinition + path: + - taxcode + value: '{{ record["attributes"]["taxcode"] }}' + - type: AddedFieldDefinition + path: + - taxrate + value: '{{ record["attributes"]["taxrate"] }}' + - type: AddedFieldDefinition + path: + - subtotal + value: '{{ record["attributes"]["subtotal"] }}' + - type: AddedFieldDefinition + path: + - total + value: '{{ record["attributes"]["total"] }}' + - type: AddedFieldDefinition + path: + - gst + value: '{{ record["attributes"]["gst"] }}' + - type: AddedFieldDefinition + path: + - index + value: '{{ record["attributes"]["index"] }}' + - type: AddedFieldDefinition + path: + - estimated_time + value: '{{ record["attributes"]["estimated_time"] }}' + - type: AddedFieldDefinition + path: + - product_type + value: '{{ record["attributes"]["product_type"] or "None"}}' + - type: AddedFieldDefinition + path: + - product_id + value: '{{ record["relationships"]["product"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - quote_id + value: '{{ record["relationships"]["quote"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - asset_id + value: '{{ record["relationships"]["asset"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - remark_id + value: '{{ record["relationships"]["remark"]["data"]["id"] or "None"}}' + - type: DeclarativeStream + name: servicequotefixedlineitems + primary_key: + - id + incremental_sync: + $ref: "#/definitions/linked/DeclarativeStream/incremental_sync" + retriever: + $ref: "#/definitions/linked/BaseSimpleRetriever" + requester: + $ref: "#/definitions/linked/BaseSimpleRetriever/requester" + url: '{{ config["base_url"] }}/api/v2.14/servicequotefixedlineitems/' + request_parameters: + ordering: -updated + show_deleted: "true" + fields[ServiceLineItem]: id,servicequote,description,quantity,unit_price,billingcontract_type,index,estimated_duration,taxcode,taxrate,annual_tax,annual_subtotal + schema_loader: + type: InlineSchemaLoader + schema: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + id: + type: + - integer + servicequote_id: + type: + - integer + - "null" + description: + type: + - string + quantity: + type: + - string + format: decimal + unit_price: + type: + - string + format: decimal + billingcontract_type: + type: + - string + index: + type: + - integer + estimated_duration: + type: + - string + - "null" + taxcode: + type: + - string + taxrate: + type: + - string + format: decimal + annual_tax: + type: + - string + - "null" + format: decimal + annual_subtotal: + type: + - string + format: decimal + transformations: + - type: AddFields + fields: + - type: AddedFieldDefinition + path: + - id + value: '{{ record["id"] }}' + - type: AddedFieldDefinition + path: + - servicequote_id + value: '{{ record["relationships"]["servicequote"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - description + value: '{{ record["attributes"]["description"] }}' + - type: AddedFieldDefinition + path: + - quantity + value: '{{ record["attributes"]["quantity"] }}' + - type: AddedFieldDefinition + path: + - unit_price + value: '{{ record["attributes"]["unit_price"] }}' + - type: AddedFieldDefinition + path: + - billingcontract_type + value: '{{ record["attributes"]["billingcontract_type"] }}' + - type: AddedFieldDefinition + path: + - index + value: '{{ record["attributes"]["index"] }}' + - type: AddedFieldDefinition + path: + - estimated_duration + value: '{{ record["attributes"]["estimated_duration"] or "None"}}' + - type: AddedFieldDefinition + path: + - taxcode + value: '{{ record["attributes"]["taxcode"] }}' + - type: AddedFieldDefinition + path: + - taxrate + value: '{{ record["attributes"]["taxrate"] }}' + - type: AddedFieldDefinition + path: + - annual_tax + value: '{{ record["attributes"]["annual_tax"] or "None"}}' + - type: AddedFieldDefinition + path: + - annual_subtotal + value: '{{ record["attributes"]["annual_subtotal"] }}' + - type: DeclarativeStream + name: servicequotedoandchargelineitems + primary_key: + - id + incremental_sync: + $ref: "#/definitions/linked/DeclarativeStream/incremental_sync" + retriever: + $ref: "#/definitions/linked/BaseSimpleRetriever" + requester: + $ref: "#/definitions/linked/BaseSimpleRetriever/requester" + url: '{{ config["base_url"] }}/api/v2.14/servicequotedoandchargelineitems/' + request_parameters: + ordering: -updated + show_deleted: "true" + fields[ServiceLineItem]: id,servicequote,description,quantity,unit_price,billingcontract_type,index,estimated_duration,taxcode,taxrate,annual_tax,site_price,annual_subtotal,service_price + schema_loader: + type: InlineSchemaLoader + schema: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + id: + type: + - integer + servicequote_id: + type: + - integer + - "null" + description: + type: + - string + quantity: + type: + - string + format: decimal + unit_price: + type: + - string + format: decimal + billingcontract_type: + type: + - string + index: + type: + - integer + estimated_duration: + type: + - string + - "null" + taxcode: + type: + - string + taxrate: + type: + - string + format: decimal + annual_tax: + type: + - string + - "null" + format: decimal + site_price: + type: + - string + format: decimal + annual_subtotal: + type: + - string + format: decimal + service_price: + type: + - string + format: decimal + transformations: + - type: AddFields + fields: + - type: AddedFieldDefinition + path: + - id + value: '{{ record["id"] }}' + - type: AddedFieldDefinition + path: + - servicequote_id + value: '{{ record["relationships"]["servicequote"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - description + value: '{{ record["attributes"]["description"] }}' + - type: AddedFieldDefinition + path: + - quantity + value: '{{ record["attributes"]["quantity"] }}' + - type: AddedFieldDefinition + path: + - unit_price + value: '{{ record["attributes"]["unit_price"] }}' + - type: AddedFieldDefinition + path: + - billingcontract_type + value: '{{ record["attributes"]["billingcontract_type"] }}' + - type: AddedFieldDefinition + path: + - index + value: '{{ record["attributes"]["index"] }}' + - type: AddedFieldDefinition + path: + - estimated_duration + value: '{{ record["attributes"]["estimated_duration"] or "None"}}' + - type: AddedFieldDefinition + path: + - taxcode + value: '{{ record["attributes"]["taxcode"] }}' + - type: AddedFieldDefinition + path: + - taxrate + value: '{{ record["attributes"]["taxrate"] }}' + - type: AddedFieldDefinition + path: + - annual_tax + value: '{{ record["attributes"]["annual_tax"] or "None"}}' + - type: AddedFieldDefinition + path: + - site_price + value: '{{ record["attributes"]["site_price"] }}' + - type: AddedFieldDefinition + path: + - annual_subtotal + value: '{{ record["attributes"]["annual_subtotal"] }}' + - type: AddedFieldDefinition + path: + - service_price + value: '{{ record["attributes"]["service_price"] }}' + - type: DeclarativeStream + name: servicequoteproductlineitems + primary_key: + - id + incremental_sync: + $ref: "#/definitions/linked/DeclarativeStream/incremental_sync" + retriever: + $ref: "#/definitions/linked/BaseSimpleRetriever" + requester: + $ref: "#/definitions/linked/BaseSimpleRetriever/requester" + url: '{{ config["base_url"] }}/api/v2.14/servicequoteproductlineitems/' + request_parameters: + ordering: -updated + show_deleted: "true" + fields[ProductLineItem]: id,servicequote,product,description,quantity,unit_price,cost_price,subtotal,taxcode,taxrate,tax,total,index + schema_loader: + type: InlineSchemaLoader + schema: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + id: + type: + - integer + servicequote_id: + type: + - integer + - "null" + product_id: + type: + - integer + - "null" + description: + type: + - string + quantity: + type: + - string + format: decimal + unit_price: + type: + - string + format: decimal + cost_price: + type: + - string + format: decimal + subtotal: + type: + - string + format: decimal + taxcode: + type: + - string + taxrate: + type: + - string + format: decimal + tax: + type: + - string + format: decimal + total: + type: + - string + format: decimal + index: + type: + - integer + transformations: + - type: AddFields + fields: + - type: AddedFieldDefinition + path: + - id + value: '{{ record["id"] }}' + - type: AddedFieldDefinition + path: + - servicequote_id + value: '{{ record["relationships"]["servicequote"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - product_id + value: '{{ record["relationships"]["product"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - description + value: '{{ record["attributes"]["description"] }}' + - type: AddedFieldDefinition + path: + - quantity + value: '{{ record["attributes"]["quantity"] }}' + - type: AddedFieldDefinition + path: + - unit_price + value: '{{ record["attributes"]["unit_price"] }}' + - type: AddedFieldDefinition + path: + - cost_price + value: '{{ record["attributes"]["cost_price"] }}' + - type: AddedFieldDefinition + path: + - subtotal + value: '{{ record["attributes"]["subtotal"] }}' + - type: AddedFieldDefinition + path: + - taxcode + value: '{{ record["attributes"]["taxcode"] }}' + - type: AddedFieldDefinition + path: + - taxrate + value: '{{ record["attributes"]["taxrate"] }}' + - type: AddedFieldDefinition + path: + - tax + value: '{{ record["attributes"]["tax"] }}' + - type: AddedFieldDefinition + path: + - total + value: '{{ record["attributes"]["total"] }}' + - type: AddedFieldDefinition + path: + - index + value: '{{ record["attributes"]["index"] }}' + - type: DeclarativeStream + name: remarkevents + primary_key: + - id + incremental_sync: + $ref: "#/definitions/linked/DeclarativeStream/incremental_sync" + retriever: + $ref: "#/definitions/linked/BaseSimpleRetriever" + requester: + $ref: "#/definitions/linked/BaseSimpleRetriever/requester" + url: '{{ config["base_url"] }}/api/v2.14/remarkevents/' + request_parameters: + ordering: -updated + show_deleted: "true" + fields[RemarkEvent]: id,created,updated,event,notes,remark,task,servicetask,account + schema_loader: + type: InlineSchemaLoader + schema: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + id: + type: + - integer + created: + type: + - string + format: date-time + airbyte_type: timestamp_with_timezone + updated: + type: + - string + format: date-time + airbyte_type: timestamp_with_timezone + event: + type: + - string + notes: + type: + - string + remark_id: + type: + - integer + - "null" + task_id: + type: + - integer + - "null" + servicetask_id: + type: + - integer + - "null" + account_id: + type: + - integer + - "null" + transformations: + - type: AddFields + fields: + - type: AddedFieldDefinition + path: + - id + value: '{{ record["id"] }}' + - type: AddedFieldDefinition + path: + - created + value: '{{ record["attributes"]["created"] }}' + - type: AddedFieldDefinition + path: + - updated + value: '{{ record["attributes"]["updated"] }}' + - type: AddedFieldDefinition + path: + - event + value: '{{ record["attributes"]["event"] }}' + - type: AddedFieldDefinition + path: + - notes + value: '{{ record["attributes"]["notes"] }}' + - type: AddedFieldDefinition + path: + - remark_id + value: '{{ record["relationships"]["remark"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - task_id + value: '{{ record["relationships"]["task"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - servicetask_id + value: '{{ record["relationships"]["servicetask"]["data"]["id"] or "None"}}' + - type: AddedFieldDefinition + path: + - account_id + value: '{{ record["relationships"]["account"]["data"]["id"] or "None"}}' diff --git a/airbyte-integrations/connectors/source-uptick/metadata.yaml b/airbyte-integrations/connectors/source-uptick/metadata.yaml index 72c5818abe99..5567630fdd4e 100644 --- a/airbyte-integrations/connectors/source-uptick/metadata.yaml +++ b/airbyte-integrations/connectors/source-uptick/metadata.yaml @@ -33,13 +33,13 @@ data: connectorSubtype: api connectorType: source definitionId: 54c75c42-df4a-4f3e-a5f3-d50cf80f1649 - dockerImageTag: 0.3.8 + dockerImageTag: 0.3.9 dockerRepository: airbyte/source-uptick githubIssueLabel: source-uptick icon: icon.svg license: ELv2 name: Uptick - releaseDate: 2025-10-17 + releaseDate: 2025-11-20 releaseStage: alpha supportLevel: community documentationUrl: https://docs.airbyte.com/integrations/sources/uptick diff --git a/docs/integrations/sources/uptick.md b/docs/integrations/sources/uptick.md index b9878ad9d80b..dd3e4ce9c89e 100644 --- a/docs/integrations/sources/uptick.md +++ b/docs/integrations/sources/uptick.md @@ -37,6 +37,8 @@ The Uptick connector syncs data from the following streams, organized by functio - `creditnotes` - Credit notes for refunds and adjustments - `creditnotelineitems` - Line items within credit notes - `billingcards` - Billing card information for cost allocation +- `billingcontracts` - Recurring billing contracts for ongoing services +- `billingcontractlineitems` - Line items within billing contracts - `costcentres` - Cost center assignments for financial tracking ### Purchasing and supply chain @@ -56,6 +58,8 @@ The Uptick connector syncs data from the following streams, organized by functio - `assettypevariants` - Variants and configurations of asset types - `routines` - Scheduled maintenance and inspection routines - `remarks` - Issues, defects, and observations during inspections +- `remarkevents` - Events and actions taken on remarks +- `appointments` - Scheduled appointments for work and inspections ### Quality and compliance @@ -65,7 +69,11 @@ The Uptick connector syncs data from the following streams, organized by functio ### Sales - `servicequotes` - Quotes for service work +- `servicequotefixedlineitems` - Fixed price line items within service quotes +- `servicequotedoandchargelineitems` - Do-and-charge line items within service quotes +- `servicequoteproductlineitems` - Product line items within service quotes - `defectquotes` - Quotes for remedial work on identified defects +- `defectquotelineitems` - Line items within defect quotes ### Organization and location @@ -75,40 +83,48 @@ The Uptick connector syncs data from the following streams, organized by functio | Stream Name | Primary Key | Pagination | Supports Full Sync | Supports Incremental | |-------------|-------------|------------|---------------------|----------------------| -| tasks | id | DefaultPaginator | ✅ | ✅ | -| taskcategories | id | DefaultPaginator | ✅ | ✅ | -| clients | id | DefaultPaginator | ✅ | ✅ | -| clientgroups | id | DefaultPaginator | ✅ | ✅ | -| properties | id | DefaultPaginator | ✅ | ✅ | -| invoices | id | DefaultPaginator | ✅ | ✅ | -| projects | id | DefaultPaginator | ✅ | ✅ | -| servicequotes | id | DefaultPaginator | ✅ | ✅ | -| defectquotes | id | DefaultPaginator | ✅ | ✅ | -| suppliers | id | DefaultPaginator | ✅ | ✅ | -| purchaseorders | id | DefaultPaginator | ✅ | ✅ | -| assets | id | DefaultPaginator | ✅ | ✅ | -| routines | id | DefaultPaginator | ✅ | ✅ | -| billingcards | id | DefaultPaginator | ✅ | ✅ | -| purchaseorderbills | id | DefaultPaginator | ✅ | ✅ | -| purchaseorderdockets | id | DefaultPaginator | ✅ | ✅ | -| invoicelineitems | id | DefaultPaginator | ✅ | ❌ | -| users | id | DefaultPaginator | ✅ | ✅ | -| servicegroups | id | DefaultPaginator | ✅ | ✅ | -| costcentres | id | DefaultPaginator | ✅ | ✅ | -| purchaseorderlineitems | id | DefaultPaginator | ✅ | ❌ | -| purchaseorderbilllineitems | id | DefaultPaginator | ✅ | ❌ | -| accreditationtypes | id | DefaultPaginator | ✅ | ✅ | -| accreditations | id | DefaultPaginator | ✅ | ✅ | -| branches | id | DefaultPaginator | ✅ | ✅ | -| creditnotes | id | DefaultPaginator | ✅ | ✅ | -| creditnotelineitems | id | DefaultPaginator | ✅ | ✅ | -| remarks | id | DefaultPaginator | ✅ | ✅ | -| assettypes | id | DefaultPaginator | ✅ | ✅ | -| assettypevariants | id | DefaultPaginator | ✅ | ✅ | -| products | id | DefaultPaginator | ✅ | ✅ | -| rounds | id | DefaultPaginator | ✅ | ✅ | -| tasksessions | id | DefaultPaginator | ✅ | ✅ | -| contractors | id | DefaultPaginator | ✅ | ✅ | +| tasks | id | DefaultPaginator | ✅ | ✅ | +| taskcategories | id | DefaultPaginator | ✅ | ✅ | +| clients | id | DefaultPaginator | ✅ | ✅ | +| clientgroups | id | DefaultPaginator | ✅ | ✅ | +| properties | id | DefaultPaginator | ✅ | ✅ | +| invoices | id | DefaultPaginator | ✅ | ✅ | +| projects | id | DefaultPaginator | ✅ | ✅ | +| servicequotes | id | DefaultPaginator | ✅ | ✅ | +| defectquotes | id | DefaultPaginator | ✅ | ✅ | +| suppliers | id | DefaultPaginator | ✅ | ✅ | +| purchaseorders | id | DefaultPaginator | ✅ | ✅ | +| purchaseorderlineitems | id | DefaultPaginator | ✅ | ❌ (no soft delete) | +| assets | id | DefaultPaginator | ✅ | ✅ | +| routines | id | DefaultPaginator | ✅ | ✅ | +| billingcards | id | DefaultPaginator | ✅ | ✅ | +| purchaseorderbills | id | DefaultPaginator | ✅ | ✅ | +| purchaseorderbilllineitems | id | DefaultPaginator | ✅ | ❌ (no soft delete) | +| purchaseorderdockets | id | DefaultPaginator | ✅ | ✅ | +| invoicelineitems | id | DefaultPaginator | ✅ | ❌ (no soft delete) | +| users | id | DefaultPaginator | ✅ | ✅ | +| servicegroups | id | DefaultPaginator | ✅ | ✅ | +| costcentres | id | DefaultPaginator | ✅ | ✅ | +| accreditationtypes | id | DefaultPaginator | ✅ | ✅ | +| accreditations | id | DefaultPaginator | ✅ | ✅ | +| branches | id | DefaultPaginator | ✅ | ✅ | +| creditnotes | id | DefaultPaginator | ✅ | ✅ | +| creditnotelineitems | id | DefaultPaginator | ✅ | ✅ | +| remarks | id | DefaultPaginator | ✅ | ✅ | +| assettypes | id | DefaultPaginator | ✅ | ✅ | +| assettypevariants | id | DefaultPaginator | ✅ | ✅ | +| products | id | DefaultPaginator | ✅ | ✅ | +| rounds | id | DefaultPaginator | ✅ | ✅ | +| tasksessions | id | DefaultPaginator | ✅ | ✅ | +| contractors | id | DefaultPaginator | ✅ | ✅ | +| appointments | id | DefaultPaginator | ✅ | ❌ (no soft delete) | +| billingcontracts | id | DefaultPaginator | ✅ | ❌ (no soft delete) | +| billingcontractlineitems | id | DefaultPaginator | ✅ | ❌ (no soft delete) | +| defectquotelineitems | id | DefaultPaginator | ✅ | ❌ (no soft delete) | +| servicequotefixedlineitems | id | DefaultPaginator | ✅ | ❌ (no soft delete) | +| servicequotedoandchargelineitems | id | DefaultPaginator | ✅ | ❌ (no soft delete) | +| servicequoteproductlineitems | id | DefaultPaginator | ✅ | ❌ (no soft delete) | +| remarkevents | id | DefaultPaginator | ✅ | ❌ (no soft delete) | ## Changelog @@ -117,6 +133,7 @@ The Uptick connector syncs data from the following streams, organized by functio | Version | Date | Pull Request | Subject | |------------------|-------------------|--------------|----------------| +| 0.3.9 | 2025-11-19 | [68194](https://github.com/airbytehq/airbyte/pull/68194) | Remove expensive calculation fields from tasksessions, add more streams | | 0.3.8 | 2025-11-18 | [69684](https://github.com/airbytehq/airbyte/pull/69684) | Update dependencies | | 0.3.7 | 2025-10-29 | [68880](https://github.com/airbytehq/airbyte/pull/68880) | Update dependencies | | 0.3.6 | 2025-10-21 | [68365](https://github.com/airbytehq/airbyte/pull/68365) | Update dependencies |