airbyte-cdk 6.20.2.dev0__tar.gz → 6.21.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 (353) hide show
  1. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/auth/oauth.py +34 -0
  3. airbyte_cdk-6.21.0/airbyte_cdk/sources/declarative/checks/__init__.py +24 -0
  4. airbyte_cdk-6.21.0/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +51 -0
  5. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +16 -80
  6. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +123 -21
  7. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/decoders/__init__.py +9 -1
  8. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +43 -0
  9. airbyte_cdk-6.21.0/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +59 -0
  10. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/extractors/record_filter.py +5 -3
  11. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -6
  12. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -3
  13. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -15
  14. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +2 -1
  15. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +112 -27
  16. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +127 -106
  17. airbyte_cdk-6.21.0/airbyte_cdk/sources/declarative/requesters/README.md +56 -0
  18. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +33 -4
  19. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +1 -1
  20. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +13 -3
  21. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +11 -0
  22. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/exceptions.py +34 -0
  23. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/file_based_source.py +28 -5
  24. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +18 -4
  25. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +25 -2
  26. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +30 -2
  27. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/cursor.py +21 -30
  28. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +33 -4
  29. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +42 -4
  30. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/types.py +3 -0
  31. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/utils/transform.py +29 -3
  32. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/pyproject.toml +1 -1
  33. airbyte_cdk-6.20.2.dev0/airbyte_cdk/sources/declarative/checks/__init__.py +0 -8
  34. airbyte_cdk-6.20.2.dev0/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -331
  35. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/LICENSE.txt +0 -0
  36. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/README.md +0 -0
  37. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/__init__.py +0 -0
  38. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/cli/__init__.py +0 -0
  39. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  40. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  41. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  42. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/config_observation.py +0 -0
  43. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/connector.py +0 -0
  44. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/connector_builder/README.md +0 -0
  45. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/connector_builder/__init__.py +0 -0
  46. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  47. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/connector_builder/main.py +0 -0
  48. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  49. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/connector_builder/models.py +0 -0
  50. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/destinations/__init__.py +0 -0
  51. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/destinations/destination.py +0 -0
  52. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  53. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  54. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  55. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  56. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  57. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  58. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  59. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  60. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  61. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/entrypoint.py +0 -0
  62. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/exception_handler.py +0 -0
  63. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/logger.py +0 -0
  64. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/models/__init__.py +0 -0
  65. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  66. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  67. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  68. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/models/well_known_types.py +0 -0
  69. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/py.typed +0 -0
  70. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/__init__.py +0 -0
  71. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/abstract_source.py +0 -0
  72. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  73. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  74. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  75. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  76. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  77. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  78. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  79. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/config.py +0 -0
  80. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  81. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  82. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  83. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  84. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  85. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  86. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  87. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  88. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  89. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  90. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  91. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  92. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  93. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  94. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  95. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  96. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  97. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  98. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  99. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  100. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  101. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  102. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  103. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  104. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  105. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  106. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  107. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  108. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  109. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  110. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  111. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  112. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  113. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  114. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  115. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  116. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  117. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  118. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  119. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  120. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  121. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  122. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  123. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  124. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  125. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  126. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  127. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  128. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  129. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  130. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  131. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  132. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  133. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  134. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  135. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  136. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  137. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  138. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  139. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  140. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  141. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  142. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  143. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  144. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  145. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  146. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  147. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  148. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  149. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  150. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  151. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  152. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  153. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  154. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  155. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  156. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  157. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  158. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  159. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  160. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  161. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  162. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  163. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  164. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  165. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  166. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  167. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  168. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  169. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  170. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  171. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  172. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  173. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  174. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  175. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  176. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  177. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  178. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  179. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  180. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  181. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  182. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  183. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  184. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  185. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  186. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  187. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  188. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  189. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  190. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  191. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  192. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  193. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  194. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  195. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  196. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  197. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  198. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  199. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  200. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  201. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  202. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  203. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  204. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  205. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/types.py +0 -0
  206. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  207. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  208. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  209. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  210. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/embedded/runner.py +0 -0
  211. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/embedded/tools.py +0 -0
  212. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/README.md +0 -0
  213. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  214. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  215. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  216. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  217. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  218. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  219. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  220. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  221. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  222. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  223. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  224. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  225. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  226. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  227. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  228. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  229. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  230. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  231. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  232. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  233. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  234. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  235. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  236. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  237. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  238. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  239. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  240. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  241. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  242. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  243. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  244. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  245. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  246. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  247. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  248. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  249. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  250. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  251. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  252. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/file_based/types.py +0 -0
  253. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/http_config.py +0 -0
  254. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/http_logger.py +0 -0
  255. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/message/__init__.py +0 -0
  256. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/message/repository.py +0 -0
  257. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/source.py +0 -0
  258. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/__init__.py +0 -0
  259. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  260. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  261. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  262. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  263. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  264. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  265. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  266. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  267. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  268. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  269. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  270. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  271. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  272. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  273. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  274. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  275. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  276. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  277. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  278. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  279. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  280. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  281. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  282. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  283. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  284. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  285. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  286. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/core.py +0 -0
  287. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  288. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  289. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  290. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  291. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  292. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  293. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  294. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  295. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  296. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  297. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  298. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  299. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/http.py +0 -0
  300. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  301. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  302. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  303. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  304. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  305. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  306. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/utils/__init__.py +0 -0
  307. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/utils/casing.py +0 -0
  308. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  309. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  310. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  311. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sources/utils/types.py +0 -0
  312. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sql/__init__.py +0 -0
  313. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sql/_util/__init__.py +0 -0
  314. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sql/_util/hashing.py +0 -0
  315. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  316. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sql/constants.py +0 -0
  317. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sql/exceptions.py +0 -0
  318. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sql/secrets.py +0 -0
  319. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sql/shared/__init__.py +0 -0
  320. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  321. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  322. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/sql/types.py +0 -0
  323. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/__init__.py +0 -0
  324. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/catalog_builder.py +0 -0
  325. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  326. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  327. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  328. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  329. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/mock_http/request.py +0 -0
  330. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/mock_http/response.py +0 -0
  331. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  332. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/state_builder.py +0 -0
  333. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/utils/__init__.py +0 -0
  334. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/utils/data.py +0 -0
  335. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  336. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  337. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/test/utils/reading.py +0 -0
  338. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/__init__.py +0 -0
  339. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  340. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/analytics_message.py +0 -0
  341. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/constants.py +0 -0
  342. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  343. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/event_timing.py +0 -0
  344. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  345. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  346. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/message_utils.py +0 -0
  347. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  348. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/print_buffer.py +0 -0
  349. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  350. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/slice_hasher.py +0 -0
  351. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  352. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.0}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  353. {airbyte_cdk-6.20.2.dev0 → airbyte_cdk-6.21.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.20.2.dev0
3
+ Version: 6.21.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
  """
@@ -56,8 +57,13 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
56
57
  token_expiry_is_time_of_expiration: bool = False
57
58
  access_token_name: Union[InterpolatedString, str] = "access_token"
58
59
  access_token_value: Optional[Union[InterpolatedString, str]] = None
60
+ client_id_name: Union[InterpolatedString, str] = "client_id"
61
+ client_secret_name: Union[InterpolatedString, str] = "client_secret"
59
62
  expires_in_name: Union[InterpolatedString, str] = "expires_in"
63
+ refresh_token_name: Union[InterpolatedString, str] = "refresh_token"
60
64
  refresh_request_body: Optional[Mapping[str, Any]] = None
65
+ refresh_request_headers: Optional[Mapping[str, Any]] = None
66
+ grant_type_name: Union[InterpolatedString, str] = "grant_type"
61
67
  grant_type: Union[InterpolatedString, str] = "refresh_token"
62
68
  message_repository: MessageRepository = NoopMessageRepository()
63
69
 
@@ -69,8 +75,15 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
69
75
  )
70
76
  else:
71
77
  self._token_refresh_endpoint = None
78
+ self._client_id_name = InterpolatedString.create(self.client_id_name, parameters=parameters)
72
79
  self._client_id = InterpolatedString.create(self.client_id, parameters=parameters)
80
+ self._client_secret_name = InterpolatedString.create(
81
+ self.client_secret_name, parameters=parameters
82
+ )
73
83
  self._client_secret = InterpolatedString.create(self.client_secret, parameters=parameters)
84
+ self._refresh_token_name = InterpolatedString.create(
85
+ self.refresh_token_name, parameters=parameters
86
+ )
74
87
  if self.refresh_token is not None:
75
88
  self._refresh_token: Optional[InterpolatedString] = InterpolatedString.create(
76
89
  self.refresh_token, parameters=parameters
@@ -83,10 +96,16 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
83
96
  self.expires_in_name = InterpolatedString.create(
84
97
  self.expires_in_name, parameters=parameters
85
98
  )
99
+ self.grant_type_name = InterpolatedString.create(
100
+ self.grant_type_name, parameters=parameters
101
+ )
86
102
  self.grant_type = InterpolatedString.create(self.grant_type, parameters=parameters)
87
103
  self._refresh_request_body = InterpolatedMapping(
88
104
  self.refresh_request_body or {}, parameters=parameters
89
105
  )
106
+ self._refresh_request_headers = InterpolatedMapping(
107
+ self.refresh_request_headers or {}, parameters=parameters
108
+ )
90
109
  self._token_expiry_date: pendulum.DateTime = (
91
110
  pendulum.parse(
92
111
  InterpolatedString.create(self.token_expiry_date, parameters=parameters).eval(
@@ -122,18 +141,27 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
122
141
  return refresh_token_endpoint
123
142
  return None
124
143
 
144
+ def get_client_id_name(self) -> str:
145
+ return self._client_id_name.eval(self.config) # type: ignore # eval returns a string in this context
146
+
125
147
  def get_client_id(self) -> str:
126
148
  client_id: str = self._client_id.eval(self.config)
127
149
  if not client_id:
128
150
  raise ValueError("OAuthAuthenticator was unable to evaluate client_id parameter")
129
151
  return client_id
130
152
 
153
+ def get_client_secret_name(self) -> str:
154
+ return self._client_secret_name.eval(self.config) # type: ignore # eval returns a string in this context
155
+
131
156
  def get_client_secret(self) -> str:
132
157
  client_secret: str = self._client_secret.eval(self.config)
133
158
  if not client_secret:
134
159
  raise ValueError("OAuthAuthenticator was unable to evaluate client_secret parameter")
135
160
  return client_secret
136
161
 
162
+ def get_refresh_token_name(self) -> str:
163
+ return self._refresh_token_name.eval(self.config) # type: ignore # eval returns a string in this context
164
+
137
165
  def get_refresh_token(self) -> Optional[str]:
138
166
  return None if self._refresh_token is None else str(self._refresh_token.eval(self.config))
139
167
 
@@ -146,12 +174,18 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
146
174
  def get_expires_in_name(self) -> str:
147
175
  return self.expires_in_name.eval(self.config) # type: ignore # eval returns a string in this context
148
176
 
177
+ def get_grant_type_name(self) -> str:
178
+ return self.grant_type_name.eval(self.config) # type: ignore # eval returns a string in this context
179
+
149
180
  def get_grant_type(self) -> str:
150
181
  return self.grant_type.eval(self.config) # type: ignore # eval returns a string in this context
151
182
 
152
183
  def get_refresh_request_body(self) -> Mapping[str, Any]:
153
184
  return self._refresh_request_body.eval(self.config)
154
185
 
186
+ def get_refresh_request_headers(self) -> Mapping[str, Any]:
187
+ return self._refresh_request_headers.eval(self.config)
188
+
155
189
  def get_token_expiry_date(self) -> pendulum.DateTime:
156
190
  return self._token_expiry_date # type: ignore # _token_expiry_date is a pendulum.DateTime. It is never None despite what mypy thinks
157
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
@@ -20,9 +20,6 @@ from airbyte_cdk.sources.declarative.extractors.record_filter import (
20
20
  ClientSideIncrementalRecordFilterDecorator,
21
21
  )
22
22
  from airbyte_cdk.sources.declarative.incremental.datetime_based_cursor import DatetimeBasedCursor
23
- from airbyte_cdk.sources.declarative.incremental.per_partition_with_global import (
24
- PerPartitionWithGlobalCursor,
25
- )
26
23
  from airbyte_cdk.sources.declarative.interpolation import InterpolatedString
27
24
  from airbyte_cdk.sources.declarative.manifest_declarative_source import ManifestDeclarativeSource
28
25
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
@@ -35,7 +32,7 @@ from airbyte_cdk.sources.declarative.parsers.model_to_component_factory import (
35
32
  ModelToComponentFactory,
36
33
  )
37
34
  from airbyte_cdk.sources.declarative.requesters import HttpRequester
38
- from airbyte_cdk.sources.declarative.retrievers import Retriever, SimpleRetriever
35
+ from airbyte_cdk.sources.declarative.retrievers import SimpleRetriever
39
36
  from airbyte_cdk.sources.declarative.stream_slicers.declarative_partition_generator import (
40
37
  DeclarativePartitionFactory,
41
38
  StreamSlicerPartitionGenerator,
@@ -233,7 +230,21 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
233
230
  stream_state=stream_state,
234
231
  )
235
232
 
236
- retriever = self._get_retriever(declarative_stream, stream_state)
233
+ retriever = declarative_stream.retriever
234
+
235
+ # This is an optimization so that we don't invoke any cursor or state management flows within the
236
+ # low-code framework because state management is handled through the ConcurrentCursor.
237
+ if declarative_stream and isinstance(retriever, SimpleRetriever):
238
+ # Also a temporary hack. In the legacy Stream implementation, as part of the read,
239
+ # set_initial_state() is called to instantiate incoming state on the cursor. Although we no
240
+ # longer rely on the legacy low-code cursor for concurrent checkpointing, low-code components
241
+ # like StopConditionPaginationStrategyDecorator and ClientSideIncrementalRecordFilterDecorator
242
+ # still rely on a DatetimeBasedCursor that is properly initialized with state.
243
+ if retriever.cursor:
244
+ retriever.cursor.set_initial_state(stream_state=stream_state)
245
+ # We zero it out here, but since this is a cursor reference, the state is still properly
246
+ # instantiated for the other components that reference it
247
+ retriever.cursor = None
237
248
 
238
249
  partition_generator = StreamSlicerPartitionGenerator(
239
250
  DeclarativePartitionFactory(
@@ -293,60 +304,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
293
304
  cursor=final_state_cursor,
294
305
  )
295
306
  )
296
- elif (
297
- incremental_sync_component_definition
298
- and incremental_sync_component_definition.get("type", "")
299
- == DatetimeBasedCursorModel.__name__
300
- and self._stream_supports_concurrent_partition_processing(
301
- declarative_stream=declarative_stream
302
- )
303
- and hasattr(declarative_stream.retriever, "stream_slicer")
304
- and isinstance(
305
- declarative_stream.retriever.stream_slicer, PerPartitionWithGlobalCursor
306
- )
307
- ):
308
- stream_state = state_manager.get_stream_state(
309
- stream_name=declarative_stream.name, namespace=declarative_stream.namespace
310
- )
311
- partition_router = declarative_stream.retriever.stream_slicer._partition_router
312
-
313
- perpartition_cursor = (
314
- self._constructor.create_concurrent_cursor_from_perpartition_cursor(
315
- state_manager=state_manager,
316
- model_type=DatetimeBasedCursorModel,
317
- component_definition=incremental_sync_component_definition,
318
- stream_name=declarative_stream.name,
319
- stream_namespace=declarative_stream.namespace,
320
- config=config or {},
321
- stream_state=stream_state,
322
- partition_router=partition_router,
323
- )
324
- )
325
-
326
- retriever = self._get_retriever(declarative_stream, stream_state)
327
-
328
- partition_generator = StreamSlicerPartitionGenerator(
329
- DeclarativePartitionFactory(
330
- declarative_stream.name,
331
- declarative_stream.get_json_schema(),
332
- retriever,
333
- self.message_repository,
334
- ),
335
- perpartition_cursor,
336
- )
337
-
338
- concurrent_streams.append(
339
- DefaultStream(
340
- partition_generator=partition_generator,
341
- name=declarative_stream.name,
342
- json_schema=declarative_stream.get_json_schema(),
343
- availability_strategy=AlwaysAvailableAvailabilityStrategy(),
344
- primary_key=get_primary_key_from_stream(declarative_stream.primary_key),
345
- cursor_field=perpartition_cursor.cursor_field.cursor_field_key,
346
- logger=self.logger,
347
- cursor=perpartition_cursor,
348
- )
349
- )
350
307
  else:
351
308
  synchronous_streams.append(declarative_stream)
352
309
  else:
@@ -437,27 +394,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
437
394
  return False
438
395
  return True
439
396
 
440
- def _get_retriever(
441
- self, declarative_stream: DeclarativeStream, stream_state: Mapping[str, Any]
442
- ) -> Retriever:
443
- retriever = declarative_stream.retriever
444
-
445
- # This is an optimization so that we don't invoke any cursor or state management flows within the
446
- # low-code framework because state management is handled through the ConcurrentCursor.
447
- if declarative_stream and isinstance(retriever, SimpleRetriever):
448
- # Also a temporary hack. In the legacy Stream implementation, as part of the read,
449
- # set_initial_state() is called to instantiate incoming state on the cursor. Although we no
450
- # longer rely on the legacy low-code cursor for concurrent checkpointing, low-code components
451
- # like StopConditionPaginationStrategyDecorator and ClientSideIncrementalRecordFilterDecorator
452
- # still rely on a DatetimeBasedCursor that is properly initialized with state.
453
- if retriever.cursor:
454
- retriever.cursor.set_initial_state(stream_state=stream_state)
455
- # We zero it out here, but since this is a cursor reference, the state is still properly
456
- # instantiated for the other components that reference it
457
- retriever.cursor = None
458
-
459
- return retriever
460
-
461
397
  @staticmethod
462
398
  def _select_streams(
463
399
  streams: List[AbstractStream], configured_catalog: ConfiguredAirbyteCatalog
@@ -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.
@@ -678,7 +695,7 @@ definitions:
678
695
  properties:
679
696
  type:
680
697
  type: string
681
- enum: [ CustomSchemaNormalization ]
698
+ enum: [CustomSchemaNormalization]
682
699
  class_name:
683
700
  title: Class Name
684
701
  description: Fully-qualified name of the class that will be implementing the custom normalization. The format is `source_<name>.<package>.<class_name>`.
@@ -1047,6 +1064,13 @@ definitions:
1047
1064
  type:
1048
1065
  type: string
1049
1066
  enum: [OAuthAuthenticator]
1067
+ client_id_name:
1068
+ title: Client ID Property Name
1069
+ description: The name of the property to use to refresh the `access_token`.
1070
+ type: string
1071
+ default: "client_id"
1072
+ examples:
1073
+ - custom_app_id
1050
1074
  client_id:
1051
1075
  title: Client ID
1052
1076
  description: The OAuth client ID. Fill it in the user inputs.
@@ -1054,6 +1078,13 @@ definitions:
1054
1078
  examples:
1055
1079
  - "{{ config['client_id }}"
1056
1080
  - "{{ config['credentials']['client_id }}"
1081
+ client_secret_name:
1082
+ title: Client Secret Property Name
1083
+ description: The name of the property to use to refresh the `access_token`.
1084
+ type: string
1085
+ default: "client_secret"
1086
+ examples:
1087
+ - custom_app_secret
1057
1088
  client_secret:
1058
1089
  title: Client Secret
1059
1090
  description: The OAuth client secret. Fill it in the user inputs.
@@ -1061,6 +1092,13 @@ definitions:
1061
1092
  examples:
1062
1093
  - "{{ config['client_secret }}"
1063
1094
  - "{{ config['credentials']['client_secret }}"
1095
+ refresh_token_name:
1096
+ title: Refresh Token Property Name
1097
+ description: The name of the property to use to refresh the `access_token`.
1098
+ type: string
1099
+ default: "refresh_token"
1100
+ examples:
1101
+ - custom_app_refresh_value
1064
1102
  refresh_token:
1065
1103
  title: Refresh Token
1066
1104
  description: Credential artifact used to get a new access token.
@@ -1094,6 +1132,13 @@ definitions:
1094
1132
  default: "expires_in"
1095
1133
  examples:
1096
1134
  - expires_in
1135
+ grant_type_name:
1136
+ title: Grant Type Property Name
1137
+ description: The name of the property to use to refresh the `access_token`.
1138
+ type: string
1139
+ default: "grant_type"
1140
+ examples:
1141
+ - custom_grant_type
1097
1142
  grant_type:
1098
1143
  title: Grant Type
1099
1144
  description: Specifies the OAuth2 grant type. If set to refresh_token, the refresh_token needs to be provided as well. For client_credentials, only client id and secret are required. Other grant types are not officially supported.
@@ -1111,6 +1156,14 @@ definitions:
1111
1156
  - applicationId: "{{ config['application_id'] }}"
1112
1157
  applicationSecret: "{{ config['application_secret'] }}"
1113
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"
1114
1167
  scopes:
1115
1168
  title: Scopes
1116
1169
  description: List of scopes that should be granted to the access token.
@@ -1460,6 +1513,7 @@ definitions:
1460
1513
  anyOf:
1461
1514
  - "$ref": "#/definitions/JsonDecoder"
1462
1515
  - "$ref": "#/definitions/XmlDecoder"
1516
+ - "$ref": "#/definitions/CompositeRawDecoder"
1463
1517
  $parameters:
1464
1518
  type: object
1465
1519
  additionalProperties: true
@@ -1735,6 +1789,10 @@ definitions:
1735
1789
  - type: array
1736
1790
  items:
1737
1791
  type: string
1792
+ condition:
1793
+ type: string
1794
+ interpolation_context:
1795
+ - raw_schema
1738
1796
  SchemaTypeIdentifier:
1739
1797
  title: Schema Type Identifier
1740
1798
  description: (This component is experimental. Use at your own risk.) Identifies schema details for dynamic schema extraction and processing.
@@ -2014,6 +2072,26 @@ definitions:
2014
2072
  $parameters:
2015
2073
  type: object
2016
2074
  additionalProperties: true
2075
+ ZipfileDecoder:
2076
+ title: Zipfile Decoder
2077
+ description: Decoder for response data that is returned as zipfile(s).
2078
+ type: object
2079
+ additionalProperties: true
2080
+ required:
2081
+ - type
2082
+ - parser
2083
+ properties:
2084
+ type:
2085
+ type: string
2086
+ enum: [ZipfileDecoder]
2087
+ parser:
2088
+ title: Parser
2089
+ description: Parser to parse the decompressed data from the zipfile(s).
2090
+ anyOf:
2091
+ - "$ref": "#/definitions/GzipParser"
2092
+ - "$ref": "#/definitions/JsonParser"
2093
+ - "$ref": "#/definitions/JsonLineParser"
2094
+ - "$ref": "#/definitions/CsvParser"
2017
2095
  ListPartitionRouter:
2018
2096
  title: List Partition Router
2019
2097
  description: A Partition router that specifies a list of attributes where each attribute describes a portion of the complete data set for a stream. During a sync, each value is iterated over and can be used as input to outbound API requests.
@@ -2204,15 +2282,15 @@ definitions:
2204
2282
  Pertains to the fields defined by the connector relating to the OAuth flow.
2205
2283
 
2206
2284
  Interpolation capabilities:
2207
- - The variables placeholders are declared as `{my_var}`.
2208
- - The nested resolution variables like `{{my_nested_var}}` is allowed as well.
2285
+ - The variables placeholders are declared as `{{my_var}}`.
2286
+ - The nested resolution variables like `{{ {{my_nested_var}} }}` is allowed as well.
2209
2287
 
2210
2288
  - The allowed interpolation context is:
2211
- + base64Encoder - encode to `base64`, {base64Encoder:{my_var_a}:{my_var_b}}
2212
- + base64Decorer - decode from `base64` encoded string, {base64Decoder:{my_string_variable_or_string_value}}
2213
- + urlEncoder - encode the input string to URL-like format, {urlEncoder:https://test.host.com/endpoint}
2214
- + urlDecorer - decode the input url-encoded string into text format, {urlDecoder:https%3A%2F%2Fairbyte.io}
2215
- + codeChallengeS256 - get the `codeChallenge` encoded value to provide additional data-provider specific authorisation values, {codeChallengeS256:{state_value}}
2289
+ + base64Encoder - encode to `base64`, {{ {{my_var_a}}:{{my_var_b}} | base64Encoder }}
2290
+ + base64Decorer - decode from `base64` encoded string, {{ {{my_string_variable_or_string_value}} | base64Decoder }}
2291
+ + urlEncoder - encode the input string to URL-like format, {{ https://test.host.com/endpoint | urlEncoder}}
2292
+ + urlDecorer - decode the input url-encoded string into text format, {{ urlDecoder:https%3A%2F%2Fairbyte.io | urlDecoder}}
2293
+ + codeChallengeS256 - get the `codeChallenge` encoded value to provide additional data-provider specific authorisation values, {{ {{state_value}} | codeChallengeS256 }}
2216
2294
 
2217
2295
  Examples:
2218
2296
  - The TikTok Marketing DeclarativeOAuth spec:
@@ -2221,12 +2299,12 @@ definitions:
2221
2299
  "type": "object",
2222
2300
  "additionalProperties": false,
2223
2301
  "properties": {
2224
- "consent_url": "https://ads.tiktok.com/marketing_api/auth?{client_id_key}={{client_id_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}&{state_key}={{state_key}}",
2302
+ "consent_url": "https://ads.tiktok.com/marketing_api/auth?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{ {{redirect_uri_value}} | urlEncoder}}&{{state_key}}={{state_value}}",
2225
2303
  "access_token_url": "https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/",
2226
2304
  "access_token_params": {
2227
- "{auth_code_key}": "{{auth_code_key}}",
2228
- "{client_id_key}": "{{client_id_key}}",
2229
- "{client_secret_key}": "{{client_secret_key}}"
2305
+ "{{ auth_code_key }}": "{{ auth_code_value }}",
2306
+ "{{ client_id_key }}": "{{ client_id_value }}",
2307
+ "{{ client_secret_key }}": "{{ client_secret_value }}"
2230
2308
  },
2231
2309
  "access_token_headers": {
2232
2310
  "Content-Type": "application/json",
@@ -2244,7 +2322,6 @@ definitions:
2244
2322
  required:
2245
2323
  - consent_url
2246
2324
  - access_token_url
2247
- - extract_output
2248
2325
  properties:
2249
2326
  consent_url:
2250
2327
  title: Consent URL
@@ -2253,8 +2330,8 @@ definitions:
2253
2330
  The DeclarativeOAuth Specific string URL string template to initiate the authentication.
2254
2331
  The placeholders are replaced during the processing to provide neccessary values.
2255
2332
  examples:
2256
- - https://domain.host.com/marketing_api/auth?{client_id_key}={{client_id_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}&{state_key}={{state_key}}
2257
- - https://endpoint.host.com/oauth2/authorize?{client_id_key}={{client_id_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}&{scope_key}={urlEncoder:{{scope_key}}}&{state_key}={{state_key}}&subdomain={subdomain}
2333
+ - https://domain.host.com/marketing_api/auth?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{{{redirect_uri_value}} | urlEncoder}}&{{state_key}}={{state_value}}
2334
+ - https://endpoint.host.com/oauth2/authorize?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{{{redirect_uri_value}} | urlEncoder}}&{{scope_key}}={{{{scope_value}} | urlEncoder}}&{{state_key}}={{state_value}}&subdomain={{subdomain}}
2258
2335
  scope:
2259
2336
  title: Scopes
2260
2337
  type: string
@@ -2269,7 +2346,7 @@ definitions:
2269
2346
  The DeclarativeOAuth Specific URL templated string to obtain the `access_token`, `refresh_token` etc.
2270
2347
  The placeholders are replaced during the processing to provide neccessary values.
2271
2348
  examples:
2272
- - https://auth.host.com/oauth2/token?{client_id_key}={{client_id_key}}&{client_secret_key}={{client_secret_key}}&{auth_code_key}={{auth_code_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}
2349
+ - https://auth.host.com/oauth2/token?{{client_id_key}}={{client_id_value}}&{{client_secret_key}}={{client_secret_value}}&{{auth_code_key}}={{auth_code_value}}&{{redirect_uri_key}}={{{{redirect_uri_value}} | urlEncoder}}
2273
2350
  access_token_headers:
2274
2351
  title: Access Token Headers
2275
2352
  type: object
@@ -2278,7 +2355,7 @@ definitions:
2278
2355
  The DeclarativeOAuth Specific optional headers to inject while exchanging the `auth_code` to `access_token` during `completeOAuthFlow` step.
2279
2356
  examples:
2280
2357
  - {
2281
- "Authorization": "Basic {base64Encoder:{client_id}:{client_secret}}",
2358
+ "Authorization": "Basic {{ {{ client_id_value }}:{{ client_secret_value }} | base64Encoder }}",
2282
2359
  }
2283
2360
  access_token_params:
2284
2361
  title: Access Token Query Params (Json Encoded)
@@ -2289,9 +2366,9 @@ definitions:
2289
2366
  When this property is provided, the query params will be encoded as `Json` and included in the outgoing API request.
2290
2367
  examples:
2291
2368
  - {
2292
- "{auth_code_key}": "{{auth_code_key}}",
2293
- "{client_id_key}": "{{client_id_key}}",
2294
- "{client_secret_key}": "{{client_secret_key}}",
2369
+ "{{ auth_code_key }}": "{{ auth_code_value }}",
2370
+ "{{ client_id_key }}": "{{ client_id_value }}",
2371
+ "{{ client_secret_key }}": "{{ client_secret_value }}",
2295
2372
  }
2296
2373
  extract_output:
2297
2374
  title: Extract Output
@@ -2843,6 +2920,7 @@ definitions:
2843
2920
  - "$ref": "#/definitions/XmlDecoder"
2844
2921
  - "$ref": "#/definitions/GzipJsonDecoder"
2845
2922
  - "$ref": "#/definitions/CompositeRawDecoder"
2923
+ - "$ref": "#/definitions/ZipfileDecoder"
2846
2924
  $parameters:
2847
2925
  type: object
2848
2926
  additionalProperties: true
@@ -2859,6 +2937,7 @@ definitions:
2859
2937
  parser:
2860
2938
  anyOf:
2861
2939
  - "$ref": "#/definitions/GzipParser"
2940
+ - "$ref": "#/definitions/JsonParser"
2862
2941
  - "$ref": "#/definitions/JsonLineParser"
2863
2942
  - "$ref": "#/definitions/CsvParser"
2864
2943
  # PARSERS
@@ -2875,6 +2954,20 @@ definitions:
2875
2954
  anyOf:
2876
2955
  - "$ref": "#/definitions/JsonLineParser"
2877
2956
  - "$ref": "#/definitions/CsvParser"
2957
+ - "$ref": "#/definitions/JsonParser"
2958
+ JsonParser:
2959
+ title: JsonParser
2960
+ description: Parser used for parsing str, bytes, or bytearray data and returning data in a dictionary format.
2961
+ type: object
2962
+ required:
2963
+ - type
2964
+ properties:
2965
+ type:
2966
+ type: string
2967
+ enum: [JsonParser]
2968
+ encoding:
2969
+ type: string
2970
+ default: utf-8
2878
2971
  JsonLineParser:
2879
2972
  type: object
2880
2973
  required:
@@ -2977,6 +3070,11 @@ definitions:
2977
3070
  anyOf:
2978
3071
  - "$ref": "#/definitions/CustomRequester"
2979
3072
  - "$ref": "#/definitions/HttpRequester"
3073
+ url_requester:
3074
+ description: Requester component that describes how to prepare HTTP requests to send to the source API to extract the url from polling response by the completed async job.
3075
+ anyOf:
3076
+ - "$ref": "#/definitions/CustomRequester"
3077
+ - "$ref": "#/definitions/HttpRequester"
2980
3078
  download_requester:
2981
3079
  description: Requester component that describes how to prepare HTTP requests to send to the source API to download the data provided by the completed async job.
2982
3080
  anyOf:
@@ -3021,6 +3119,8 @@ definitions:
3021
3119
  - "$ref": "#/definitions/IterableDecoder"
3022
3120
  - "$ref": "#/definitions/XmlDecoder"
3023
3121
  - "$ref": "#/definitions/GzipJsonDecoder"
3122
+ - "$ref": "#/definitions/CompositeRawDecoder"
3123
+ - "$ref": "#/definitions/ZipfileDecoder"
3024
3124
  download_decoder:
3025
3125
  title: Download Decoder
3026
3126
  description: Component decoding the download response so records can be extracted.
@@ -3031,6 +3131,8 @@ definitions:
3031
3131
  - "$ref": "#/definitions/IterableDecoder"
3032
3132
  - "$ref": "#/definitions/XmlDecoder"
3033
3133
  - "$ref": "#/definitions/GzipJsonDecoder"
3134
+ - "$ref": "#/definitions/CompositeRawDecoder"
3135
+ - "$ref": "#/definitions/ZipfileDecoder"
3034
3136
  $parameters:
3035
3137
  type: object
3036
3138
  additionalProperties: true
@@ -2,7 +2,12 @@
2
2
  # Copyright (c) 2023 Airbyte, Inc., all rights reserved.
3
3
  #
4
4
 
5
- from airbyte_cdk.sources.declarative.decoders.composite_raw_decoder import CompositeRawDecoder
5
+ from airbyte_cdk.sources.declarative.decoders.composite_raw_decoder import (
6
+ CompositeRawDecoder,
7
+ GzipParser,
8
+ JsonParser,
9
+ Parser,
10
+ )
6
11
  from airbyte_cdk.sources.declarative.decoders.decoder import Decoder
7
12
  from airbyte_cdk.sources.declarative.decoders.json_decoder import (
8
13
  GzipJsonDecoder,
@@ -15,15 +20,18 @@ from airbyte_cdk.sources.declarative.decoders.pagination_decoder_decorator impor
15
20
  PaginationDecoderDecorator,
16
21
  )
17
22
  from airbyte_cdk.sources.declarative.decoders.xml_decoder import XmlDecoder
23
+ from airbyte_cdk.sources.declarative.decoders.zipfile_decoder import ZipfileDecoder
18
24
 
19
25
  __all__ = [
20
26
  "Decoder",
21
27
  "CompositeRawDecoder",
22
28
  "JsonDecoder",
29
+ "JsonParser",
23
30
  "JsonlDecoder",
24
31
  "IterableDecoder",
25
32
  "GzipJsonDecoder",
26
33
  "NoopDecoder",
27
34
  "PaginationDecoderDecorator",
28
35
  "XmlDecoder",
36
+ "ZipfileDecoder",
29
37
  ]