airbyte-cdk 6.19.0__tar.gz → 6.20.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 (351) hide show
  1. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/auth/oauth.py +8 -0
  3. airbyte_cdk-6.20.0/airbyte_cdk/sources/declarative/checks/__init__.py +24 -0
  4. airbyte_cdk-6.20.0/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +51 -0
  5. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +26 -1
  6. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +2 -1
  7. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +22 -2
  8. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +15 -1
  9. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/README.md +2 -3
  10. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +13 -0
  11. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +8 -0
  12. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/pyproject.toml +1 -1
  13. airbyte_cdk-6.19.0/airbyte_cdk/sources/declarative/checks/__init__.py +0 -8
  14. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/LICENSE.txt +0 -0
  15. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/README.md +0 -0
  16. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/__init__.py +0 -0
  17. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/cli/__init__.py +0 -0
  18. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  19. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  20. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  21. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/config_observation.py +0 -0
  22. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/connector.py +0 -0
  23. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/connector_builder/README.md +0 -0
  24. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/connector_builder/__init__.py +0 -0
  25. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  26. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/connector_builder/main.py +0 -0
  27. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  28. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/connector_builder/models.py +0 -0
  29. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/destinations/__init__.py +0 -0
  30. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/destinations/destination.py +0 -0
  31. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  32. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  33. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  34. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  35. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  36. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  37. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  38. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  39. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  40. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/entrypoint.py +0 -0
  41. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/exception_handler.py +0 -0
  42. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/logger.py +0 -0
  43. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/models/__init__.py +0 -0
  44. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  45. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  46. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  47. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/models/well_known_types.py +0 -0
  48. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/py.typed +0 -0
  49. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/__init__.py +0 -0
  50. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/abstract_source.py +0 -0
  51. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  52. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  53. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  54. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  55. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  56. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  57. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  58. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/config.py +0 -0
  59. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  60. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  61. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  62. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  63. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  64. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  65. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  66. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  67. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  68. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  69. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  70. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  71. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  72. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  73. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  74. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  75. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  76. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  77. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  78. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  79. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  80. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  81. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  82. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  83. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  84. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  85. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  86. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  87. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  88. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  89. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  90. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  91. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  92. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  93. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  94. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  95. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  96. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  97. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  98. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  99. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  100. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  101. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  102. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  103. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  104. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  105. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  106. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  107. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  108. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  109. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  110. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  111. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  112. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  113. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  114. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  115. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  116. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  117. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  118. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  119. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  120. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  121. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  122. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  123. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  124. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  125. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  126. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  127. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  128. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  129. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  130. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  131. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  132. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  133. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  134. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  135. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  136. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  137. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  138. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  139. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  140. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  141. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  142. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  143. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  144. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  145. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  146. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  147. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  148. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  149. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  150. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  151. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  152. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  153. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  154. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  155. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  156. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  157. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  158. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  159. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  160. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  161. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  162. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  163. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  164. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  165. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  166. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  167. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  168. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  169. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  170. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  171. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  172. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  173. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  174. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  175. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  176. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  177. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  178. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  179. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  180. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  181. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  182. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  183. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  184. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  185. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  186. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  187. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  188. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  189. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  190. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  191. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  192. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  193. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  194. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/types.py +0 -0
  195. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  196. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  197. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  198. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  199. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/embedded/runner.py +0 -0
  200. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/embedded/tools.py +0 -0
  201. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/README.md +0 -0
  202. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  203. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  204. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  205. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  206. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  207. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  208. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  209. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  210. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  211. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  212. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  213. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  214. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  215. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  216. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  217. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  218. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  219. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  220. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  221. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  222. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  223. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  224. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  225. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  226. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  227. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  228. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  229. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  230. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  231. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  232. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  233. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  234. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  235. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  236. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  237. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  238. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  239. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  240. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  241. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  242. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  243. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  244. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  245. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  246. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  247. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/file_based/types.py +0 -0
  248. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/http_config.py +0 -0
  249. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/http_logger.py +0 -0
  250. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/message/__init__.py +0 -0
  251. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/message/repository.py +0 -0
  252. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/source.py +0 -0
  253. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/__init__.py +0 -0
  254. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  255. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  256. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  257. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  258. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  259. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  260. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  261. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  262. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  263. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  264. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  265. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  266. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  267. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  268. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  269. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  270. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  271. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  272. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  273. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  274. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  275. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  276. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  277. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  278. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  279. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  280. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  281. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  282. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/core.py +0 -0
  283. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  284. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  285. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  286. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  287. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  288. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  289. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  290. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  291. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  292. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  293. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  294. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  295. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/http.py +0 -0
  296. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  297. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  298. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  299. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  300. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  301. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  302. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/types.py +0 -0
  303. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/utils/__init__.py +0 -0
  304. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/utils/casing.py +0 -0
  305. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  306. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  307. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  308. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/utils/transform.py +0 -0
  309. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sources/utils/types.py +0 -0
  310. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sql/__init__.py +0 -0
  311. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sql/_util/__init__.py +0 -0
  312. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sql/_util/hashing.py +0 -0
  313. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  314. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sql/constants.py +0 -0
  315. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sql/exceptions.py +0 -0
  316. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sql/secrets.py +0 -0
  317. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sql/shared/__init__.py +0 -0
  318. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  319. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  320. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/sql/types.py +0 -0
  321. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/__init__.py +0 -0
  322. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/catalog_builder.py +0 -0
  323. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  324. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  325. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  326. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  327. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/mock_http/request.py +0 -0
  328. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/mock_http/response.py +0 -0
  329. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  330. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/state_builder.py +0 -0
  331. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/utils/__init__.py +0 -0
  332. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/utils/data.py +0 -0
  333. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  334. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  335. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/test/utils/reading.py +0 -0
  336. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/__init__.py +0 -0
  337. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  338. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/analytics_message.py +0 -0
  339. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/constants.py +0 -0
  340. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  341. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/event_timing.py +0 -0
  342. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  343. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  344. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/message_utils.py +0 -0
  345. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  346. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/print_buffer.py +0 -0
  347. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  348. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/slice_hasher.py +0 -0
  349. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  350. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  351. {airbyte_cdk-6.19.0 → airbyte_cdk-6.20.0}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: airbyte-cdk
3
- Version: 6.19.0
3
+ Version: 6.20.0
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  License: MIT
6
6
  Keywords: airbyte,connector-development-kit,cdk
@@ -39,6 +39,7 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
39
39
  token_expiry_date_format str: format of the datetime; provide it if expires_in is returned in datetime instead of seconds
40
40
  token_expiry_is_time_of_expiration bool: set True it if expires_in is returned as time of expiration instead of the number seconds until expiration
41
41
  refresh_request_body (Optional[Mapping[str, Any]]): The request body to send in the refresh request
42
+ refresh_request_headers (Optional[Mapping[str, Any]]): The request headers to send in the refresh request
42
43
  grant_type: The grant_type to request for access_token. If set to refresh_token, the refresh_token parameter has to be provided
43
44
  message_repository (MessageRepository): the message repository used to emit logs on HTTP requests
44
45
  """
@@ -61,6 +62,7 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
61
62
  expires_in_name: Union[InterpolatedString, str] = "expires_in"
62
63
  refresh_token_name: Union[InterpolatedString, str] = "refresh_token"
63
64
  refresh_request_body: Optional[Mapping[str, Any]] = None
65
+ refresh_request_headers: Optional[Mapping[str, Any]] = None
64
66
  grant_type_name: Union[InterpolatedString, str] = "grant_type"
65
67
  grant_type: Union[InterpolatedString, str] = "refresh_token"
66
68
  message_repository: MessageRepository = NoopMessageRepository()
@@ -101,6 +103,9 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
101
103
  self._refresh_request_body = InterpolatedMapping(
102
104
  self.refresh_request_body or {}, parameters=parameters
103
105
  )
106
+ self._refresh_request_headers = InterpolatedMapping(
107
+ self.refresh_request_headers or {}, parameters=parameters
108
+ )
104
109
  self._token_expiry_date: pendulum.DateTime = (
105
110
  pendulum.parse(
106
111
  InterpolatedString.create(self.token_expiry_date, parameters=parameters).eval(
@@ -178,6 +183,9 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
178
183
  def get_refresh_request_body(self) -> Mapping[str, Any]:
179
184
  return self._refresh_request_body.eval(self.config)
180
185
 
186
+ def get_refresh_request_headers(self) -> Mapping[str, Any]:
187
+ return self._refresh_request_headers.eval(self.config)
188
+
181
189
  def get_token_expiry_date(self) -> pendulum.DateTime:
182
190
  return self._token_expiry_date # type: ignore # _token_expiry_date is a pendulum.DateTime. It is never None despite what mypy thinks
183
191
 
@@ -0,0 +1,24 @@
1
+ #
2
+ # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
3
+ #
4
+
5
+ from typing import Mapping
6
+
7
+ from pydantic.v1 import BaseModel
8
+
9
+ from airbyte_cdk.sources.declarative.checks.check_dynamic_stream import CheckDynamicStream
10
+ from airbyte_cdk.sources.declarative.checks.check_stream import CheckStream
11
+ from airbyte_cdk.sources.declarative.checks.connection_checker import ConnectionChecker
12
+ from airbyte_cdk.sources.declarative.models import (
13
+ CheckDynamicStream as CheckDynamicStreamModel,
14
+ )
15
+ from airbyte_cdk.sources.declarative.models import (
16
+ CheckStream as CheckStreamModel,
17
+ )
18
+
19
+ COMPONENTS_CHECKER_TYPE_MAPPING: Mapping[str, type[BaseModel]] = {
20
+ "CheckStream": CheckStreamModel,
21
+ "CheckDynamicStream": CheckDynamicStreamModel,
22
+ }
23
+
24
+ __all__ = ["CheckStream", "CheckDynamicStream", "ConnectionChecker"]
@@ -0,0 +1,51 @@
1
+ #
2
+ # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
3
+ #
4
+
5
+ import logging
6
+ import traceback
7
+ from dataclasses import InitVar, dataclass
8
+ from typing import Any, List, Mapping, 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
16
+ class CheckDynamicStream(ConnectionChecker):
17
+ """
18
+ Checks the connections by checking availability of one or many dynamic streams
19
+
20
+ Attributes:
21
+ stream_count (int): numbers of streams to check
22
+ """
23
+
24
+ stream_count: int
25
+ parameters: InitVar[Mapping[str, Any]]
26
+
27
+ def __post_init__(self, parameters: Mapping[str, Any]) -> None:
28
+ self._parameters = parameters
29
+
30
+ def check_connection(
31
+ self, source: AbstractSource, logger: logging.Logger, config: Mapping[str, Any]
32
+ ) -> Tuple[bool, Any]:
33
+ streams = source.streams(config=config)
34
+ if len(streams) == 0:
35
+ return False, f"No streams to connect to from source {source}"
36
+
37
+ for stream_index in range(min(self.stream_count, len(streams))):
38
+ stream = streams[stream_index]
39
+ availability_strategy = HttpAvailabilityStrategy()
40
+ try:
41
+ stream_is_available, reason = availability_strategy.check_availability(
42
+ stream, logger
43
+ )
44
+ if not stream_is_available:
45
+ return False, reason
46
+ except Exception as error:
47
+ logger.error(
48
+ f"Encountered an error trying to connect to stream {stream.name}. Error: \n {traceback.format_exc()}"
49
+ )
50
+ return False, f"Unable to connect to stream {stream.name} - {error}"
51
+ return True, None
@@ -18,7 +18,9 @@ properties:
18
18
  type: string
19
19
  enum: [DeclarativeSource]
20
20
  check:
21
- "$ref": "#/definitions/CheckStream"
21
+ anyOf:
22
+ - "$ref": "#/definitions/CheckStream"
23
+ - "$ref": "#/definitions/CheckDynamicStream"
22
24
  streams:
23
25
  type: array
24
26
  items:
@@ -303,6 +305,21 @@ definitions:
303
305
  examples:
304
306
  - ["users"]
305
307
  - ["users", "contacts"]
308
+ CheckDynamicStream:
309
+ title: Dynamic Streams to Check
310
+ description: (This component is experimental. Use at your own risk.) Defines the dynamic streams to try reading when running a check operation.
311
+ type: object
312
+ required:
313
+ - type
314
+ - stream_count
315
+ properties:
316
+ type:
317
+ type: string
318
+ enum: [CheckDynamicStream]
319
+ stream_count:
320
+ title: Stream Count
321
+ description: Numbers of the streams to try reading from when running a check operation.
322
+ type: integer
306
323
  CompositeErrorHandler:
307
324
  title: Composite Error Handler
308
325
  description: Error handler that sequentially iterates over a list of error handlers.
@@ -1139,6 +1156,14 @@ definitions:
1139
1156
  - applicationId: "{{ config['application_id'] }}"
1140
1157
  applicationSecret: "{{ config['application_secret'] }}"
1141
1158
  token: "{{ config['token'] }}"
1159
+ refresh_request_headers:
1160
+ title: Refresh Request Headers
1161
+ description: Headers of the request sent to get a new access token.
1162
+ type: object
1163
+ additionalProperties: true
1164
+ examples:
1165
+ - Authorization: "<AUTH_TOKEN>"
1166
+ Content-Type: "application/x-www-form-urlencoded"
1142
1167
  scopes:
1143
1168
  title: Scopes
1144
1169
  description: List of scopes that should be granted to the access token.
@@ -22,6 +22,7 @@ from airbyte_cdk.models import (
22
22
  ConnectorSpecification,
23
23
  FailureType,
24
24
  )
25
+ from airbyte_cdk.sources.declarative.checks import COMPONENTS_CHECKER_TYPE_MAPPING
25
26
  from airbyte_cdk.sources.declarative.checks.connection_checker import ConnectionChecker
26
27
  from airbyte_cdk.sources.declarative.declarative_source import DeclarativeSource
27
28
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
@@ -107,7 +108,7 @@ class ManifestDeclarativeSource(DeclarativeSource):
107
108
  if "type" not in check:
108
109
  check["type"] = "CheckStream"
109
110
  check_stream = self._constructor.create_component(
110
- CheckStreamModel,
111
+ COMPONENTS_CHECKER_TYPE_MAPPING[check["type"]],
111
112
  check,
112
113
  dict(),
113
114
  emit_connector_builder_messages=self._emit_connector_builder_messages,
@@ -52,6 +52,15 @@ class CheckStream(BaseModel):
52
52
  )
53
53
 
54
54
 
55
+ class CheckDynamicStream(BaseModel):
56
+ type: Literal["CheckDynamicStream"]
57
+ stream_count: int = Field(
58
+ ...,
59
+ description="Numbers of the streams to try reading from when running a check operation.",
60
+ title="Stream Count",
61
+ )
62
+
63
+
55
64
  class ConcurrencyLevel(BaseModel):
56
65
  type: Optional[Literal["ConcurrencyLevel"]] = None
57
66
  default_concurrency: Union[int, str] = Field(
@@ -571,6 +580,17 @@ class OAuthAuthenticator(BaseModel):
571
580
  ],
572
581
  title="Refresh Request Body",
573
582
  )
583
+ refresh_request_headers: Optional[Dict[str, Any]] = Field(
584
+ None,
585
+ description="Headers of the request sent to get a new access token.",
586
+ examples=[
587
+ {
588
+ "Authorization": "<AUTH_TOKEN>",
589
+ "Content-Type": "application/x-www-form-urlencoded",
590
+ }
591
+ ],
592
+ title="Refresh Request Headers",
593
+ )
574
594
  scopes: Optional[List[str]] = Field(
575
595
  None,
576
596
  description="List of scopes that should be granted to the access token.",
@@ -1650,7 +1670,7 @@ class DeclarativeSource1(BaseModel):
1650
1670
  extra = Extra.forbid
1651
1671
 
1652
1672
  type: Literal["DeclarativeSource"]
1653
- check: CheckStream
1673
+ check: Union[CheckStream, CheckDynamicStream]
1654
1674
  streams: List[DeclarativeStream]
1655
1675
  dynamic_streams: Optional[List[DynamicDeclarativeStream]] = None
1656
1676
  version: str = Field(
@@ -1676,7 +1696,7 @@ class DeclarativeSource2(BaseModel):
1676
1696
  extra = Extra.forbid
1677
1697
 
1678
1698
  type: Literal["DeclarativeSource"]
1679
- check: CheckStream
1699
+ check: Union[CheckStream, CheckDynamicStream]
1680
1700
  streams: Optional[List[DeclarativeStream]] = None
1681
1701
  dynamic_streams: List[DynamicDeclarativeStream]
1682
1702
  version: str = Field(
@@ -54,7 +54,7 @@ from airbyte_cdk.sources.declarative.auth.token_provider import (
54
54
  SessionTokenProvider,
55
55
  TokenProvider,
56
56
  )
57
- from airbyte_cdk.sources.declarative.checks import CheckStream
57
+ from airbyte_cdk.sources.declarative.checks import CheckDynamicStream, CheckStream
58
58
  from airbyte_cdk.sources.declarative.concurrency_level import ConcurrencyLevel
59
59
  from airbyte_cdk.sources.declarative.datetime import MinMaxDatetime
60
60
  from airbyte_cdk.sources.declarative.declarative_stream import DeclarativeStream
@@ -123,6 +123,9 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
123
123
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
124
124
  BearerAuthenticator as BearerAuthenticatorModel,
125
125
  )
126
+ from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
127
+ CheckDynamicStream as CheckDynamicStreamModel,
128
+ )
126
129
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
127
130
  CheckStream as CheckStreamModel,
128
131
  )
@@ -493,6 +496,7 @@ class ModelToComponentFactory:
493
496
  BasicHttpAuthenticatorModel: self.create_basic_http_authenticator,
494
497
  BearerAuthenticatorModel: self.create_bearer_authenticator,
495
498
  CheckStreamModel: self.create_check_stream,
499
+ CheckDynamicStreamModel: self.create_check_dynamic_stream,
496
500
  CompositeErrorHandlerModel: self.create_composite_error_handler,
497
501
  CompositeRawDecoderModel: self.create_composite_raw_decoder,
498
502
  ConcurrencyLevelModel: self.create_concurrency_level,
@@ -846,6 +850,12 @@ class ModelToComponentFactory:
846
850
  def create_check_stream(model: CheckStreamModel, config: Config, **kwargs: Any) -> CheckStream:
847
851
  return CheckStream(stream_names=model.stream_names, parameters={})
848
852
 
853
+ @staticmethod
854
+ def create_check_dynamic_stream(
855
+ model: CheckDynamicStreamModel, config: Config, **kwargs: Any
856
+ ) -> CheckDynamicStream:
857
+ return CheckDynamicStream(stream_count=model.stream_count, parameters={})
858
+
849
859
  def create_composite_error_handler(
850
860
  self, model: CompositeErrorHandlerModel, config: Config, **kwargs: Any
851
861
  ) -> CompositeErrorHandler:
@@ -1919,6 +1929,9 @@ class ModelToComponentFactory:
1919
1929
  refresh_request_body=InterpolatedMapping(
1920
1930
  model.refresh_request_body or {}, parameters=model.parameters or {}
1921
1931
  ).eval(config),
1932
+ refresh_request_headers=InterpolatedMapping(
1933
+ model.refresh_request_headers or {}, parameters=model.parameters or {}
1934
+ ).eval(config),
1922
1935
  scopes=model.scopes,
1923
1936
  token_expiry_date_format=model.token_expiry_date_format,
1924
1937
  message_repository=self._message_repository,
@@ -1938,6 +1951,7 @@ class ModelToComponentFactory:
1938
1951
  grant_type_name=model.grant_type_name or "grant_type",
1939
1952
  grant_type=model.grant_type or "refresh_token",
1940
1953
  refresh_request_body=model.refresh_request_body,
1954
+ refresh_request_headers=model.refresh_request_headers,
1941
1955
  refresh_token_name=model.refresh_token_name or "refresh_token",
1942
1956
  refresh_token=model.refresh_token,
1943
1957
  scopes=model.scopes,
@@ -3,13 +3,12 @@
3
3
  - Components marked as optional are not required and can be ignored.
4
4
  - if `url_requester` is not provided, `urls_extractor` will get urls from the `polling_job_response`
5
5
  - interpolation_context, e.g. `create_job_response` or `polling_job_response` can be obtained from stream_slice
6
-
7
6
 
8
7
  ```mermaid
9
8
  ---
10
9
  title: AsyncHttpJobRepository Sequence Diagram
11
10
  ---
12
- sequenceDiagram
11
+ sequenceDiagram
13
12
  participant AsyncHttpJobRepository as AsyncOrchestrator
14
13
  participant CreationRequester as creation_requester
15
14
  participant PollingRequester as polling_requester
@@ -54,4 +53,4 @@ sequenceDiagram
54
53
  DeleteRequester -->> AsyncHttpJobRepository: Confirmation
55
54
 
56
55
 
57
- ```
56
+ ```
@@ -98,6 +98,14 @@ class AbstractOauth2Authenticator(AuthBase):
98
98
 
99
99
  return payload
100
100
 
101
+ def build_refresh_request_headers(self) -> Mapping[str, Any] | None:
102
+ """
103
+ Returns the request headers to set on the refresh request
104
+
105
+ """
106
+ headers = self.get_refresh_request_headers()
107
+ return headers if headers else None
108
+
101
109
  def _wrap_refresh_token_exception(
102
110
  self, exception: requests.exceptions.RequestException
103
111
  ) -> bool:
@@ -128,6 +136,7 @@ class AbstractOauth2Authenticator(AuthBase):
128
136
  method="POST",
129
137
  url=self.get_token_refresh_endpoint(), # type: ignore # returns None, if not provided, but str | bytes is expected.
130
138
  data=self.build_refresh_request_body(),
139
+ headers=self.build_refresh_request_headers(),
131
140
  )
132
141
  if response.ok:
133
142
  response_json = response.json()
@@ -254,6 +263,10 @@ class AbstractOauth2Authenticator(AuthBase):
254
263
  def get_refresh_request_body(self) -> Mapping[str, Any]:
255
264
  """Returns the request body to set on the refresh request"""
256
265
 
266
+ @abstractmethod
267
+ def get_refresh_request_headers(self) -> Mapping[str, Any]:
268
+ """Returns the request headers to set on the refresh request"""
269
+
257
270
  @abstractmethod
258
271
  def get_grant_type(self) -> str:
259
272
  """Returns grant_type specified for requesting access_token"""
@@ -39,6 +39,7 @@ class Oauth2Authenticator(AbstractOauth2Authenticator):
39
39
  access_token_name: str = "access_token",
40
40
  expires_in_name: str = "expires_in",
41
41
  refresh_request_body: Mapping[str, Any] | None = None,
42
+ refresh_request_headers: Mapping[str, Any] | None = None,
42
43
  grant_type_name: str = "grant_type",
43
44
  grant_type: str = "refresh_token",
44
45
  token_expiry_is_time_of_expiration: bool = False,
@@ -57,6 +58,7 @@ class Oauth2Authenticator(AbstractOauth2Authenticator):
57
58
  self._access_token_name = access_token_name
58
59
  self._expires_in_name = expires_in_name
59
60
  self._refresh_request_body = refresh_request_body
61
+ self._refresh_request_headers = refresh_request_headers
60
62
  self._grant_type_name = grant_type_name
61
63
  self._grant_type = grant_type
62
64
 
@@ -101,6 +103,9 @@ class Oauth2Authenticator(AbstractOauth2Authenticator):
101
103
  def get_refresh_request_body(self) -> Mapping[str, Any]:
102
104
  return self._refresh_request_body # type: ignore [return-value]
103
105
 
106
+ def get_refresh_request_headers(self) -> Mapping[str, Any]:
107
+ return self._refresh_request_headers # type: ignore [return-value]
108
+
104
109
  def get_grant_type_name(self) -> str:
105
110
  return self._grant_type_name
106
111
 
@@ -149,6 +154,7 @@ class SingleUseRefreshTokenOauth2Authenticator(Oauth2Authenticator):
149
154
  expires_in_name: str = "expires_in",
150
155
  refresh_token_name: str = "refresh_token",
151
156
  refresh_request_body: Mapping[str, Any] | None = None,
157
+ refresh_request_headers: Mapping[str, Any] | None = None,
152
158
  grant_type_name: str = "grant_type",
153
159
  grant_type: str = "refresh_token",
154
160
  client_id_name: str = "client_id",
@@ -174,6 +180,7 @@ class SingleUseRefreshTokenOauth2Authenticator(Oauth2Authenticator):
174
180
  expires_in_name (str, optional): Name of the name of the field that characterizes when the current access token will expire, used to parse the refresh token response. Defaults to "expires_in".
175
181
  refresh_token_name (str, optional): Name of the name of the refresh token field, used to parse the refresh token response. Defaults to "refresh_token".
176
182
  refresh_request_body (Mapping[str, Any], optional): Custom key value pair that will be added to the refresh token request body. Defaults to None.
183
+ refresh_request_headers (Mapping[str, Any], optional): Custom key value pair that will be added to the refresh token request headers. Defaults to None.
177
184
  grant_type (str, optional): OAuth grant type. Defaults to "refresh_token".
178
185
  client_id (Optional[str]): The client id to authenticate. If not specified, defaults to credentials.client_id in the config object.
179
186
  client_secret (Optional[str]): The client secret to authenticate. If not specified, defaults to credentials.client_secret in the config object.
@@ -220,6 +227,7 @@ class SingleUseRefreshTokenOauth2Authenticator(Oauth2Authenticator):
220
227
  access_token_name=access_token_name,
221
228
  expires_in_name=expires_in_name,
222
229
  refresh_request_body=refresh_request_body,
230
+ refresh_request_headers=refresh_request_headers,
223
231
  grant_type_name=self._grant_type_name,
224
232
  grant_type=grant_type,
225
233
  token_expiry_date_format=token_expiry_date_format,
@@ -23,7 +23,7 @@ classifiers = [
23
23
  keywords = ["airbyte", "connector-development-kit", "cdk"]
24
24
 
25
25
  # Python CDK uses dynamic versioning: https://github.com/mtkennerly/poetry-dynamic-versioning
26
- version = "6.19.0" # Version will be calculated dynamically.
26
+ version = "6.20.0" # Version will be calculated dynamically.
27
27
 
28
28
  [tool.poetry-dynamic-versioning]
29
29
  enable = false
@@ -1,8 +0,0 @@
1
- #
2
- # Copyright (c) 2023 Airbyte, Inc., all rights reserved.
3
- #
4
-
5
- from airbyte_cdk.sources.declarative.checks.check_stream import CheckStream
6
- from airbyte_cdk.sources.declarative.checks.connection_checker import ConnectionChecker
7
-
8
- __all__ = ["CheckStream", "ConnectionChecker"]
File without changes
File without changes