airbyte-cdk 6.43.1__tar.gz → 6.45.0__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.
Files changed (374) hide show
  1. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/checks/__init__.py +5 -2
  3. airbyte_cdk-6.45.0/airbyte_cdk/sources/declarative/checks/check_stream.py +158 -0
  4. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +139 -2
  5. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +94 -8
  6. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +219 -11
  7. airbyte_cdk-6.45.0/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +13 -0
  8. airbyte_cdk-6.45.0/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +40 -0
  9. airbyte_cdk-6.45.0/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +69 -0
  10. airbyte_cdk-6.45.0/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +58 -0
  11. airbyte_cdk-6.45.0/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +10 -0
  12. airbyte_cdk-6.45.0/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +33 -0
  13. airbyte_cdk-6.45.0/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +19 -0
  14. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +25 -2
  15. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +101 -30
  16. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/pyproject.toml +1 -1
  17. airbyte_cdk-6.43.1/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -56
  18. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/LICENSE.txt +0 -0
  19. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/LICENSE_SHORT +0 -0
  20. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/README.md +0 -0
  21. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/__init__.py +0 -0
  22. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/cli/__init__.py +0 -0
  23. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  24. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  25. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  26. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/config_observation.py +0 -0
  27. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/connector.py +0 -0
  28. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/connector_builder/README.md +0 -0
  29. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/connector_builder/__init__.py +0 -0
  30. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  31. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/connector_builder/main.py +0 -0
  32. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/connector_builder/models.py +0 -0
  33. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  34. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  35. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  36. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
  37. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  38. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/destinations/__init__.py +0 -0
  39. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/destinations/destination.py +0 -0
  40. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  41. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  42. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  43. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  44. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  45. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  46. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  47. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  48. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  49. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/entrypoint.py +0 -0
  50. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/exception_handler.py +0 -0
  51. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/logger.py +0 -0
  52. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/models/__init__.py +0 -0
  53. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  54. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  55. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  56. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/models/well_known_types.py +0 -0
  57. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/py.typed +0 -0
  58. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/__init__.py +0 -0
  59. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/abstract_source.py +0 -0
  60. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  61. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  62. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  63. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  64. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  65. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  66. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  67. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/config.py +0 -0
  68. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  69. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  70. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  71. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  72. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  73. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  74. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  75. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  76. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  77. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  78. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  79. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  80. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  81. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  82. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  83. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  84. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  85. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  86. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  87. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  88. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  89. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  90. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  91. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  92. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  93. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  94. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  95. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  96. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  97. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  98. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  99. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  100. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  101. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  102. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  103. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  104. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  105. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  106. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  107. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  108. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  109. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  110. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  111. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  112. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  113. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  114. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  115. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  116. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  117. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  118. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  119. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  120. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  121. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  122. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  123. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  124. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  125. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  126. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  127. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  128. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  129. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  130. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  131. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  132. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  133. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  134. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  135. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  136. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  137. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  138. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  139. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  140. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  141. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  142. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
  143. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  144. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  145. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  146. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  147. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  148. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  149. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  150. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  151. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  152. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  153. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  154. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  155. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  156. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  157. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  158. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  159. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  160. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  161. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  162. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  163. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  164. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  165. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  166. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  167. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  168. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  169. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  170. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  171. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  172. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  173. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  174. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  175. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  176. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  177. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  178. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  179. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  180. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  181. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  182. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  183. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  184. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  185. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  186. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  187. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  188. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  189. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  190. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  191. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  192. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  193. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  194. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  195. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  196. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  197. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  198. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  199. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  200. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  201. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  202. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  203. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  204. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  205. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  206. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  207. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  208. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  209. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  210. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/types.py +0 -0
  211. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  212. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/README.md +0 -0
  213. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  214. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  215. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  216. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  217. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  218. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  219. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  220. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  221. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  222. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  223. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  224. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  225. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  226. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  227. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  228. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  229. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  230. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  231. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  232. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
  233. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  234. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  235. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  236. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  237. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  238. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  239. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  240. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  241. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  242. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  243. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  244. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  245. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  246. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  247. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  248. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  249. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  250. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  251. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  252. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  253. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  254. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  255. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  256. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  257. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  258. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  259. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  260. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
  261. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
  262. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/file_based/types.py +0 -0
  263. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/http_config.py +0 -0
  264. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/http_logger.py +0 -0
  265. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/message/__init__.py +0 -0
  266. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/message/repository.py +0 -0
  267. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/source.py +0 -0
  268. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  269. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/__init__.py +0 -0
  270. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  271. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  272. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  273. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  274. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  275. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  276. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  277. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  278. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  279. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  280. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  281. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  282. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  283. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  284. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  285. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  286. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  287. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  288. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  289. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  290. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  291. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  292. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  293. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  294. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  295. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  296. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  297. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  298. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  299. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  300. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  301. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/core.py +0 -0
  302. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  303. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  304. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  305. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  306. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  307. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  308. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  309. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  310. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  311. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  312. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  313. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  314. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/http.py +0 -0
  315. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  316. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  317. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  318. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  319. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  320. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  321. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  322. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  323. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  324. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/types.py +0 -0
  325. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/utils/__init__.py +0 -0
  326. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/utils/casing.py +0 -0
  327. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  328. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  329. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  330. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/utils/transform.py +0 -0
  331. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sources/utils/types.py +0 -0
  332. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sql/__init__.py +0 -0
  333. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sql/_util/__init__.py +0 -0
  334. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sql/_util/hashing.py +0 -0
  335. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  336. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sql/constants.py +0 -0
  337. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sql/exceptions.py +0 -0
  338. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sql/secrets.py +0 -0
  339. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sql/shared/__init__.py +0 -0
  340. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  341. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  342. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/sql/types.py +0 -0
  343. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/__init__.py +0 -0
  344. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/catalog_builder.py +0 -0
  345. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  346. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  347. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  348. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  349. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/mock_http/request.py +0 -0
  350. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/mock_http/response.py +0 -0
  351. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  352. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/state_builder.py +0 -0
  353. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/utils/__init__.py +0 -0
  354. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/utils/data.py +0 -0
  355. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  356. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  357. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/test/utils/reading.py +0 -0
  358. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/__init__.py +0 -0
  359. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  360. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/analytics_message.py +0 -0
  361. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/constants.py +0 -0
  362. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  363. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  364. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/event_timing.py +0 -0
  365. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  366. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  367. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/message_utils.py +0 -0
  368. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  369. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/print_buffer.py +0 -0
  370. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  371. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/slice_hasher.py +0 -0
  372. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  373. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  374. {airbyte_cdk-6.43.1 → airbyte_cdk-6.45.0}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 6.43.1
3
+ Version: 6.45.0
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -7,7 +7,10 @@ from typing import Mapping
7
7
  from pydantic.v1 import BaseModel
8
8
 
9
9
  from airbyte_cdk.sources.declarative.checks.check_dynamic_stream import CheckDynamicStream
10
- from airbyte_cdk.sources.declarative.checks.check_stream import CheckStream
10
+ from airbyte_cdk.sources.declarative.checks.check_stream import (
11
+ CheckStream,
12
+ DynamicStreamCheckConfig,
13
+ )
11
14
  from airbyte_cdk.sources.declarative.checks.connection_checker import ConnectionChecker
12
15
  from airbyte_cdk.sources.declarative.models import (
13
16
  CheckDynamicStream as CheckDynamicStreamModel,
@@ -21,4 +24,4 @@ COMPONENTS_CHECKER_TYPE_MAPPING: Mapping[str, type[BaseModel]] = {
21
24
  "CheckDynamicStream": CheckDynamicStreamModel,
22
25
  }
23
26
 
24
- __all__ = ["CheckStream", "CheckDynamicStream", "ConnectionChecker"]
27
+ __all__ = ["CheckStream", "CheckDynamicStream", "ConnectionChecker", "DynamicStreamCheckConfig"]
@@ -0,0 +1,158 @@
1
+ #
2
+ # Copyright (c) 2023 Airbyte, Inc., all rights reserved.
3
+ #
4
+
5
+ import logging
6
+ import traceback
7
+ from dataclasses import InitVar, dataclass
8
+ from typing import Any, Dict, List, Mapping, Optional, Tuple
9
+
10
+ from airbyte_cdk import AbstractSource
11
+ from airbyte_cdk.sources.declarative.checks.connection_checker import ConnectionChecker
12
+ from airbyte_cdk.sources.streams.http.availability_strategy import HttpAvailabilityStrategy
13
+
14
+
15
+ @dataclass(frozen=True)
16
+ class DynamicStreamCheckConfig:
17
+ """Defines the configuration for dynamic stream during connection checking. This class specifies
18
+ what dynamic streams in the stream template should be updated with value, supporting dynamic interpolation
19
+ and type enforcement."""
20
+
21
+ dynamic_stream_name: str
22
+ stream_count: int = 0
23
+
24
+
25
+ @dataclass
26
+ class CheckStream(ConnectionChecker):
27
+ """
28
+ Checks the connections by checking availability of one or many streams selected by the developer
29
+
30
+ Attributes:
31
+ stream_name (List[str]): names of streams to check
32
+ """
33
+
34
+ stream_names: List[str]
35
+ parameters: InitVar[Mapping[str, Any]]
36
+ dynamic_streams_check_configs: Optional[List[DynamicStreamCheckConfig]] = None
37
+
38
+ def __post_init__(self, parameters: Mapping[str, Any]) -> None:
39
+ self._parameters = parameters
40
+ if self.dynamic_streams_check_configs is None:
41
+ self.dynamic_streams_check_configs = []
42
+
43
+ def _log_error(self, logger: logging.Logger, action: str, error: Exception) -> Tuple[bool, str]:
44
+ """Logs an error and returns a formatted error message."""
45
+ error_message = f"Encountered an error while {action}. Error: {error}"
46
+ logger.error(error_message + f"Error traceback: \n {traceback.format_exc()}", exc_info=True)
47
+ return False, error_message
48
+
49
+ def check_connection(
50
+ self, source: AbstractSource, logger: logging.Logger, config: Mapping[str, Any]
51
+ ) -> Tuple[bool, Any]:
52
+ """Checks the connection to the source and its streams."""
53
+ try:
54
+ streams = source.streams(config=config)
55
+ if not streams:
56
+ return False, f"No streams to connect to from source {source}"
57
+ except Exception as error:
58
+ return self._log_error(logger, "discovering streams", error)
59
+
60
+ stream_name_to_stream = {s.name: s for s in streams}
61
+ for stream_name in self.stream_names:
62
+ if stream_name not in stream_name_to_stream:
63
+ raise ValueError(
64
+ f"{stream_name} is not part of the catalog. Expected one of {list(stream_name_to_stream.keys())}."
65
+ )
66
+
67
+ stream_availability, message = self._check_stream_availability(
68
+ stream_name_to_stream, stream_name, logger
69
+ )
70
+ if not stream_availability:
71
+ return stream_availability, message
72
+
73
+ should_check_dynamic_streams = (
74
+ hasattr(source, "resolved_manifest")
75
+ and hasattr(source, "dynamic_streams")
76
+ and self.dynamic_streams_check_configs
77
+ )
78
+
79
+ if should_check_dynamic_streams:
80
+ return self._check_dynamic_streams_availability(source, stream_name_to_stream, logger)
81
+
82
+ return True, None
83
+
84
+ def _check_stream_availability(
85
+ self, stream_name_to_stream: Dict[str, Any], stream_name: str, logger: logging.Logger
86
+ ) -> Tuple[bool, Any]:
87
+ """Checks if streams are available."""
88
+ availability_strategy = HttpAvailabilityStrategy()
89
+ try:
90
+ stream = stream_name_to_stream[stream_name]
91
+ stream_is_available, reason = availability_strategy.check_availability(stream, logger)
92
+ if not stream_is_available:
93
+ message = f"Stream {stream_name} is not available: {reason}"
94
+ logger.warning(message)
95
+ return stream_is_available, message
96
+ except Exception as error:
97
+ return self._log_error(logger, f"checking availability of stream {stream_name}", error)
98
+ return True, None
99
+
100
+ def _check_dynamic_streams_availability(
101
+ self, source: AbstractSource, stream_name_to_stream: Dict[str, Any], logger: logging.Logger
102
+ ) -> Tuple[bool, Any]:
103
+ """Checks the availability of dynamic streams."""
104
+ dynamic_streams = source.resolved_manifest.get("dynamic_streams", []) # type: ignore[attr-defined] # The source's resolved_manifest manifest is checked before calling this method
105
+ dynamic_stream_name_to_dynamic_stream = {
106
+ ds.get("name", f"dynamic_stream_{i}"): ds for i, ds in enumerate(dynamic_streams)
107
+ }
108
+ generated_streams = self._map_generated_streams(source.dynamic_streams) # type: ignore[attr-defined] # The source's dynamic_streams manifest is checked before calling this method
109
+
110
+ for check_config in self.dynamic_streams_check_configs: # type: ignore[union-attr] # None value for self.dynamic_streams_check_configs handled in __post_init__
111
+ if check_config.dynamic_stream_name not in dynamic_stream_name_to_dynamic_stream:
112
+ return (
113
+ False,
114
+ f"Dynamic stream {check_config.dynamic_stream_name} is not found in manifest.",
115
+ )
116
+
117
+ generated = generated_streams.get(check_config.dynamic_stream_name, [])
118
+ stream_availability, message = self._check_generated_streams_availability(
119
+ generated, stream_name_to_stream, logger, check_config.stream_count
120
+ )
121
+ if not stream_availability:
122
+ return stream_availability, message
123
+
124
+ return True, None
125
+
126
+ def _map_generated_streams(
127
+ self, dynamic_streams: List[Dict[str, Any]]
128
+ ) -> Dict[str, List[Dict[str, Any]]]:
129
+ """Maps dynamic stream names to their corresponding generated streams."""
130
+ mapped_streams: Dict[str, List[Dict[str, Any]]] = {}
131
+ for stream in dynamic_streams:
132
+ mapped_streams.setdefault(stream["dynamic_stream_name"], []).append(stream)
133
+ return mapped_streams
134
+
135
+ def _check_generated_streams_availability(
136
+ self,
137
+ generated_streams: List[Dict[str, Any]],
138
+ stream_name_to_stream: Dict[str, Any],
139
+ logger: logging.Logger,
140
+ max_count: int,
141
+ ) -> Tuple[bool, Any]:
142
+ """Checks availability of generated dynamic streams."""
143
+ availability_strategy = HttpAvailabilityStrategy()
144
+ for declarative_stream in generated_streams[: min(max_count, len(generated_streams))]:
145
+ stream = stream_name_to_stream[declarative_stream["name"]]
146
+ try:
147
+ stream_is_available, reason = availability_strategy.check_availability(
148
+ stream, logger
149
+ )
150
+ if not stream_is_available:
151
+ message = f"Dynamic Stream {stream.name} is not available: {reason}"
152
+ logger.warning(message)
153
+ return False, message
154
+ except Exception as error:
155
+ return self._log_error(
156
+ logger, f"checking availability of dynamic stream {stream.name}", error
157
+ )
158
+ return True, None
@@ -316,7 +316,6 @@ definitions:
316
316
  type: object
317
317
  required:
318
318
  - type
319
- - stream_names
320
319
  properties:
321
320
  type:
322
321
  type: string
@@ -330,6 +329,28 @@ definitions:
330
329
  examples:
331
330
  - ["users"]
332
331
  - ["users", "contacts"]
332
+ dynamic_streams_check_configs:
333
+ type: array
334
+ items:
335
+ "$ref": "#/definitions/DynamicStreamCheckConfig"
336
+ DynamicStreamCheckConfig:
337
+ type: object
338
+ required:
339
+ - type
340
+ - dynamic_stream_name
341
+ properties:
342
+ type:
343
+ type: string
344
+ enum: [DynamicStreamCheckConfig]
345
+ dynamic_stream_name:
346
+ title: Dynamic Stream Name
347
+ description: The dynamic stream name.
348
+ type: string
349
+ stream_count:
350
+ title: Stream Count
351
+ description: The number of streams to attempt reading from during a check operation. If `stream_count` exceeds the total number of available streams, the minimum of the two values will be used.
352
+ type: integer
353
+ default: 0
333
354
  CheckDynamicStream:
334
355
  title: Dynamic Streams to Check
335
356
  description: (This component is experimental. Use at your own risk.) Defines the dynamic streams to try reading when running a check operation.
@@ -1731,6 +1752,30 @@ definitions:
1731
1752
  $parameters:
1732
1753
  type: object
1733
1754
  additionalProperties: true
1755
+ GroupByKeyMergeStrategy:
1756
+ title: Group by Key
1757
+ description: Record merge strategy that combines records according to fields on the record.
1758
+ required:
1759
+ - type
1760
+ - key
1761
+ properties:
1762
+ type:
1763
+ type: string
1764
+ enum: [GroupByKeyMergeStrategy]
1765
+ key:
1766
+ title: Key
1767
+ description: The name of the field on the record whose value will be used to group properties that were retrieved through multiple API requests.
1768
+ anyOf:
1769
+ - type: string
1770
+ - type: array
1771
+ items:
1772
+ type: string
1773
+ examples:
1774
+ - "id"
1775
+ - ["parent_id", "end_date"]
1776
+ $parameters:
1777
+ type: object
1778
+ additionalProperties: true
1734
1779
  SessionTokenAuthenticator:
1735
1780
  type: object
1736
1781
  required:
@@ -1950,7 +1995,9 @@ definitions:
1950
1995
  - type: string
1951
1996
  - type: object
1952
1997
  additionalProperties:
1953
- type: string
1998
+ anyOf:
1999
+ - type: string
2000
+ - $ref": "#/definitions/QueryProperties"
1954
2001
  interpolation_context:
1955
2002
  - next_page_token
1956
2003
  - stream_interval
@@ -2968,6 +3015,96 @@ definitions:
2968
3015
  examples:
2969
3016
  - id
2970
3017
  - ["code", "type"]
3018
+ PropertiesFromEndpoint:
3019
+ title: Properties from Endpoint
3020
+ description: Defines the behavior for fetching the list of properties from an API that will be loaded into the requests to extract records.
3021
+ type: object
3022
+ required:
3023
+ - type
3024
+ - property_field_path
3025
+ - retriever
3026
+ properties:
3027
+ type:
3028
+ type: string
3029
+ enum: [PropertiesFromEndpoint]
3030
+ property_field_path:
3031
+ description: Describes the path to the field that should be extracted
3032
+ type: array
3033
+ items:
3034
+ type: string
3035
+ examples:
3036
+ - ["name"]
3037
+ interpolation_context:
3038
+ - config
3039
+ - parameters
3040
+ retriever:
3041
+ description: Requester component that describes how to fetch the properties to query from a remote API endpoint.
3042
+ anyOf:
3043
+ - "$ref": "#/definitions/CustomRetriever"
3044
+ - "$ref": "#/definitions/SimpleRetriever"
3045
+ $parameters:
3046
+ type: object
3047
+ additionalProperties: true
3048
+ PropertyChunking:
3049
+ title: Property Chunking
3050
+ 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.
3051
+ type: object
3052
+ required:
3053
+ - type
3054
+ - property_limit_type
3055
+ properties:
3056
+ type:
3057
+ type: string
3058
+ enum: [PropertyChunking]
3059
+ property_limit_type:
3060
+ title: Property Limit Type
3061
+ description: The type used to determine the maximum number of properties per chunk
3062
+ enum:
3063
+ - characters
3064
+ - property_count
3065
+ property_limit:
3066
+ title: Property Limit
3067
+ description: The maximum amount of properties that can be retrieved per request according to the limit type.
3068
+ type: integer
3069
+ record_merge_strategy:
3070
+ title: Record Merge Strategy
3071
+ description: Dictates how to records that require multiple requests to get all properties should be emitted to the destination
3072
+ "$ref": "#/definitions/GroupByKeyMergeStrategy"
3073
+ $parameters:
3074
+ type: object
3075
+ additionalProperties: true
3076
+ QueryProperties:
3077
+ title: Query Properties
3078
+ 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.
3079
+ type: object
3080
+ required:
3081
+ - type
3082
+ - property_list
3083
+ properties:
3084
+ type:
3085
+ type: string
3086
+ enum: [QueryProperties]
3087
+ property_list:
3088
+ title: Property List
3089
+ 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
3090
+ anyOf:
3091
+ - type: array
3092
+ items:
3093
+ type: string
3094
+ - "$ref": "#/definitions/PropertiesFromEndpoint"
3095
+ always_include_properties:
3096
+ title: Always Include Properties
3097
+ description: The list of properties that should be included in every set of properties when multiple chunks of properties are being requested.
3098
+ type: array
3099
+ items:
3100
+ type: string
3101
+ property_chunking:
3102
+ title: Property Chunking
3103
+ description: Defines how query properties will be grouped into smaller sets for APIs with limitations on the number of properties fetched per API request.
3104
+ "$ref": "#/definitions/PropertyChunking"
3105
+ $parameters:
3106
+ type: object
3107
+ additionalProperties: true
2971
3108
  RecordFilter:
2972
3109
  title: Record Filter
2973
3110
  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
 
@@ -42,13 +44,15 @@ class BearerAuthenticator(BaseModel):
42
44
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
43
45
 
44
46
 
45
- class CheckStream(BaseModel):
46
- type: Literal["CheckStream"]
47
- stream_names: List[str] = Field(
48
- ...,
49
- description="Names of the streams to try reading from when running a check operation.",
50
- examples=[["users"], ["users", "contacts"]],
51
- title="Stream Names",
47
+ class DynamicStreamCheckConfig(BaseModel):
48
+ type: Literal["DynamicStreamCheckConfig"]
49
+ dynamic_stream_name: str = Field(
50
+ ..., description="The dynamic stream name.", title="Dynamic Stream Name"
51
+ )
52
+ stream_count: Optional[int] = Field(
53
+ 0,
54
+ description="The number of streams to attempt reading from during a check operation. If `stream_count` exceeds the total number of available streams, the minimum of the two values will be used.",
55
+ title="Stream Count",
52
56
  )
53
57
 
54
58
 
@@ -716,6 +720,17 @@ class ExponentialBackoffStrategy(BaseModel):
716
720
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
717
721
 
718
722
 
723
+ class GroupByKeyMergeStrategy(BaseModel):
724
+ type: Literal["GroupByKeyMergeStrategy"]
725
+ key: Union[str, List[str]] = Field(
726
+ ...,
727
+ description="The name of the field on the record whose value will be used to group properties that were retrieved through multiple API requests.",
728
+ examples=["id", ["parent_id", "end_date"]],
729
+ title="Key",
730
+ )
731
+ parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
732
+
733
+
719
734
  class SessionTokenRequestBearerAuthenticator(BaseModel):
720
735
  type: Literal["Bearer"]
721
736
 
@@ -1187,6 +1202,31 @@ class PrimaryKey(BaseModel):
1187
1202
  )
1188
1203
 
1189
1204
 
1205
+ class PropertyLimitType(Enum):
1206
+ characters = "characters"
1207
+ property_count = "property_count"
1208
+
1209
+
1210
+ class PropertyChunking(BaseModel):
1211
+ type: Literal["PropertyChunking"]
1212
+ property_limit_type: PropertyLimitType = Field(
1213
+ ...,
1214
+ description="The type used to determine the maximum number of properties per chunk",
1215
+ title="Property Limit Type",
1216
+ )
1217
+ property_limit: Optional[int] = Field(
1218
+ None,
1219
+ description="The maximum amount of properties that can be retrieved per request according to the limit type.",
1220
+ title="Property Limit",
1221
+ )
1222
+ record_merge_strategy: Optional[GroupByKeyMergeStrategy] = Field(
1223
+ None,
1224
+ description="Dictates how to records that require multiple requests to get all properties should be emitted to the destination",
1225
+ title="Record Merge Strategy",
1226
+ )
1227
+ parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
1228
+
1229
+
1190
1230
  class RecordFilter(BaseModel):
1191
1231
  type: Literal["RecordFilter"]
1192
1232
  condition: Optional[str] = Field(
@@ -1523,6 +1563,17 @@ class AuthFlow(BaseModel):
1523
1563
  oauth_config_specification: Optional[OAuthConfigSpecification] = None
1524
1564
 
1525
1565
 
1566
+ class CheckStream(BaseModel):
1567
+ type: Literal["CheckStream"]
1568
+ stream_names: Optional[List[str]] = Field(
1569
+ None,
1570
+ description="Names of the streams to try reading from when running a check operation.",
1571
+ examples=[["users"], ["users", "contacts"]],
1572
+ title="Stream Names",
1573
+ )
1574
+ dynamic_streams_check_configs: Optional[List[DynamicStreamCheckConfig]] = None
1575
+
1576
+
1526
1577
  class IncrementingCountCursor(BaseModel):
1527
1578
  type: Literal["IncrementingCountCursor"]
1528
1579
  cursor_field: str = Field(
@@ -2174,7 +2225,7 @@ class HttpRequester(BaseModel):
2174
2225
  examples=[{"Output-Format": "JSON"}, {"Version": "{{ config['version'] }}"}],
2175
2226
  title="Request Headers",
2176
2227
  )
2177
- request_parameters: Optional[Union[str, Dict[str, str]]] = Field(
2228
+ request_parameters: Optional[Union[str, Dict[str, Union[str, Any]]]] = Field(
2178
2229
  None,
2179
2230
  description="Specifies the query parameters that should be set on an outgoing HTTP request given the inputs.",
2180
2231
  examples=[
@@ -2264,6 +2315,40 @@ class ParentStreamConfig(BaseModel):
2264
2315
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
2265
2316
 
2266
2317
 
2318
+ class PropertiesFromEndpoint(BaseModel):
2319
+ type: Literal["PropertiesFromEndpoint"]
2320
+ property_field_path: List[str] = Field(
2321
+ ...,
2322
+ description="Describes the path to the field that should be extracted",
2323
+ examples=[["name"]],
2324
+ )
2325
+ retriever: Union[CustomRetriever, SimpleRetriever] = Field(
2326
+ ...,
2327
+ description="Requester component that describes how to fetch the properties to query from a remote API endpoint.",
2328
+ )
2329
+ parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
2330
+
2331
+
2332
+ class QueryProperties(BaseModel):
2333
+ type: Literal["QueryProperties"]
2334
+ property_list: Union[List[str], PropertiesFromEndpoint] = Field(
2335
+ ...,
2336
+ 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",
2337
+ title="Property List",
2338
+ )
2339
+ always_include_properties: Optional[List[str]] = Field(
2340
+ None,
2341
+ description="The list of properties that should be included in every set of properties when multiple chunks of properties are being requested.",
2342
+ title="Always Include Properties",
2343
+ )
2344
+ property_chunking: Optional[PropertyChunking] = Field(
2345
+ None,
2346
+ description="Defines how query properties will be grouped into smaller sets for APIs with limitations on the number of properties fetched per API request.",
2347
+ title="Property Chunking",
2348
+ )
2349
+ parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
2350
+
2351
+
2267
2352
  class StateDelegatingStream(BaseModel):
2268
2353
  type: Literal["StateDelegatingStream"]
2269
2354
  name: str = Field(..., description="The stream name.", example=["Users"], title="Name")
@@ -2512,5 +2597,6 @@ DeclarativeStream.update_forward_refs()
2512
2597
  SessionTokenAuthenticator.update_forward_refs()
2513
2598
  DynamicSchemaLoader.update_forward_refs()
2514
2599
  ParentStreamConfig.update_forward_refs()
2600
+ PropertiesFromEndpoint.update_forward_refs()
2515
2601
  SimpleRetriever.update_forward_refs()
2516
2602
  AsyncRetriever.update_forward_refs()