diff --git a/airbyte-integrations/connectors/source-pennylane/manifest.yaml b/airbyte-integrations/connectors/source-pennylane/manifest.yaml index cddb5b96cbdf4..b082b580c612a 100644 --- a/airbyte-integrations/connectors/source-pennylane/manifest.yaml +++ b/airbyte-integrations/connectors/source-pennylane/manifest.yaml @@ -1,4 +1,4 @@ -version: 4.3.2 +version: 6.13.0 type: DeclarativeSource @@ -9,1031 +9,1722 @@ check: stream_names: - supplier_invoices +definitions: + streams: + supplier_invoices: + type: DeclarativeStream + name: supplier_invoices + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + $ref: "#/definitions/base_requester" + path: supplier_invoices + http_method: GET + request_parameters: + filter: >- + '[{"field": "updated_at", "operator": "gteq", "value": "{{ + stream_interval.start_time }}" }]' + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - invoices + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 1000 + start_from_page: 1 + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%fZ" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: '{{ config["start_time"] }}' + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + end_datetime: + type: MinMaxDatetime + datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/supplier_invoices" + suppliers: + type: DeclarativeStream + name: suppliers + primary_key: + - source_id + retriever: + type: SimpleRetriever + requester: + $ref: "#/definitions/base_requester" + path: suppliers + http_method: GET + request_parameters: + filter: >- + '[{"field": "updated_at", "operator": "gteq", "value": "{{ + stream_interval.start_time }}" }]' + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - suppliers + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%fZ" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: '{{ config["start_time"] }}' + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + end_datetime: + type: MinMaxDatetime + datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/suppliers" + plan_items: + type: DeclarativeStream + name: plan_items + primary_key: + - v2_id + retriever: + type: SimpleRetriever + requester: + $ref: "#/definitions/base_requester" + path: https://app.pennylane.com/api/external/v1/plan_items + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - plan_items + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 1000 + start_from_page: 1 + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/plan_items" + customers: + type: DeclarativeStream + name: customers + primary_key: + - source_id + retriever: + type: SimpleRetriever + requester: + $ref: "#/definitions/base_requester" + path: customers + http_method: GET + request_parameters: + filter: >- + '[{"field": "updated_at", "operator": "gteq", "value": "{{ + stream_interval.start_time }}" }]' + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - customers + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%fZ" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: '{{ config["start_time"] }}' + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + end_datetime: + type: MinMaxDatetime + datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/customers" + customer_invoices: + type: DeclarativeStream + name: customer_invoices + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + $ref: "#/definitions/base_requester" + path: customer_invoices + http_method: GET + request_parameters: + filter: >- + '[{"field": "updated_at", "operator": "gteq", "value": "{{ + stream_interval.start_time }}" }]' + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - invoices + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 1000 + start_from_page: 1 + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%fZ" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: '{{ config["start_time"] }}' + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + end_datetime: + type: MinMaxDatetime + datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/customer_invoices" + products: + type: DeclarativeStream + name: products + primary_key: + - source_id + retriever: + type: SimpleRetriever + requester: + $ref: "#/definitions/base_requester" + path: products + http_method: GET + request_parameters: + filter: >- + '[{"field": "updated_at", "operator": "gteq", "value": "{{ + stream_interval.start_time }}" }]' + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - products + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%fZ" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: '{{ config["start_time"] }}' + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + end_datetime: + type: MinMaxDatetime + datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/products" + category_groups: + type: DeclarativeStream + name: category_groups + primary_key: + - id + retriever: + type: SimpleRetriever + requester: + $ref: "#/definitions/base_requester" + path: category_groups + http_method: GET + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - category_groups + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 1000 + start_from_page: 1 + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/category_groups" + categories: + type: DeclarativeStream + name: categories + primary_key: + - source_id + retriever: + type: SimpleRetriever + requester: + $ref: "#/definitions/base_requester" + path: categories + http_method: GET + request_parameters: + filter: >- + '[{"field": "updated_at", "operator": "gteq", "value": "{{ + stream_interval.start_time }}" }]' + record_selector: + type: RecordSelector + extractor: + type: DpathExtractor + field_path: + - categories + paginator: + type: DefaultPaginator + page_token_option: + type: RequestOption + inject_into: request_parameter + field_name: page + page_size_option: + type: RequestOption + field_name: per_page + inject_into: request_parameter + pagination_strategy: + type: PageIncrement + page_size: 100 + start_from_page: 1 + incremental_sync: + type: DatetimeBasedCursor + cursor_field: updated_at + cursor_datetime_formats: + - "%Y-%m-%dT%H:%M:%S.%fZ" + datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" + start_datetime: + type: MinMaxDatetime + datetime: '{{ config["start_time"] }}' + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + end_datetime: + type: MinMaxDatetime + datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" + datetime_format: "%Y-%m-%dT%H:%M:%SZ" + schema_loader: + type: InlineSchemaLoader + schema: + $ref: "#/schemas/categories" + base_requester: + type: HttpRequester + url_base: https://app.pennylane.com/api/external/v1/ + authenticator: + type: BearerAuthenticator + api_token: '{{ config["api_key"] }}' + streams: - - type: DeclarativeStream - name: supplier_invoices - primary_key: - - id - schema_loader: - type: InlineSchemaLoader - schema: - type: object - $schema: http://json-schema.org/schema# - properties: - amount: - type: string - categories: - type: array - currency: - type: string - currency_amount: - type: string - currency_amount_before_tax: - type: string - currency_tax: - type: string - date: - type: string - deadline: - type: string - discount: - type: string - discount_type: - type: string - exchange_rate: - type: number - file_url: - type: string - filename: - type: string - id: - type: string - invoice_number: - type: string - is_draft: - type: boolean - label: - type: string - language: - type: string - line_items: - type: array - items: - type: object - properties: - description: - type: string - amount: - type: string - currency_amount: - type: string - currency_price_before_tax: - type: string - currency_tax: - type: string - id: - type: number - label: - type: string - quantity: - type: string - vat_rate: - type: string - matched_transactions: - type: array - items: - type: object - properties: - amount: - type: string - currency: - type: string - date: - type: string - group_uuid: - type: string - label: - type: string - paid: - type: boolean - payment_status: - type: string - pdf_invoice_free_text: - type: string - pdf_invoice_subject: - type: string - quote_group_uuid: - type: string - remaining_amount: - type: string - source: - type: string - supplier: - type: object - properties: - billing_address: - type: object - properties: - address: - type: string - city: - type: string - country_alpha2: - type: string - postal_code: - type: string - billing_iban: - type: string - emails: - type: array - iban: - type: string - name: - type: string - payment_conditions: - type: string - phone: - type: string - recipient: - type: string - reference: - type: string - reg_no: - type: string - source_id: - type: string - updated_at: - type: string - vat_number: - type: string - transactions_reference: - type: object - properties: {} - updated_at: - type: string - retriever: - type: SimpleRetriever - requester: - type: HttpRequester - url_base: https://app.pennylane.com/api/external/v1/ - path: supplier_invoices - http_method: GET - request_parameters: - filter: >- - '[{"field": "updated_at", "operator": "gteq", "value": "{{ - stream_interval.start_time }}" }]' - request_headers: {} - authenticator: - type: BearerAuthenticator - api_token: "{{ config['api_key'] }}" - request_body_json: {} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - invoices - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: PageIncrement - page_size: 1000 - start_from_page: 1 - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%fZ" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_time'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - end_datetime: - type: MinMaxDatetime - datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - - type: DeclarativeStream - name: suppliers - primary_key: - - source_id - schema_loader: - type: InlineSchemaLoader - schema: - type: object - $schema: http://json-schema.org/schema# + - $ref: "#/definitions/streams/supplier_invoices" + - $ref: "#/definitions/streams/suppliers" + - $ref: "#/definitions/streams/plan_items" + - $ref: "#/definitions/streams/customers" + - $ref: "#/definitions/streams/customer_invoices" + - $ref: "#/definitions/streams/products" + - $ref: "#/definitions/streams/category_groups" + - $ref: "#/definitions/streams/categories" + +spec: + type: Spec + connection_specification: + type: object + $schema: http://json-schema.org/draft-07/schema# + required: + - start_time + - api_key + properties: + start_time: + type: string + order: 0 + title: Start time + format: date-time + pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$ + api_key: + type: string + order: 1 + title: API Key + airbyte_secret: true + additionalProperties: true + +metadata: + autoImportSchema: + supplier_invoices: true + suppliers: true + plan_items: true + customers: true + customer_invoices: true + products: true + category_groups: true + categories: true + testedStreams: + supplier_invoices: + streamHash: ac288793d80aab3a2b7808ae2893c81c2fcf2e95 + hasResponse: true + responsesAreSuccessful: true + hasRecords: true + primaryKeysArePresent: true + primaryKeysAreUnique: true + suppliers: + streamHash: e25389d16f750520402389d730f40e73f37bc354 + hasResponse: true + responsesAreSuccessful: true + hasRecords: true + primaryKeysArePresent: true + primaryKeysAreUnique: true + plan_items: + streamHash: 4d9113545ce75af62af4e0c9bacca9dbb1c843d0 + hasResponse: true + responsesAreSuccessful: true + hasRecords: true + primaryKeysArePresent: true + primaryKeysAreUnique: true + customers: + streamHash: d633882cc2b7d6859d77c6634bcf0886eff1f348 + hasResponse: true + responsesAreSuccessful: true + hasRecords: true + primaryKeysArePresent: true + primaryKeysAreUnique: true + customer_invoices: + streamHash: eab3042a1ef2e2001b5a65dd87611ef0f4d6a998 + hasResponse: true + responsesAreSuccessful: true + hasRecords: true + primaryKeysArePresent: true + primaryKeysAreUnique: true + products: + streamHash: b0e493b89a9c47ac8a24a04abe64a156debb79ad + hasResponse: true + responsesAreSuccessful: true + hasRecords: true + primaryKeysArePresent: true + primaryKeysAreUnique: true + category_groups: + streamHash: 9066f201b0a8a4c2b9ad2719b70880ad6117e8da + hasResponse: true + responsesAreSuccessful: true + hasRecords: true + primaryKeysArePresent: true + primaryKeysAreUnique: true + categories: + streamHash: b80b7859695cef22db248acd3cf2959f8479fd06 + hasResponse: true + responsesAreSuccessful: true + hasRecords: true + primaryKeysArePresent: true + primaryKeysAreUnique: true + assist: {} + +schemas: + supplier_invoices: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + amount: + type: + - string + - "null" + categories: + type: + - array + - "null" + items: + type: + - object + - "null" + properties: + created_at: + type: + - string + - "null" + label: + type: + - string + - "null" + source_id: + type: + - string + - "null" + updated_at: + type: + - string + - "null" + v2_id: + type: + - number + - "null" + weight: + type: + - string + - "null" + currency: + type: + - string + - "null" + currency_amount: + type: + - string + - "null" + currency_amount_before_tax: + type: + - string + - "null" + currency_tax: + type: + - string + - "null" + date: + type: + - string + - "null" + deadline: + type: + - string + - "null" + discount: + type: + - string + - "null" + discount_type: + type: + - string + - "null" + exchange_rate: + type: + - number + - "null" + file_url: + type: + - string + - "null" + filename: + type: + - string + - "null" + id: + type: string + invoice_number: + type: + - string + - "null" + is_draft: + type: + - boolean + - "null" + label: + type: + - string + - "null" + language: + type: + - string + - "null" + line_items: + type: + - array + - "null" + items: + type: + - object + - "null" + properties: + description: + type: + - string + - "null" + amount: + type: + - string + - "null" + currency_amount: + type: + - string + - "null" + currency_price_before_tax: + type: + - string + - "null" + currency_tax: + type: + - string + - "null" + id: + type: + - number + - "null" + label: + type: + - string + - "null" + quantity: + type: + - string + - "null" + v2_id: + type: + - number + - "null" + vat_rate: + type: + - string + - "null" + matched_transactions: + type: + - array + - "null" + items: + type: + - object + - "null" + properties: + amount: + type: + - string + - "null" + currency: + type: + - string + - "null" + date: + type: + - string + - "null" + fee: + type: + - string + - "null" + group_uuid: + type: + - string + - "null" + label: + type: + - string + - "null" + paid: + type: + - boolean + - "null" + payment_status: + type: + - string + - "null" + payments: + type: + - array + - "null" + items: + type: + - object + - "null" + properties: + created_at: + type: + - string + - "null" + currency_amount: + type: + - string + - "null" + label: + type: + - string + - "null" + pdf_invoice_free_text: + type: + - string + - "null" + pdf_invoice_subject: + type: + - string + - "null" + quote_group_uuid: + type: + - string + - "null" + remaining_amount: + type: + - string + - "null" + source: + type: + - string + - "null" + supplier: + type: + - object + - "null" properties: billing_address: - type: object + type: + - object + - "null" properties: address: - type: string + type: + - string + - "null" city: - type: string + type: + - string + - "null" country_alpha2: - type: string + type: + - string + - "null" postal_code: - type: string + type: + - string + - "null" billing_iban: - type: string + type: + - string + - "null" emails: - type: array + type: + - array + - "null" iban: - type: string + type: + - string + - "null" name: - type: string + type: + - string + - "null" payment_conditions: - type: string + type: + - string + - "null" phone: - type: string - plan_item: - type: object - properties: - description: - type: string - country_alpha2: - type: string - enabled: - type: boolean - label: - type: string - number: - type: string - vat_rate: - type: string + type: + - string + - "null" recipient: - type: string + type: + - string + - "null" reference: - type: string + type: + - string + - "null" reg_no: - type: string + type: + - string + - "null" source_id: - type: string + type: + - string + - "null" updated_at: - type: string + type: + - string + - "null" + v2_id: + type: + - number + - "null" vat_number: - type: string - retriever: - type: SimpleRetriever - requester: - type: HttpRequester - url_base: https://app.pennylane.com/api/external/v1/ - path: suppliers - http_method: GET - request_parameters: - filter: >- - '[{"field": "updated_at", "operator": "gteq", "value": "{{ - stream_interval.start_time }}" }]' - request_headers: {} - authenticator: - type: BearerAuthenticator - api_token: "{{ config['api_key'] }}" - request_body_json: {} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - suppliers - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: PageIncrement - page_size: 100 - start_from_page: 1 - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%fZ" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_time'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - end_datetime: - type: MinMaxDatetime - datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - - type: DeclarativeStream - name: plan_items - primary_key: - - number - schema_loader: - type: InlineSchemaLoader - schema: - type: object - $schema: http://json-schema.org/schema# + type: + - string + - "null" + transactions_reference: + type: + - object + - "null" + properties: {} + updated_at: + type: string + v2_id: + type: + - number + - "null" + required: + - id + - updated_at + suppliers: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + billing_address: + type: + - object + - "null" + properties: + address: + type: + - string + - "null" + city: + type: + - string + - "null" + country_alpha2: + type: + - string + - "null" + postal_code: + type: + - string + - "null" + billing_iban: + type: + - string + - "null" + emails: + type: + - array + - "null" + iban: + type: + - string + - "null" + name: + type: + - string + - "null" + payment_conditions: + type: + - string + - "null" + phone: + type: + - string + - "null" + plan_item: + type: + - object + - "null" properties: description: - type: string + type: + - string + - "null" country_alpha2: - type: string + type: + - string + - "null" enabled: - type: boolean + type: + - boolean + - "null" label: - type: string + type: + - string + - "null" number: - type: string + type: + - string + - "null" + v2_id: + type: + - number + - "null" vat_rate: - type: string - retriever: - type: SimpleRetriever - requester: - type: HttpRequester - url_base: https://app.pennylane.com/api/external/v1/ - path: https://app.pennylane.com/api/external/v1/plan_items - http_method: GET - request_parameters: {} - request_headers: {} - authenticator: - type: BearerAuthenticator - api_token: "{{ config['api_key'] }}" - request_body_json: {} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - plan_items - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: PageIncrement - page_size: 1000 - start_from_page: 1 - - type: DeclarativeStream - name: customers - primary_key: + type: + - string + - "null" + recipient: + type: + - string + - "null" + reference: + type: + - string + - "null" + reg_no: + type: + - string + - "null" + source_id: + type: string + updated_at: + type: string + v2_id: + type: + - number + - "null" + vat_number: + type: + - string + - "null" + required: - source_id - schema_loader: - type: InlineSchemaLoader - schema: - type: object - $schema: http://json-schema.org/schema# + - updated_at + plan_items: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + description: + type: + - string + - "null" + country_alpha2: + type: + - string + - "null" + enabled: + type: + - boolean + - "null" + label: + type: + - string + - "null" + number: + type: + - string + - "null" + v2_id: + type: number + vat_rate: + type: + - string + - "null" + required: + - v2_id + customers: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + billing_address: + type: + - object + - "null" + properties: + address: + type: + - string + - "null" + city: + type: + - string + - "null" + country_alpha2: + type: + - string + - "null" + postal_code: + type: + - string + - "null" + billing_iban: + type: + - string + - "null" + customer_type: + type: + - string + - "null" + delivery_address: + type: + - object + - "null" + properties: + address: + type: + - string + - "null" + city: + type: + - string + - "null" + country_alpha2: + type: + - string + - "null" + postal_code: + type: + - string + - "null" + emails: + type: + - array + - "null" + items: + type: + - string + - "null" + name: + type: + - string + - "null" + notes: + type: + - string + - "null" + payment_conditions: + type: + - string + - "null" + phone: + type: + - string + - "null" + plan_item: + type: + - object + - "null" + properties: + description: + type: + - string + - "null" + country_alpha2: + type: + - string + - "null" + enabled: + type: + - boolean + - "null" + label: + type: + - string + - "null" + number: + type: + - string + - "null" + v2_id: + type: + - number + - "null" + vat_rate: + type: + - string + - "null" + recipient: + type: + - string + - "null" + reference: + type: + - string + - "null" + reg_no: + type: + - string + - "null" + source_id: + type: string + updated_at: + type: string + v2_id: + type: + - number + - "null" + vat_number: + type: + - string + - "null" + required: + - source_id + - updated_at + customer_invoices: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + amount: + type: + - string + - "null" + categories: + type: + - array + - "null" + items: + type: + - object + - "null" + properties: + created_at: + type: + - string + - "null" + label: + type: + - string + - "null" + source_id: + type: + - string + - "null" + updated_at: + type: + - string + - "null" + v2_id: + type: + - number + - "null" + weight: + type: + - string + - "null" + credit_notes: + type: + - array + - "null" + items: + type: + - object + - "null" + properties: + amount: + type: + - string + - "null" + currency: + type: + - string + - "null" + currency_amount: + type: + - string + - "null" + currency_price_before_tax: + type: + - string + - "null" + currency_tax: + type: + - string + - "null" + draft: + type: + - boolean + - "null" + id: + type: + - string + - "null" + invoice_number: + type: + - string + - "null" + tax: + type: + - string + - "null" + v2_id: + type: + - number + - "null" + currency: + type: + - string + - "null" + currency_amount: + type: + - string + - "null" + currency_amount_before_tax: + type: + - string + - "null" + currency_tax: + type: + - string + - "null" + customer: + type: + - object + - "null" properties: billing_address: - type: object + type: + - object + - "null" properties: address: - type: string + type: + - string + - "null" city: - type: string + type: + - string + - "null" country_alpha2: - type: string + type: + - string + - "null" postal_code: - type: string + type: + - string + - "null" + billing_iban: + type: + - string + - "null" customer_type: - type: string + type: + - string + - "null" delivery_address: - type: object + type: + - object + - "null" properties: address: - type: string + type: + - string + - "null" city: - type: string + type: + - string + - "null" country_alpha2: - type: string + type: + - string + - "null" postal_code: - type: string + type: + - string + - "null" emails: - type: array + type: + - array + - "null" + items: + type: + - string + - "null" name: - type: string + type: + - string + - "null" + notes: + type: + - string + - "null" payment_conditions: - type: string + type: + - string + - "null" phone: - type: string - plan_item: - type: object - properties: - description: - type: string - country_alpha2: - type: string - enabled: - type: boolean - label: - type: string - number: - type: string - vat_rate: - type: string + type: + - string + - "null" recipient: - type: string + type: + - string + - "null" reference: - type: string + type: + - string + - "null" reg_no: - type: string + type: + - string + - "null" source_id: - type: string + type: + - string + - "null" updated_at: - type: string - vat_number: - type: string - retriever: - type: SimpleRetriever - requester: - type: HttpRequester - url_base: https://app.pennylane.com/api/external/v1/ - path: customers - http_method: GET - request_parameters: - filter: >- - '[{"field": "updated_at", "operator": "gteq", "value": "{{ - stream_interval.start_time }}" }]' - request_headers: {} - authenticator: - type: BearerAuthenticator - api_token: "{{ config['api_key'] }}" - request_body_json: {} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - customers - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: PageIncrement - page_size: 100 - start_from_page: 1 - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%fZ" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_time'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - end_datetime: - type: MinMaxDatetime - datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - - type: DeclarativeStream - name: customer_invoices - primary_key: - - id - schema_loader: - type: InlineSchemaLoader - schema: - type: object - $schema: http://json-schema.org/schema# - properties: - amount: - type: string - billing_subscription: - type: object - properties: - id: - type: integer - v2_id: - type: integer - categories: - type: array - credit_notes: - type: array - items: - type: object - properties: - amount: - type: string - currency: - type: string - currency_amount: - type: string - currency_price_before_tax: - type: string - currency_tax: - type: string - draft: - type: boolean - id: - type: string - invoice_number: - type: string - tax: - type: string - v2_id: - type: integer - currency: - type: string - currency_amount: - type: string - currency_amount_before_tax: - type: string - currency_tax: - type: string - customer: - type: object - properties: - billing_address: - type: object - properties: - address: - type: string - city: - type: string - country_alpha2: - type: string - postal_code: - type: string - customer_type: - type: string - delivery_address: - type: object - properties: - address: - type: string - city: - type: string - country_alpha2: - type: string - postal_code: - type: string - emails: - type: array - name: - type: string - payment_conditions: - type: string - phone: - type: string - recipient: - type: string - reference: - type: string - reg_no: - type: string - source_id: - type: string - updated_at: - type: string - vat_number: - type: string - date: - type: string - deadline: - type: string - discount: - type: string - discount_type: - type: string - exchange_rate: - type: number - file_url: - type: string - filename: - type: string - id: - type: string - imputation_dates: - type: object - properties: - end_date: - type: string - start_date: - type: string - invoice_number: - type: string - is_draft: - type: boolean - is_estimate: - type: boolean - label: - type: string - language: - type: string - line_items: - type: array - items: - type: object - properties: - description: - type: string - amount: - type: string - currency_amount: - type: string - currency_price_before_tax: - type: string - currency_tax: - type: string - discount: - type: string - discount_type: - type: string - id: - type: number - label: - type: string - product_id: - type: string - quantity: - type: string - raw_currency_unit_price: - type: string - section_rank: - type: number - unit: - type: string - vat_rate: - type: string - line_items_sections_attributes: - type: array - items: - type: object - properties: - description: - type: string - rank: - type: number - title: - type: string - matched_transactions: - type: array - paid: - type: boolean - payments: - type: array - items: - type: object - properties: - created_at: - type: string - currency_amount: - type: string - label: - type: string - pdf_invoice_free_text: - type: string - pdf_invoice_subject: - type: string - public_url: - type: string - quote_group_uuid: - type: string - remaining_amount: - type: string - source: - type: string - special_mention: - type: string - status: - type: string - transactions_reference: - type: object - properties: - banking_provider: - type: string - provider_field_name: - type: string - provider_field_value: - type: string - updated_at: - type: string + type: + - string + - "null" v2_id: - type: integer - retriever: - type: SimpleRetriever - requester: - type: HttpRequester - url_base: https://app.pennylane.com/api/external/v1/ - path: customer_invoices - http_method: GET - request_parameters: - filter: >- - '[{"field": "updated_at", "operator": "gteq", "value": "{{ - stream_interval.start_time }}" }]' - request_headers: {} - authenticator: - type: BearerAuthenticator - api_token: "{{ config['api_key'] }}" - request_body_json: {} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - invoices - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: PageIncrement - page_size: 1000 - start_from_page: 1 - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%fZ" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_time'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - end_datetime: - type: MinMaxDatetime - datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - - type: DeclarativeStream - name: products - primary_key: - - source_id - schema_loader: - type: InlineSchemaLoader - schema: - type: object - $schema: http://json-schema.org/schema# + type: + - number + - "null" + vat_number: + type: + - string + - "null" + date: + type: + - string + - "null" + deadline: + type: + - string + - "null" + discount: + type: + - string + - "null" + discount_type: + type: + - string + - "null" + exchange_rate: + type: + - number + - "null" + file_url: + type: + - string + - "null" + filename: + type: + - string + - "null" + id: + type: string + imputation_dates: + type: + - object + - "null" properties: - description: - type: string - created_at: - type: string - currency: - type: string - label: - type: string - price: - type: number - price_before_tax: - type: number - reference: - type: string - source_id: - type: string - substance: - type: string - unit: - type: string - updated_at: - type: string - vat_rate: - type: string - retriever: - type: SimpleRetriever - requester: - type: HttpRequester - url_base: https://app.pennylane.com/api/external/v1/ - path: products - http_method: GET - request_parameters: - filter: >- - '[{"field": "updated_at", "operator": "gteq", "value": "{{ - stream_interval.start_time }}" }]' - request_headers: {} - authenticator: - type: BearerAuthenticator - api_token: "{{ config['api_key'] }}" - request_body_json: {} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - products - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: PageIncrement - page_size: 100 - start_from_page: 1 - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%fZ" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_time'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - end_datetime: - type: MinMaxDatetime - datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - - type: DeclarativeStream - name: category_groups - primary_key: + end_date: + type: + - string + - "null" + start_date: + type: + - string + - "null" + invoice_number: + type: + - string + - "null" + is_draft: + type: + - boolean + - "null" + label: + type: + - string + - "null" + language: + type: + - string + - "null" + line_items: + type: + - array + - "null" + items: + type: + - object + - "null" + properties: + description: + type: + - string + - "null" + amount: + type: + - string + - "null" + currency_amount: + type: + - string + - "null" + currency_price_before_tax: + type: + - string + - "null" + currency_tax: + type: + - string + - "null" + discount: + type: + - string + - "null" + discount_type: + type: + - string + - "null" + id: + type: + - number + - "null" + label: + type: + - string + - "null" + product_id: + type: + - string + - "null" + product_v2_id: + type: + - number + - "null" + quantity: + type: + - string + - "null" + raw_currency_unit_price: + type: + - string + - "null" + section_rank: + type: + - number + - "null" + unit: + type: + - string + - "null" + v2_id: + type: + - number + - "null" + vat_rate: + type: + - string + - "null" + line_items_sections_attributes: + type: + - array + - "null" + items: + type: + - object + - "null" + properties: + description: + type: + - string + - "null" + rank: + type: + - number + - "null" + title: + type: + - string + - "null" + matched_transactions: + type: + - array + - "null" + items: + type: + - object + - "null" + properties: + amount: + type: + - string + - "null" + currency: + type: + - string + - "null" + date: + type: + - string + - "null" + group_uuid: + type: + - string + - "null" + label: + type: + - string + - "null" + paid: + type: + - boolean + - "null" + payments: + type: + - array + - "null" + pdf_invoice_free_text: + type: + - string + - "null" + pdf_invoice_subject: + type: + - string + - "null" + public_url: + type: + - string + - "null" + quote_group_uuid: + type: + - string + - "null" + remaining_amount: + type: + - string + - "null" + source: + type: + - string + - "null" + special_mention: + type: + - string + - "null" + status: + type: + - string + - "null" + updated_at: + type: string + v2_id: + type: + - number + - "null" + required: - id - schema_loader: - type: InlineSchemaLoader - schema: - type: object - $schema: http://json-schema.org/schema# - properties: - categories: - type: array - items: - type: object - properties: - created_at: - type: string - group_label: - type: string - group_source_id: - type: string - is_editable: - type: boolean - label: - type: string - source_id: - type: string - updated_at: - type: string - id: - type: number - label: - type: string - source_id: - type: string - retriever: - type: SimpleRetriever - requester: - type: HttpRequester - url_base: https://app.pennylane.com/api/external/v1/ - path: category_groups - http_method: GET - request_parameters: - filter: >- - '[{"field": "updated_at", "operator": "gteq", "value": "{{ - stream_interval.start_time }}" }]' - request_headers: {} - authenticator: - type: BearerAuthenticator - api_token: "{{ config['api_key'] }}" - request_body_json: {} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - category_groups - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: PageIncrement - page_size: 1000 - start_from_page: 1 - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%fZ" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_time'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - end_datetime: - type: MinMaxDatetime - datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - - type: DeclarativeStream - name: categories - primary_key: + - updated_at + products: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + description: + type: + - string + - "null" + created_at: + type: + - string + - "null" + currency: + type: + - string + - "null" + label: + type: + - string + - "null" + price: + type: + - number + - "null" + price_before_tax: + type: + - number + - "null" + reference: + type: + - string + - "null" + source_id: + type: string + substance: + type: + - string + - "null" + unit: + type: + - string + - "null" + updated_at: + type: string + v2_id: + type: + - number + - "null" + vat_rate: + type: + - string + - "null" + required: - source_id - schema_loader: - type: InlineSchemaLoader - schema: - type: object - $schema: http://json-schema.org/schema# - properties: - created_at: - type: string - group_label: - type: string - group_source_id: - type: string - id: - type: number - is_editable: - type: boolean - label: - type: string - source_id: - type: string - updated_at: - type: string - retriever: - type: SimpleRetriever - requester: - type: HttpRequester - url_base: https://app.pennylane.com/api/external/v1/ - path: categories - http_method: GET - request_parameters: - filter: >- - '[{"field": "updated_at", "operator": "gteq", "value": "{{ - stream_interval.start_time }}" }]' - request_headers: {} - authenticator: - type: BearerAuthenticator - api_token: "{{ config['api_key'] }}" - request_body_json: {} - record_selector: - type: RecordSelector - extractor: - type: DpathExtractor - field_path: - - categories - paginator: - type: DefaultPaginator - page_token_option: - type: RequestOption - inject_into: request_parameter - field_name: page - page_size_option: - type: RequestOption - field_name: per_page - inject_into: request_parameter - pagination_strategy: - type: PageIncrement - page_size: 100 - start_from_page: 1 - incremental_sync: - type: DatetimeBasedCursor - cursor_field: updated_at - cursor_datetime_formats: - - "%Y-%m-%dT%H:%M:%S.%fZ" - datetime_format: "%Y-%m-%dT%H:%M:%S.%fZ" - start_datetime: - type: MinMaxDatetime - datetime: "{{ config['start_time'] }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - end_datetime: - type: MinMaxDatetime - datetime: "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}" - datetime_format: "%Y-%m-%dT%H:%M:%SZ" - -spec: - type: Spec - connection_specification: + - updated_at + category_groups: type: object - $schema: http://json-schema.org/draft-07/schema# + $schema: http://json-schema.org/schema# + additionalProperties: true + properties: + categories: + type: + - array + - "null" + items: + type: + - object + - "null" + properties: + created_at: + type: + - string + - "null" + group_label: + type: + - string + - "null" + group_source_id: + type: + - string + - "null" + is_editable: + type: + - boolean + - "null" + label: + type: + - string + - "null" + source_id: + type: + - string + - "null" + updated_at: + type: + - string + - "null" + v2_id: + type: + - number + - "null" + id: + type: number + label: + type: + - string + - "null" + source_id: + type: + - string + - "null" + v2_id: + type: + - number + - "null" required: - - start_time - - api_key + - id + categories: + type: object + $schema: http://json-schema.org/schema# + additionalProperties: true properties: - start_time: + created_at: + type: + - string + - "null" + group_label: + type: + - string + - "null" + group_source_id: + type: + - string + - "null" + group_v2_id: + type: + - number + - "null" + id: + type: + - number + - "null" + is_editable: + type: + - boolean + - "null" + label: + type: + - string + - "null" + source_id: type: string - order: 0 - title: Start time - format: date-time - pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$ - api_key: + updated_at: type: string - title: API Key - airbyte_secret: true - order: 1 - additionalProperties: true - -metadata: - autoImportSchema: - supplier_invoices: true - suppliers: true - plan_items: true - customers: true - customer_invoices: true - products: true - category_groups: true - categories: true \ No newline at end of file + v2_id: + type: + - number + - "null" + required: + - source_id + - updated_at diff --git a/airbyte-integrations/connectors/source-pennylane/metadata.yaml b/airbyte-integrations/connectors/source-pennylane/metadata.yaml index d4520691770b2..1836d66f14ecb 100644 --- a/airbyte-integrations/connectors/source-pennylane/metadata.yaml +++ b/airbyte-integrations/connectors/source-pennylane/metadata.yaml @@ -2,7 +2,7 @@ metadataSpecVersion: "1.0" data: allowedHosts: hosts: - - app.pennylane.com + - "app.pennylane.com" registryOverrides: oss: enabled: true @@ -13,11 +13,11 @@ data: enabled: false packageName: airbyte-source-pennylane connectorBuildOptions: - baseImage: docker.io/airbyte/source-declarative-manifest:6.12.3@sha256:9214270d83304213977c08e91fd9c55a98819543dbbf0df25a4356299af4f3ab + baseImage: docker.io/airbyte/source-declarative-manifest:6.27.0@sha256:ffc5f087448ef40fd1ef8fe0fc660b16621be7c1e8ecfccd44002136b06c6efb connectorSubtype: api connectorType: source definitionId: b9e4a306-4e3b-4387-a01d-c00d03d8c28c - dockerImageTag: 0.1.1 + dockerImageTag: 0.2.0 dockerRepository: airbyte/source-pennylane githubIssueLabel: source-pennylane icon: icon.svg @@ -30,7 +30,6 @@ data: tags: - language:manifest-only - cdk:low-code - ab_internal: ql: 100 sl: 100 diff --git a/docs/integrations/sources/pennylane.md b/docs/integrations/sources/pennylane.md index 2d3c39abbbbea..9f9c416bc348d 100644 --- a/docs/integrations/sources/pennylane.md +++ b/docs/integrations/sources/pennylane.md @@ -27,6 +27,7 @@ | Version | Date | Pull Request | Subject | |---------|------|--------------|---------| +| 0.2.0 | 2025-01-29 | [52596](https://github.com/airbytehq/airbyte/pull/52596) | Fixes for category_groups and plan_items | | 0.1.1 | 2024-12-21 | [50294](https://github.com/airbytehq/airbyte/pull/50294) | Update dependencies | | 0.1.0 | 2024-12-10 | [48892](https://github.com/airbytehq/airbyte/pull/48892) | Add missing fields to `customer_invoices` stream | | 0.0.6 | 2024-12-14 | [49659](https://github.com/airbytehq/airbyte/pull/49659) | Update dependencies |