airbyte-cdk 6.42.1__tar.gz → 6.43.0.dev0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/PKG-INFO +1 -1
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +128 -1
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +80 -1
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +189 -5
- airbyte_cdk-6.43.0.dev0/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +14 -0
- airbyte_cdk-6.43.0.dev0/airbyte_cdk/sources/declarative/requesters/query_properties/group_by_key.py +24 -0
- airbyte_cdk-6.43.0.dev0/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +40 -0
- airbyte_cdk-6.43.0.dev0/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +65 -0
- airbyte_cdk-6.43.0.dev0/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +48 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +25 -2
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +100 -31
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/pyproject.toml +1 -1
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/LICENSE.txt +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/LICENSE_SHORT +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/README.md +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/cli/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/config_observation.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/connector.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/connector_builder/README.md +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/connector_builder/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/connector_builder/main.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/connector_builder/models.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/destinations/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/destinations/destination.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/entrypoint.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/exception_handler.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/logger.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/models/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/models/airbyte_protocol.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/models/well_known_types.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/py.typed +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/abstract_source.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/config.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/connector_state_manager.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/types.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/README.md +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/file_based/types.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/http_config.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/http_logger.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/message/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/message/repository.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/source.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/call_rate.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/core.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/http.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/types.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/utils/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/utils/casing.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/utils/record_helper.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/utils/transform.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sources/utils/types.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sql/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sql/_util/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sql/_util/hashing.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sql/constants.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sql/exceptions.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sql/secrets.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sql/shared/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/sql/types.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/catalog_builder.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/mock_http/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/mock_http/matcher.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/mock_http/mocker.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/mock_http/request.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/mock_http/response.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/state_builder.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/utils/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/utils/data.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/utils/http_mocking.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/test/utils/reading.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/__init__.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/analytics_message.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/constants.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/datetime_helpers.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/event_timing.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/mapping_helpers.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/message_utils.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/oneof_option_config.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/print_buffer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/schema_inferrer.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/slice_hasher.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/stream_status_utils.py +0 -0
- {airbyte_cdk-6.42.1 → airbyte_cdk-6.43.0.dev0}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1023,6 +1023,15 @@ definitions:
|
|
1023
1023
|
$parameters:
|
1024
1024
|
type: object
|
1025
1025
|
additionalProperties: true
|
1026
|
+
EmitPartialRecordMergeStrategy:
|
1027
|
+
title: Emit Partial Record
|
1028
|
+
description: Record merge strategy where in the case where multiple requests are needed to retrieve all properties, properties are not consolidated back into a single record and are instead emitted as separate groups of properties. This strategy should only be used when records do not have a unique identifier like a primary key.
|
1029
|
+
required:
|
1030
|
+
- type
|
1031
|
+
properties:
|
1032
|
+
type:
|
1033
|
+
type: string
|
1034
|
+
enum: [EmitPartialRecordMergeStrategy]
|
1026
1035
|
JwtAuthenticator:
|
1027
1036
|
title: JWT Authenticator
|
1028
1037
|
description: Authenticator for requests using JWT authentication flow.
|
@@ -1731,6 +1740,30 @@ definitions:
|
|
1731
1740
|
$parameters:
|
1732
1741
|
type: object
|
1733
1742
|
additionalProperties: true
|
1743
|
+
GroupByKeyMergeStrategy:
|
1744
|
+
title: Group by Key
|
1745
|
+
description: Record merge strategy that combines records according to fields on the record.
|
1746
|
+
required:
|
1747
|
+
- type
|
1748
|
+
- key
|
1749
|
+
properties:
|
1750
|
+
type:
|
1751
|
+
type: string
|
1752
|
+
enum: [GroupByKeyMergeStrategy]
|
1753
|
+
key:
|
1754
|
+
title: Key
|
1755
|
+
description: The name of the field on the record whose value will be used to group properties that were retrieved through multiple API requests.
|
1756
|
+
anyOf:
|
1757
|
+
- type: string
|
1758
|
+
- type: array
|
1759
|
+
items:
|
1760
|
+
type: string
|
1761
|
+
examples:
|
1762
|
+
- "id"
|
1763
|
+
- ["parent_id", "end_date"]
|
1764
|
+
$parameters:
|
1765
|
+
type: object
|
1766
|
+
additionalProperties: true
|
1734
1767
|
SessionTokenAuthenticator:
|
1735
1768
|
type: object
|
1736
1769
|
required:
|
@@ -1950,7 +1983,9 @@ definitions:
|
|
1950
1983
|
- type: string
|
1951
1984
|
- type: object
|
1952
1985
|
additionalProperties:
|
1953
|
-
|
1986
|
+
anyOf:
|
1987
|
+
- type: string
|
1988
|
+
- $ref": "#/definitions/QueryProperties"
|
1954
1989
|
interpolation_context:
|
1955
1990
|
- next_page_token
|
1956
1991
|
- stream_interval
|
@@ -2968,6 +3003,98 @@ definitions:
|
|
2968
3003
|
examples:
|
2969
3004
|
- id
|
2970
3005
|
- ["code", "type"]
|
3006
|
+
PropertiesFromEndpoint:
|
3007
|
+
title: Properties from Endpoint
|
3008
|
+
description: Defines the behavior for fetching the list of properties from an API that will be loaded into the requests to extract records.
|
3009
|
+
type: object
|
3010
|
+
required:
|
3011
|
+
- type
|
3012
|
+
- property_field_path
|
3013
|
+
- retriever
|
3014
|
+
properties:
|
3015
|
+
type:
|
3016
|
+
type: string
|
3017
|
+
enum: [PropertiesFromEndpoint]
|
3018
|
+
property_field_path:
|
3019
|
+
description: Describes the path to the field that should be extracted
|
3020
|
+
type: array
|
3021
|
+
items:
|
3022
|
+
type: string
|
3023
|
+
examples:
|
3024
|
+
- ["name"]
|
3025
|
+
interpolation_context:
|
3026
|
+
- config
|
3027
|
+
- parameters
|
3028
|
+
retriever:
|
3029
|
+
description: Requester component that describes how to fetch the properties to query from a remote API endpoint.
|
3030
|
+
anyOf:
|
3031
|
+
- "$ref": "#/definitions/CustomRetriever"
|
3032
|
+
- "$ref": "#/definitions/SimpleRetriever"
|
3033
|
+
$parameters:
|
3034
|
+
type: object
|
3035
|
+
additionalProperties: true
|
3036
|
+
PropertyChunking:
|
3037
|
+
title: Property Chunking
|
3038
|
+
description: For APIs with restrictions on the amount of properties that can be requester per request, property chunking can be applied to make multiple requests with a subset of the properties.
|
3039
|
+
type: object
|
3040
|
+
required:
|
3041
|
+
- type
|
3042
|
+
- property_limit_type
|
3043
|
+
properties:
|
3044
|
+
type:
|
3045
|
+
type: string
|
3046
|
+
enum: [PropertyChunking]
|
3047
|
+
property_limit_type:
|
3048
|
+
title: Property Limit Type
|
3049
|
+
description: The type used to determine the maximum number of properties per chunk
|
3050
|
+
enum:
|
3051
|
+
- characters
|
3052
|
+
- property_count
|
3053
|
+
property_limit:
|
3054
|
+
title: Property Limit
|
3055
|
+
description: The maximum amount of properties that can be retrieved per request according to the limit type.
|
3056
|
+
type: integer
|
3057
|
+
record_merge_strategy:
|
3058
|
+
title: Record Merge Strategy
|
3059
|
+
description: Dictates how to records that require multiple requests to get all properties should be emitted to the destination
|
3060
|
+
anyOf:
|
3061
|
+
- "$ref": "#/definitions/EmitPartialRecordMergeStrategy"
|
3062
|
+
- "$ref": "#/definitions/GroupByKeyMergeStrategy"
|
3063
|
+
$parameters:
|
3064
|
+
type: object
|
3065
|
+
additionalProperties: true
|
3066
|
+
QueryProperties:
|
3067
|
+
title: Query Properties
|
3068
|
+
description: For APIs that require explicit specification of the properties to query for, this component specifies which property fields and how they are supplied to outbound requests.
|
3069
|
+
type: object
|
3070
|
+
required:
|
3071
|
+
- type
|
3072
|
+
- property_list
|
3073
|
+
properties:
|
3074
|
+
type:
|
3075
|
+
type: string
|
3076
|
+
enum: [QueryProperties]
|
3077
|
+
property_list:
|
3078
|
+
title: Property List
|
3079
|
+
description: The set of properties that will be queried for in the outbound request. This can either be statically defined or dynamic based on an API endpoint
|
3080
|
+
anyOf:
|
3081
|
+
- type: array
|
3082
|
+
items:
|
3083
|
+
type: string
|
3084
|
+
- "$ref": "#/definitions/PropertiesFromEndpoint"
|
3085
|
+
always_include_properties:
|
3086
|
+
title: Always Include Properties
|
3087
|
+
description: The list of properties that should be included in every set of properties when multiple chunks of properties are being requested.
|
3088
|
+
type: array
|
3089
|
+
items:
|
3090
|
+
type: string
|
3091
|
+
property_chunking:
|
3092
|
+
title: Property Chunking
|
3093
|
+
description: Defines how query properties will be grouped into smaller sets for APIs with limitations on the number of properties fetched per API request.
|
3094
|
+
"$ref": "#/definitions/PropertyChunking"
|
3095
|
+
$parameters:
|
3096
|
+
type: object
|
3097
|
+
additionalProperties: true
|
2971
3098
|
RecordFilter:
|
2972
3099
|
title: Record Filter
|
2973
3100
|
description: Filter applied on a list of records.
|
@@ -1,3 +1,5 @@
|
|
1
|
+
# Copyright (c) 2025 Airbyte, Inc., all rights reserved.
|
2
|
+
|
1
3
|
# generated by datamodel-codegen:
|
2
4
|
# filename: declarative_component_schema.yaml
|
3
5
|
|
@@ -343,6 +345,10 @@ class Clamping(BaseModel):
|
|
343
345
|
target_details: Optional[Dict[str, Any]] = None
|
344
346
|
|
345
347
|
|
348
|
+
class EmitPartialRecordMergeStrategy(BaseModel):
|
349
|
+
type: Literal["EmitPartialRecordMergeStrategy"]
|
350
|
+
|
351
|
+
|
346
352
|
class Algorithm(Enum):
|
347
353
|
HS256 = "HS256"
|
348
354
|
HS384 = "HS384"
|
@@ -716,6 +722,17 @@ class ExponentialBackoffStrategy(BaseModel):
|
|
716
722
|
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
717
723
|
|
718
724
|
|
725
|
+
class GroupByKeyMergeStrategy(BaseModel):
|
726
|
+
type: Literal["GroupByKeyMergeStrategy"]
|
727
|
+
key: Union[str, List[str]] = Field(
|
728
|
+
...,
|
729
|
+
description="The name of the field on the record whose value will be used to group properties that were retrieved through multiple API requests.",
|
730
|
+
examples=["id", ["parent_id", "end_date"]],
|
731
|
+
title="Key",
|
732
|
+
)
|
733
|
+
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
734
|
+
|
735
|
+
|
719
736
|
class SessionTokenRequestBearerAuthenticator(BaseModel):
|
720
737
|
type: Literal["Bearer"]
|
721
738
|
|
@@ -1187,6 +1204,33 @@ class PrimaryKey(BaseModel):
|
|
1187
1204
|
)
|
1188
1205
|
|
1189
1206
|
|
1207
|
+
class PropertyLimitType(Enum):
|
1208
|
+
characters = "characters"
|
1209
|
+
property_count = "property_count"
|
1210
|
+
|
1211
|
+
|
1212
|
+
class PropertyChunking(BaseModel):
|
1213
|
+
type: Literal["PropertyChunking"]
|
1214
|
+
property_limit_type: PropertyLimitType = Field(
|
1215
|
+
...,
|
1216
|
+
description="The type used to determine the maximum number of properties per chunk",
|
1217
|
+
title="Property Limit Type",
|
1218
|
+
)
|
1219
|
+
property_limit: Optional[int] = Field(
|
1220
|
+
None,
|
1221
|
+
description="The maximum amount of properties that can be retrieved per request according to the limit type.",
|
1222
|
+
title="Property Limit",
|
1223
|
+
)
|
1224
|
+
record_merge_strategy: Optional[
|
1225
|
+
Union[EmitPartialRecordMergeStrategy, GroupByKeyMergeStrategy]
|
1226
|
+
] = Field(
|
1227
|
+
None,
|
1228
|
+
description="Dictates how to records that require multiple requests to get all properties should be emitted to the destination",
|
1229
|
+
title="Record Merge Strategy",
|
1230
|
+
)
|
1231
|
+
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
1232
|
+
|
1233
|
+
|
1190
1234
|
class RecordFilter(BaseModel):
|
1191
1235
|
type: Literal["RecordFilter"]
|
1192
1236
|
condition: Optional[str] = Field(
|
@@ -2174,7 +2218,7 @@ class HttpRequester(BaseModel):
|
|
2174
2218
|
examples=[{"Output-Format": "JSON"}, {"Version": "{{ config['version'] }}"}],
|
2175
2219
|
title="Request Headers",
|
2176
2220
|
)
|
2177
|
-
request_parameters: Optional[Union[str, Dict[str, str]]] = Field(
|
2221
|
+
request_parameters: Optional[Union[str, Dict[str, Union[str, Any]]]] = Field(
|
2178
2222
|
None,
|
2179
2223
|
description="Specifies the query parameters that should be set on an outgoing HTTP request given the inputs.",
|
2180
2224
|
examples=[
|
@@ -2264,6 +2308,40 @@ class ParentStreamConfig(BaseModel):
|
|
2264
2308
|
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
2265
2309
|
|
2266
2310
|
|
2311
|
+
class PropertiesFromEndpoint(BaseModel):
|
2312
|
+
type: Literal["PropertiesFromEndpoint"]
|
2313
|
+
property_field_path: List[str] = Field(
|
2314
|
+
...,
|
2315
|
+
description="Describes the path to the field that should be extracted",
|
2316
|
+
examples=[["name"]],
|
2317
|
+
)
|
2318
|
+
retriever: Union[CustomRetriever, SimpleRetriever] = Field(
|
2319
|
+
...,
|
2320
|
+
description="Requester component that describes how to fetch the properties to query from a remote API endpoint.",
|
2321
|
+
)
|
2322
|
+
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
2323
|
+
|
2324
|
+
|
2325
|
+
class QueryProperties(BaseModel):
|
2326
|
+
type: Literal["QueryProperties"]
|
2327
|
+
property_list: Union[List[str], PropertiesFromEndpoint] = Field(
|
2328
|
+
...,
|
2329
|
+
description="The set of properties that will be queried for in the outbound request. This can either be statically defined or dynamic based on an API endpoint",
|
2330
|
+
title="Property List",
|
2331
|
+
)
|
2332
|
+
always_include_properties: Optional[List[str]] = Field(
|
2333
|
+
None,
|
2334
|
+
description="The list of properties that should be included in every set of properties when multiple chunks of properties are being requested.",
|
2335
|
+
title="Always Include Properties",
|
2336
|
+
)
|
2337
|
+
property_chunking: Optional[PropertyChunking] = Field(
|
2338
|
+
None,
|
2339
|
+
description="Defines how query properties will be grouped into smaller sets for APIs with limitations on the number of properties fetched per API request.",
|
2340
|
+
title="Property Chunking",
|
2341
|
+
)
|
2342
|
+
parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
|
2343
|
+
|
2344
|
+
|
2267
2345
|
class StateDelegatingStream(BaseModel):
|
2268
2346
|
type: Literal["StateDelegatingStream"]
|
2269
2347
|
name: str = Field(..., description="The stream name.", example=["Users"], title="Name")
|
@@ -2512,5 +2590,6 @@ DeclarativeStream.update_forward_refs()
|
|
2512
2590
|
SessionTokenAuthenticator.update_forward_refs()
|
2513
2591
|
DynamicSchemaLoader.update_forward_refs()
|
2514
2592
|
ParentStreamConfig.update_forward_refs()
|
2593
|
+
PropertiesFromEndpoint.update_forward_refs()
|
2515
2594
|
SimpleRetriever.update_forward_refs()
|
2516
2595
|
AsyncRetriever.update_forward_refs()
|
@@ -1,5 +1,5 @@
|
|
1
1
|
#
|
2
|
-
# Copyright (c)
|
2
|
+
# Copyright (c) 2025 Airbyte, Inc., all rights reserved.
|
3
3
|
#
|
4
4
|
|
5
5
|
from __future__ import annotations
|
@@ -227,6 +227,9 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
|
|
227
227
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
228
228
|
FlattenFields as FlattenFieldsModel,
|
229
229
|
)
|
230
|
+
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
231
|
+
GroupByKeyMergeStrategy as GroupByKeyMergeStrategyModel,
|
232
|
+
)
|
230
233
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
231
234
|
GroupingPartitionRouter as GroupingPartitionRouterModel,
|
232
235
|
)
|
@@ -317,6 +320,18 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
|
|
317
320
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
318
321
|
ParentStreamConfig as ParentStreamConfigModel,
|
319
322
|
)
|
323
|
+
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
324
|
+
PropertiesFromEndpoint as PropertiesFromEndpointModel,
|
325
|
+
)
|
326
|
+
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
327
|
+
PropertyChunking as PropertyChunkingModel,
|
328
|
+
)
|
329
|
+
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
330
|
+
PropertyLimitType as PropertyLimitTypeModel,
|
331
|
+
)
|
332
|
+
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
333
|
+
QueryProperties as QueryPropertiesModel,
|
334
|
+
)
|
320
335
|
from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
|
321
336
|
Rate as RateModel,
|
322
337
|
)
|
@@ -425,6 +440,15 @@ from airbyte_cdk.sources.declarative.requesters.paginators.strategies import (
|
|
425
440
|
PageIncrement,
|
426
441
|
StopConditionPaginationStrategyDecorator,
|
427
442
|
)
|
443
|
+
from airbyte_cdk.sources.declarative.requesters.query_properties import (
|
444
|
+
GroupByKey,
|
445
|
+
PropertiesFromEndpoint,
|
446
|
+
PropertyChunking,
|
447
|
+
QueryProperties,
|
448
|
+
)
|
449
|
+
from airbyte_cdk.sources.declarative.requesters.query_properties.property_chunking import (
|
450
|
+
PropertyLimitType,
|
451
|
+
)
|
428
452
|
from airbyte_cdk.sources.declarative.requesters.request_option import RequestOptionType
|
429
453
|
from airbyte_cdk.sources.declarative.requesters.request_options import (
|
430
454
|
DatetimeBasedRequestOptionsProvider,
|
@@ -588,6 +612,7 @@ class ModelToComponentFactory:
|
|
588
612
|
ResponseToFileExtractorModel: self.create_response_to_file_extractor,
|
589
613
|
ExponentialBackoffStrategyModel: self.create_exponential_backoff_strategy,
|
590
614
|
SessionTokenAuthenticatorModel: self.create_session_token_authenticator,
|
615
|
+
GroupByKeyMergeStrategyModel: self.create_group_by_key,
|
591
616
|
HttpRequesterModel: self.create_http_requester,
|
592
617
|
HttpResponseFilterModel: self.create_http_response_filter,
|
593
618
|
InlineSchemaLoaderModel: self.create_inline_schema_loader,
|
@@ -617,6 +642,9 @@ class ModelToComponentFactory:
|
|
617
642
|
OffsetIncrementModel: self.create_offset_increment,
|
618
643
|
PageIncrementModel: self.create_page_increment,
|
619
644
|
ParentStreamConfigModel: self.create_parent_stream_config,
|
645
|
+
PropertiesFromEndpointModel: self.create_properties_from_endpoint,
|
646
|
+
PropertyChunkingModel: self.create_property_chunking,
|
647
|
+
QueryPropertiesModel: self.create_query_properties,
|
620
648
|
RecordFilterModel: self.create_record_filter,
|
621
649
|
RecordSelectorModel: self.create_record_selector,
|
622
650
|
RemoveFieldsModel: self.create_remove_fields,
|
@@ -2047,8 +2075,8 @@ class ModelToComponentFactory:
|
|
2047
2075
|
parameters=model.parameters or {},
|
2048
2076
|
)
|
2049
2077
|
|
2078
|
+
@staticmethod
|
2050
2079
|
def create_response_to_file_extractor(
|
2051
|
-
self,
|
2052
2080
|
model: ResponseToFileExtractorModel,
|
2053
2081
|
**kwargs: Any,
|
2054
2082
|
) -> ResponseToFileExtractor:
|
@@ -2062,11 +2090,16 @@ class ModelToComponentFactory:
|
|
2062
2090
|
factor=model.factor or 5, parameters=model.parameters or {}, config=config
|
2063
2091
|
)
|
2064
2092
|
|
2093
|
+
@staticmethod
|
2094
|
+
def create_group_by_key(model: GroupByKeyMergeStrategyModel, config: Config) -> GroupByKey:
|
2095
|
+
return GroupByKey(model.key, config=config, parameters=model.parameters or {})
|
2096
|
+
|
2065
2097
|
def create_http_requester(
|
2066
2098
|
self,
|
2067
2099
|
model: HttpRequesterModel,
|
2068
2100
|
config: Config,
|
2069
2101
|
decoder: Decoder = JsonDecoder(parameters={}),
|
2102
|
+
query_properties_key: Optional[str] = None,
|
2070
2103
|
*,
|
2071
2104
|
name: str,
|
2072
2105
|
) -> HttpRequester:
|
@@ -2099,6 +2132,7 @@ class ModelToComponentFactory:
|
|
2099
2132
|
request_body_json=model.request_body_json,
|
2100
2133
|
request_headers=model.request_headers,
|
2101
2134
|
request_parameters=model.request_parameters,
|
2135
|
+
query_properties_key=query_properties_key,
|
2102
2136
|
config=config,
|
2103
2137
|
parameters=model.parameters or {},
|
2104
2138
|
)
|
@@ -2566,6 +2600,79 @@ class ModelToComponentFactory:
|
|
2566
2600
|
lazy_read_pointer=model_lazy_read_pointer,
|
2567
2601
|
)
|
2568
2602
|
|
2603
|
+
def create_properties_from_endpoint(
|
2604
|
+
self, model: PropertiesFromEndpointModel, config: Config, **kwargs: Any
|
2605
|
+
) -> PropertiesFromEndpoint:
|
2606
|
+
name = "property_retriever"
|
2607
|
+
retriever = self._create_component_from_model(
|
2608
|
+
model=model.retriever,
|
2609
|
+
config=config,
|
2610
|
+
name=name,
|
2611
|
+
primary_key=None,
|
2612
|
+
stream_slicer=None,
|
2613
|
+
transformations=[],
|
2614
|
+
)
|
2615
|
+
return PropertiesFromEndpoint(
|
2616
|
+
property_field_path=model.property_field_path,
|
2617
|
+
retriever=retriever,
|
2618
|
+
config=config,
|
2619
|
+
parameters=model.parameters or {},
|
2620
|
+
)
|
2621
|
+
|
2622
|
+
def create_property_chunking(
|
2623
|
+
self, model: PropertyChunkingModel, config: Config, **kwargs: Any
|
2624
|
+
) -> PropertyChunking:
|
2625
|
+
record_merge_strategy = (
|
2626
|
+
self._create_component_from_model(
|
2627
|
+
model=model.record_merge_strategy, config=config, **kwargs
|
2628
|
+
)
|
2629
|
+
if model.record_merge_strategy
|
2630
|
+
else None
|
2631
|
+
)
|
2632
|
+
|
2633
|
+
property_limit_type: PropertyLimitType
|
2634
|
+
match model.property_limit_type:
|
2635
|
+
case PropertyLimitTypeModel.property_count:
|
2636
|
+
property_limit_type = PropertyLimitType.property_count
|
2637
|
+
case PropertyLimitTypeModel.characters:
|
2638
|
+
property_limit_type = PropertyLimitType.characters
|
2639
|
+
case _:
|
2640
|
+
raise ValueError(f"Invalid PropertyLimitType {property_limit_type}")
|
2641
|
+
|
2642
|
+
return PropertyChunking(
|
2643
|
+
property_limit_type=property_limit_type,
|
2644
|
+
property_limit=model.property_limit,
|
2645
|
+
record_merge_strategy=record_merge_strategy,
|
2646
|
+
config=config,
|
2647
|
+
parameters=model.parameters or {},
|
2648
|
+
)
|
2649
|
+
|
2650
|
+
def create_query_properties(
|
2651
|
+
self, model: QueryPropertiesModel, config: Config, **kwargs: Any
|
2652
|
+
) -> QueryProperties:
|
2653
|
+
if isinstance(model.property_list, list):
|
2654
|
+
property_list = model.property_list
|
2655
|
+
else:
|
2656
|
+
property_list = self._create_component_from_model(
|
2657
|
+
model=model.property_list, config=config, **kwargs
|
2658
|
+
)
|
2659
|
+
|
2660
|
+
property_chunking = (
|
2661
|
+
self._create_component_from_model(
|
2662
|
+
model=model.property_chunking, config=config, **kwargs
|
2663
|
+
)
|
2664
|
+
if model.property_chunking
|
2665
|
+
else None
|
2666
|
+
)
|
2667
|
+
|
2668
|
+
return QueryProperties(
|
2669
|
+
property_list=property_list,
|
2670
|
+
always_include_properties=model.always_include_properties,
|
2671
|
+
property_chunking=property_chunking,
|
2672
|
+
config=config,
|
2673
|
+
parameters=model.parameters or {},
|
2674
|
+
)
|
2675
|
+
|
2569
2676
|
@staticmethod
|
2570
2677
|
def create_record_filter(
|
2571
2678
|
model: RecordFilterModel, config: Config, **kwargs: Any
|
@@ -2718,9 +2825,6 @@ class ModelToComponentFactory:
|
|
2718
2825
|
if model.decoder
|
2719
2826
|
else JsonDecoder(parameters={})
|
2720
2827
|
)
|
2721
|
-
requester = self._create_component_from_model(
|
2722
|
-
model=model.requester, decoder=decoder, config=config, name=name
|
2723
|
-
)
|
2724
2828
|
record_selector = self._create_component_from_model(
|
2725
2829
|
model=model.record_selector,
|
2726
2830
|
name=name,
|
@@ -2729,6 +2833,53 @@ class ModelToComponentFactory:
|
|
2729
2833
|
transformations=transformations,
|
2730
2834
|
client_side_incremental_sync=client_side_incremental_sync,
|
2731
2835
|
)
|
2836
|
+
|
2837
|
+
query_properties: Optional[QueryProperties] = None
|
2838
|
+
query_properties_key: Optional[str] = None
|
2839
|
+
if (
|
2840
|
+
hasattr(model.requester, "request_parameters")
|
2841
|
+
and model.requester.request_parameters
|
2842
|
+
and isinstance(model.requester.request_parameters, Mapping)
|
2843
|
+
):
|
2844
|
+
query_properties_definitions = []
|
2845
|
+
for key, request_parameter in model.requester.request_parameters.items():
|
2846
|
+
if (
|
2847
|
+
isinstance(request_parameter, Mapping)
|
2848
|
+
and request_parameter.get("type") == "QueryProperties"
|
2849
|
+
):
|
2850
|
+
query_properties_key = key
|
2851
|
+
query_properties_definitions.append(request_parameter)
|
2852
|
+
elif not isinstance(request_parameter, str):
|
2853
|
+
raise ValueError(
|
2854
|
+
f"Each element of request_parameters should be of type str or QueryProperties, but received {request_parameter.get('type')}"
|
2855
|
+
)
|
2856
|
+
|
2857
|
+
if len(query_properties_definitions) > 1:
|
2858
|
+
raise ValueError(
|
2859
|
+
f"request_parameters should only define one QueryProperties field, but found {len(query_properties_definitions)}"
|
2860
|
+
)
|
2861
|
+
|
2862
|
+
if len(query_properties_definitions) == 1:
|
2863
|
+
query_properties = self.create_component(
|
2864
|
+
model_type=QueryPropertiesModel,
|
2865
|
+
component_definition=query_properties_definitions[0],
|
2866
|
+
config=config,
|
2867
|
+
)
|
2868
|
+
|
2869
|
+
# Removes QueryProperties components from the interpolated mappings because it will be resolved in
|
2870
|
+
# the provider from the slice directly instead of through jinja interpolation
|
2871
|
+
if isinstance(model.requester.request_parameters, Mapping):
|
2872
|
+
model.requester.request_parameters = self._remove_query_properties(
|
2873
|
+
model.requester.request_parameters
|
2874
|
+
)
|
2875
|
+
|
2876
|
+
requester = self._create_component_from_model(
|
2877
|
+
model=model.requester,
|
2878
|
+
decoder=decoder,
|
2879
|
+
query_properties_key=query_properties_key,
|
2880
|
+
config=config,
|
2881
|
+
name=name,
|
2882
|
+
)
|
2732
2883
|
url_base = (
|
2733
2884
|
model.requester.url_base
|
2734
2885
|
if hasattr(model.requester, "url_base")
|
@@ -2834,9 +2985,42 @@ class ModelToComponentFactory:
|
|
2834
2985
|
cursor=cursor,
|
2835
2986
|
config=config,
|
2836
2987
|
ignore_stream_slicer_parameters_on_paginated_requests=ignore_stream_slicer_parameters_on_paginated_requests,
|
2988
|
+
additional_query_properties=query_properties,
|
2837
2989
|
parameters=model.parameters or {},
|
2838
2990
|
)
|
2839
2991
|
|
2992
|
+
@staticmethod
|
2993
|
+
def _remove_query_properties(
|
2994
|
+
request_parameters: Mapping[str, Union[Any, str]],
|
2995
|
+
) -> Mapping[str, Union[Any, str]]:
|
2996
|
+
return {
|
2997
|
+
parameter_field: request_parameter
|
2998
|
+
for parameter_field, request_parameter in request_parameters.items()
|
2999
|
+
if not isinstance(request_parameter, Mapping)
|
3000
|
+
or not request_parameter.get("type") == "QueryProperties"
|
3001
|
+
}
|
3002
|
+
|
3003
|
+
@staticmethod
|
3004
|
+
def _translate_query_properties_to_interpolated_strings(
|
3005
|
+
request_parameters: Mapping[str, Union[Any, str]],
|
3006
|
+
) -> Mapping[str, Union[Any, str]]:
|
3007
|
+
# todo blai: remove this since unused
|
3008
|
+
new_request_parameters = dict()
|
3009
|
+
for key, request_parameter in request_parameters.items():
|
3010
|
+
if (
|
3011
|
+
isinstance(request_parameter, Mapping)
|
3012
|
+
and request_parameter.get("type") == "QueryProperties"
|
3013
|
+
):
|
3014
|
+
# This may seem like this could be combined into the above conditional, but this is separated
|
3015
|
+
# so that we do not add the properties into the new request_parameters mapping
|
3016
|
+
if request_parameter.get("inject_into"):
|
3017
|
+
new_request_parameters[key] = (
|
3018
|
+
"{{ stream_partition.extra_fields['query_properties'] }}"
|
3019
|
+
)
|
3020
|
+
else:
|
3021
|
+
new_request_parameters[key] = request_parameter
|
3022
|
+
return new_request_parameters
|
3023
|
+
|
2840
3024
|
def create_state_delegating_stream(
|
2841
3025
|
self,
|
2842
3026
|
model: StateDelegatingStreamModel,
|
airbyte_cdk-6.43.0.dev0/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
# Copyright (c) 2025 Airbyte, Inc., all rights reserved.
|
2
|
+
|
3
|
+
from airbyte_cdk.sources.declarative.requesters.query_properties.group_by_key import GroupByKey
|
4
|
+
from airbyte_cdk.sources.declarative.requesters.query_properties.properties_from_endpoint import (
|
5
|
+
PropertiesFromEndpoint,
|
6
|
+
)
|
7
|
+
from airbyte_cdk.sources.declarative.requesters.query_properties.property_chunking import (
|
8
|
+
PropertyChunking,
|
9
|
+
)
|
10
|
+
from airbyte_cdk.sources.declarative.requesters.query_properties.query_properties import (
|
11
|
+
QueryProperties,
|
12
|
+
)
|
13
|
+
|
14
|
+
__all__ = ["GroupByKey", "PropertiesFromEndpoint", "PropertyChunking", "QueryProperties"]
|
airbyte_cdk-6.43.0.dev0/airbyte_cdk/sources/declarative/requesters/query_properties/group_by_key.py
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# Copyright (c) 2025 Airbyte, Inc., all rights reserved.
|
2
|
+
|
3
|
+
from dataclasses import InitVar, dataclass
|
4
|
+
from typing import Any, List, Mapping, Union
|
5
|
+
|
6
|
+
from airbyte_cdk.sources.types import Config, Record
|
7
|
+
|
8
|
+
|
9
|
+
@dataclass
|
10
|
+
class GroupByKey:
|
11
|
+
"""
|
12
|
+
tbd
|
13
|
+
"""
|
14
|
+
|
15
|
+
key: Union[str, List[str]]
|
16
|
+
parameters: InitVar[Mapping[str, Any]]
|
17
|
+
config: Config
|
18
|
+
|
19
|
+
def __post_init__(self, parameters: Mapping[str, Any]) -> None:
|
20
|
+
self._keys = [self.key] if isinstance(self.key, str) else self.key
|
21
|
+
|
22
|
+
def get_group_key(self, record: Record) -> str:
|
23
|
+
resolved_keys = [str(record.data.get(key)) for key in self._keys]
|
24
|
+
return ",".join(resolved_keys)
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# Copyright (c) 2025 Airbyte, Inc., all rights reserved.
|
2
|
+
|
3
|
+
from dataclasses import InitVar, dataclass
|
4
|
+
from typing import Any, Iterable, List, Mapping, Optional, Union
|
5
|
+
|
6
|
+
import dpath
|
7
|
+
|
8
|
+
from airbyte_cdk.sources.declarative.interpolation import InterpolatedString
|
9
|
+
from airbyte_cdk.sources.declarative.retrievers import Retriever
|
10
|
+
from airbyte_cdk.sources.types import Config, StreamSlice
|
11
|
+
|
12
|
+
|
13
|
+
@dataclass
|
14
|
+
class PropertiesFromEndpoint:
|
15
|
+
"""
|
16
|
+
tbd
|
17
|
+
"""
|
18
|
+
|
19
|
+
property_field_path: List[str]
|
20
|
+
retriever: Retriever
|
21
|
+
config: Config
|
22
|
+
parameters: InitVar[Mapping[str, Any]]
|
23
|
+
|
24
|
+
def __post_init__(self, parameters: Mapping[str, Any]) -> None:
|
25
|
+
self._property_field_path = [
|
26
|
+
InterpolatedString(string=property_field, parameters=parameters)
|
27
|
+
for property_field in self.property_field_path
|
28
|
+
]
|
29
|
+
|
30
|
+
def get_properties_from_endpoint(self, stream_slice: Optional[StreamSlice]) -> Iterable[str]:
|
31
|
+
response_properties = self.retriever.read_records(
|
32
|
+
records_schema={}, stream_slice=stream_slice
|
33
|
+
)
|
34
|
+
for property_obj in response_properties:
|
35
|
+
path = [
|
36
|
+
node.eval(self.config) if not isinstance(node, str) else node
|
37
|
+
for node in self._property_field_path
|
38
|
+
]
|
39
|
+
|
40
|
+
yield dpath.get(property_obj, path) # type: ignore # extracted will be a MutableMapping, given input data structure
|