airbyte-cdk 6.59.0__tar.gz → 6.59.2__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 (431) hide show
  1. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/manifest_migrations/README.md +4 -3
  3. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/manifest_migrations/migrations/registry.yaml +1 -1
  4. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +105 -20
  5. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +63 -35
  6. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/entrypoint_wrapper.py +0 -1
  7. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/models/scenario.py +9 -0
  8. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/standard_tests/connector_base.py +0 -8
  9. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/standard_tests/docker_base.py +62 -26
  10. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/standard_tests/source_base.py +7 -1
  11. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/connector_paths.py +1 -2
  12. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/pyproject.toml +1 -1
  13. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/LICENSE.txt +0 -0
  14. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/LICENSE_SHORT +0 -0
  15. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/README.md +0 -0
  16. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/__init__.py +0 -0
  17. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/cli/__init__.py +0 -0
  18. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/cli/airbyte_cdk/__init__.py +0 -0
  19. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/cli/airbyte_cdk/_connector.py +0 -0
  20. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/cli/airbyte_cdk/_image.py +0 -0
  21. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/cli/airbyte_cdk/_manifest.py +0 -0
  22. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/cli/airbyte_cdk/_secrets.py +0 -0
  23. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/cli/airbyte_cdk/_version.py +0 -0
  24. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/cli/airbyte_cdk/exceptions.py +0 -0
  25. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/cli/source_declarative_manifest/README.md +0 -0
  26. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  27. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  28. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  29. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/config_observation.py +0 -0
  30. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/connector.py +0 -0
  31. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/connector_builder/README.md +0 -0
  32. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/connector_builder/__init__.py +0 -0
  33. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  34. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/connector_builder/main.py +0 -0
  35. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/connector_builder/models.py +0 -0
  36. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  37. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  38. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  39. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
  40. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  41. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/destinations/__init__.py +0 -0
  42. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/destinations/destination.py +0 -0
  43. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  44. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  45. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  46. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  47. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  48. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  49. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  50. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  51. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  52. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/entrypoint.py +0 -0
  53. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/exception_handler.py +0 -0
  54. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/logger.py +0 -0
  55. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/manifest_migrations/__init__.py +0 -0
  56. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/manifest_migrations/exceptions.py +0 -0
  57. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/manifest_migrations/manifest_migration.py +0 -0
  58. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/manifest_migrations/migration_handler.py +0 -0
  59. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/manifest_migrations/migrations/__init__.py +0 -0
  60. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/manifest_migrations/migrations/http_requester_path_to_url.py +0 -0
  61. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/manifest_migrations/migrations/http_requester_request_body_json_data_to_request_body.py +0 -0
  62. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py +0 -0
  63. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/manifest_migrations/migrations_registry.py +0 -0
  64. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/models/__init__.py +0 -0
  65. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  66. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  67. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/models/connector_metadata.py +0 -0
  68. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/models/well_known_types.py +0 -0
  69. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/py.typed +0 -0
  70. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/__init__.py +0 -0
  71. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/abstract_source.py +0 -0
  72. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  73. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  74. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  75. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  76. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  77. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  78. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  79. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/config.py +0 -0
  80. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  81. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  82. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  83. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  84. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  85. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  86. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  87. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  88. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  89. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  90. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  91. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  92. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  93. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  94. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  95. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  96. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  97. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  98. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  99. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  100. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  101. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  102. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  103. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  104. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  105. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  106. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  107. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  108. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  109. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  110. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  111. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  112. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  113. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  114. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  115. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  116. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  117. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  118. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  119. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  120. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  121. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  122. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  123. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  124. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  125. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  126. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  127. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  128. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  129. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  130. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  131. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  132. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  133. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  134. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  135. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  136. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  137. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  138. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  139. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  140. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  141. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  142. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  143. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  144. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  145. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  146. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  147. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  148. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/models/base_model_with_deprecations.py +0 -0
  149. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  150. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  151. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  152. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  153. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/parsers/manifest_normalizer.py +0 -0
  154. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  155. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +0 -0
  156. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  157. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  158. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  159. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
  160. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  161. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  162. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  163. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  164. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  165. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  166. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  167. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  168. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  169. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  170. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  171. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  172. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  173. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  174. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  175. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  176. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  177. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  178. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  179. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  180. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  181. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  182. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  183. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  184. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  185. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  186. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  187. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  188. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  189. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  190. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  191. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
  192. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
  193. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
  194. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
  195. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
  196. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
  197. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
  198. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  199. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  200. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  201. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  202. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  203. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  204. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  205. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  206. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  207. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  208. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  209. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  210. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  211. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  212. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/resolvers/parametrized_components_resolver.py +0 -0
  213. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  214. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  215. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/retrievers/file_uploader/__init__.py +0 -0
  216. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/retrievers/file_uploader/connector_builder_file_uploader.py +0 -0
  217. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/retrievers/file_uploader/default_file_uploader.py +0 -0
  218. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_uploader.py +0 -0
  219. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_writer.py +0 -0
  220. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/retrievers/file_uploader/local_file_system_file_writer.py +0 -0
  221. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/retrievers/file_uploader/noop_file_writer.py +0 -0
  222. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  223. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  224. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  225. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/schema/composite_schema_loader.py +0 -0
  226. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  227. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  228. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  229. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  230. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  231. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  232. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  233. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  234. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  235. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  236. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer_test_read_decorator.py +0 -0
  237. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  238. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  239. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/config_transformations/__init__.py +0 -0
  240. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/config_transformations/add_fields.py +0 -0
  241. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/config_transformations/config_transformation.py +0 -0
  242. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/config_transformations/remap_field.py +0 -0
  243. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/config_transformations/remove_fields.py +0 -0
  244. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  245. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  246. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  247. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  248. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  249. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  250. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  251. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/types.py +0 -0
  252. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/validators/__init__.py +0 -0
  253. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/validators/dpath_validator.py +0 -0
  254. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/validators/predicate_validator.py +0 -0
  255. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/validators/validate_adheres_to_schema.py +0 -0
  256. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/validators/validation_strategy.py +0 -0
  257. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/validators/validator.py +0 -0
  258. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  259. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/README.md +0 -0
  260. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  261. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  262. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  263. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  264. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  265. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  266. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  267. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  268. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  269. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  270. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  271. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  272. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  273. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  274. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  275. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  276. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  277. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  278. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  279. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
  280. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  281. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_record_data.py +0 -0
  282. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  283. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  284. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  285. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  286. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  287. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  288. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  289. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  290. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  291. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  292. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  293. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  294. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  295. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  296. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  297. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  298. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  299. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  300. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  301. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  302. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  303. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  304. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  305. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  306. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  307. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  308. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
  309. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
  310. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/file_based/types.py +0 -0
  311. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/http_config.py +0 -0
  312. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/http_logger.py +0 -0
  313. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/message/__init__.py +0 -0
  314. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/message/repository.py +0 -0
  315. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/source.py +0 -0
  316. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  317. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/__init__.py +0 -0
  318. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  319. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  320. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  321. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  322. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  323. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  324. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  325. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  326. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  327. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  328. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  329. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  330. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  331. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  332. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  333. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  334. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  335. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  336. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  337. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  338. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  339. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  340. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  341. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  342. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  343. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  344. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  345. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  346. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  347. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  348. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  349. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/core.py +0 -0
  350. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  351. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  352. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  353. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  354. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  355. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  356. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  357. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  358. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  359. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  360. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  361. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  362. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/http.py +0 -0
  363. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  364. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  365. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  366. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  367. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  368. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  369. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  370. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  371. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  372. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/types.py +0 -0
  373. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/utils/__init__.py +0 -0
  374. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/utils/casing.py +0 -0
  375. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/utils/files_directory.py +0 -0
  376. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  377. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  378. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  379. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/utils/transform.py +0 -0
  380. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sources/utils/types.py +0 -0
  381. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sql/__init__.py +0 -0
  382. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sql/_util/__init__.py +0 -0
  383. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sql/_util/hashing.py +0 -0
  384. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  385. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sql/constants.py +0 -0
  386. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sql/exceptions.py +0 -0
  387. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sql/secrets.py +0 -0
  388. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sql/shared/__init__.py +0 -0
  389. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  390. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  391. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/sql/types.py +0 -0
  392. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/__init__.py +0 -0
  393. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/catalog_builder.py +0 -0
  394. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  395. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  396. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  397. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/mock_http/request.py +0 -0
  398. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/mock_http/response.py +0 -0
  399. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  400. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/models/__init__.py +0 -0
  401. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/models/outcome.py +0 -0
  402. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/standard_tests/__init__.py +0 -0
  403. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/standard_tests/_job_runner.py +0 -0
  404. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/standard_tests/declarative_sources.py +0 -0
  405. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/standard_tests/destination_base.py +0 -0
  406. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/standard_tests/pytest_hooks.py +0 -0
  407. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/standard_tests/util.py +0 -0
  408. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/state_builder.py +0 -0
  409. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/utils/__init__.py +0 -0
  410. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/utils/data.py +0 -0
  411. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  412. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  413. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/test/utils/reading.py +0 -0
  414. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/__init__.py +0 -0
  415. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  416. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/analytics_message.py +0 -0
  417. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/constants.py +0 -0
  418. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  419. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  420. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/docker.py +0 -0
  421. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/event_timing.py +0 -0
  422. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  423. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  424. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/message_utils.py +0 -0
  425. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  426. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/print_buffer.py +0 -0
  427. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  428. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/slice_hasher.py +0 -0
  429. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  430. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  431. {airbyte_cdk-6.59.0 → airbyte_cdk-6.59.2}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 6.59.0
3
+ Version: 6.59.2
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -20,14 +20,15 @@ This directory contains the logic and registry for manifest migrations in the Ai
20
20
 
21
21
  3. **Register the Migration:**
22
22
  - Open `migrations/registry.yaml`.
23
- - Add an entry under the appropriate version, or create a new version section if needed.
24
- - Version can be: "*", "==6.48.3", "~=1.2", ">=1.0.0,<2.0.0", "6.48.3"
23
+ - Add an entry under the appropriate version, or create a new version section if needed.
24
+ - Version can be: "*", "==6.48.3", "~=1.2", ">=1.0.0,<2.0.0", "6.48.3"
25
25
  - Each migration entry should include:
26
26
  - `name`: The filename (without `.py`)
27
27
  - `order`: The order in which this migration should be applied for the version
28
28
  - `description`: A short description of the migration
29
29
 
30
30
  Example:
31
+
31
32
  ```yaml
32
33
  manifest_migrations:
33
34
  - version: 6.45.2
@@ -71,4 +72,4 @@ class ExampleMigration(ManifestMigration):
71
72
 
72
73
  ---
73
74
 
74
- For more details, see the docstrings in `manifest_migration.py` and the examples in the `migrations/` folder.
75
+ For more details, see the docstrings in `manifest_migration.py` and the examples in the `migrations/` folder.
@@ -4,7 +4,7 @@
4
4
 
5
5
  manifest_migrations:
6
6
  - version: "*"
7
- migrations:
7
+ migrations:
8
8
  - name: http_requester_url_base_to_url
9
9
  order: 1
10
10
  description: |
@@ -940,14 +940,53 @@ definitions:
940
940
  - "{{ config['record_cursor'] }}"
941
941
  cursor_datetime_formats:
942
942
  title: Cursor Datetime Formats
943
- description: The possible formats for the cursor field, in order of preference. The first format that matches the cursor field value will be used to parse it. If not provided, the `datetime_format` will be used.
944
943
  type: array
945
944
  items:
946
945
  type: string
947
- examples:
948
- - "%Y-%m-%dT%H:%M:%S.%f%z"
949
- - "%Y-%m-%d"
950
- - "%s"
946
+ description: |
947
+ The possible formats for the cursor field, in order of preference. The first format that matches the cursor field value will be used to parse it. If not provided, the Outgoing Datetime Format will be used.
948
+ Use placeholders starting with "%" to describe the format the API is using. The following placeholders are available:
949
+ * **%s**: Epoch unix timestamp - `1686218963`
950
+ * **%s_as_float**: Epoch unix timestamp in seconds as float with microsecond precision - `1686218963.123456`
951
+ * **%ms**: Epoch unix timestamp - `1686218963123`
952
+ * **%a**: Weekday (abbreviated) - `Sun`
953
+ * **%A**: Weekday (full) - `Sunday`
954
+ * **%w**: Weekday (decimal) - `0` (Sunday), `6` (Saturday)
955
+ * **%d**: Day of the month (zero-padded) - `01`, `02`, ..., `31`
956
+ * **%b**: Month (abbreviated) - `Jan`
957
+ * **%B**: Month (full) - `January`
958
+ * **%m**: Month (zero-padded) - `01`, `02`, ..., `12`
959
+ * **%y**: Year (without century, zero-padded) - `00`, `01`, ..., `99`
960
+ * **%Y**: Year (with century) - `0001`, `0002`, ..., `9999`
961
+ * **%H**: Hour (24-hour, zero-padded) - `00`, `01`, ..., `23`
962
+ * **%I**: Hour (12-hour, zero-padded) - `01`, `02`, ..., `12`
963
+ * **%p**: AM/PM indicator
964
+ * **%M**: Minute (zero-padded) - `00`, `01`, ..., `59`
965
+ * **%S**: Second (zero-padded) - `00`, `01`, ..., `59`
966
+ * **%f**: Microsecond (zero-padded to 6 digits) - `000000`, `000001`, ..., `999999`
967
+ * **%_ms**: Millisecond (zero-padded to 3 digits) - `000`, `001`, ..., `999`
968
+ * **%z**: UTC offset - `(empty)`, `+0000`, `-04:00`
969
+ * **%Z**: Time zone name - `(empty)`, `UTC`, `GMT`
970
+ * **%j**: Day of the year (zero-padded) - `001`, `002`, ..., `366`
971
+ * **%U**: Week number of the year (Sunday as first day) - `00`, `01`, ..., `53`
972
+ * **%W**: Week number of the year (Monday as first day) - `00`, `01`, ..., `53`
973
+ * **%c**: Date and time representation - `Tue Aug 16 21:30:00 1988`
974
+ * **%x**: Date representation - `08/16/1988`
975
+ * **%X**: Time representation - `21:30:00`
976
+ * **%%**: Literal '%' character
977
+
978
+ Some placeholders depend on the locale of the underlying system - in most cases this locale is configured as en/US. For more information see the [Python documentation](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes).
979
+ examples:
980
+ - "%Y-%m-%d"
981
+ - "%Y-%m-%d %H:%M:%S"
982
+ - "%Y-%m-%dT%H:%M:%S"
983
+ - "%Y-%m-%dT%H:%M:%SZ"
984
+ - "%Y-%m-%dT%H:%M:%S%z"
985
+ - "%Y-%m-%dT%H:%M:%S.%fZ"
986
+ - "%Y-%m-%dT%H:%M:%S.%f%z"
987
+ - "%Y-%m-%d %H:%M:%S.%f+00:00"
988
+ - "%s"
989
+ - "%ms"
951
990
  start_datetime:
952
991
  title: Start Datetime
953
992
  description: The datetime that determines the earliest record that should be synced.
@@ -1024,33 +1063,45 @@ definitions:
1024
1063
  - "%s_as_float"
1025
1064
  cursor_granularity:
1026
1065
  title: Cursor Granularity
1027
- description:
1066
+ description: |
1028
1067
  Smallest increment the datetime_format has (ISO 8601 duration) that is used to ensure the start of a slice does not overlap with the end of the previous one, e.g. for %Y-%m-%d the granularity should
1029
1068
  be P1D, for %Y-%m-%dT%H:%M:%SZ the granularity should be PT1S. Given this field is provided, `step` needs to be provided as well.
1069
+ * **PT0.000001S**: 1 microsecond
1070
+ * **PT0.001S**: 1 millisecond
1071
+ * **PT1S**: 1 second
1072
+ * **PT1M**: 1 minute
1073
+ * **PT1H**: 1 hour
1074
+ * **P1D**: 1 day
1030
1075
  type: string
1031
1076
  examples:
1032
1077
  - "PT1S"
1033
1078
  is_data_feed:
1034
- title: Whether the target API is formatted as a data feed
1079
+ title: Data Feed API
1035
1080
  description: A data feed API is an API that does not allow filtering and paginates the content from the most recent to the least recent. Given this, the CDK needs to know when to stop paginating and this field will generate a stop condition for pagination.
1036
1081
  type: boolean
1037
1082
  is_client_side_incremental:
1038
- title: Whether the target API does not support filtering and returns all data (the cursor filters records in the client instead of the API side)
1039
- description: If the target API endpoint does not take cursor values to filter records and returns all records anyway, the connector with this cursor will filter out records locally, and only emit new records from the last sync, hence incremental. This means that all records would be read from the API, but only new records will be emitted to the destination.
1083
+ title: Client-side Incremental Filtering
1084
+ description: Set to True if the target API endpoint does not take cursor values to filter records and returns all records anyway. This will cause the connector to filter out records locally, and only emit new records from the last sync, hence incremental. This means that all records would be read from the API, but only new records will be emitted to the destination.
1040
1085
  type: boolean
1041
1086
  is_compare_strictly:
1042
- title: Whether to skip requests if the start time equals the end time
1043
- description: Set to True if the target API does not accept queries where the start time equal the end time.
1087
+ title: Strict Start-End Time Comparison
1088
+ description: Set to True if the target API does not accept queries where the start time equal the end time. This will cause those requests to be skipped.
1044
1089
  type: boolean
1045
1090
  default: False
1046
1091
  global_substream_cursor:
1047
- title: Whether to store cursor as one value instead of per partition
1048
- description: This setting optimizes performance when the parent stream has thousands of partitions by storing the cursor as a single value rather than per partition. Notably, the substream state is updated only at the end of the sync, which helps prevent data loss in case of a sync failure. See more info in the [docs](https://docs.airbyte.com/connector-development/config-based/understanding-the-yaml-file/incremental-syncs).
1092
+ title: Global Substream Cursor
1093
+ description: Setting to True causes the connector to store the cursor as one value, instead of per-partition. This setting optimizes performance when the parent stream has thousands of partitions. Notably, the substream state is updated only at the end of the sync, which helps prevent data loss in case of a sync failure. See more info in the [docs](https://docs.airbyte.com/connector-development/config-based/understanding-the-yaml-file/incremental-syncs).
1049
1094
  type: boolean
1050
1095
  default: false
1051
1096
  lookback_window:
1052
1097
  title: Lookback Window
1053
- description: Time interval before the start_datetime to read data for, e.g. P1M for looking back one month.
1098
+ description: |
1099
+ Time interval (ISO8601 duration) before the start_datetime to read data for, e.g. P1M for looking back one month.
1100
+ * **PT1H**: 1 hour
1101
+ * **P1D**: 1 day
1102
+ * **P1W**: 1 week
1103
+ * **P1M**: 1 month
1104
+ * **P1Y**: 1 year
1054
1105
  type: string
1055
1106
  interpolation_context:
1056
1107
  - config
@@ -1071,7 +1122,13 @@ definitions:
1071
1122
  - "starting_time"
1072
1123
  step:
1073
1124
  title: Step
1074
- description: The size of the time window (ISO8601 duration). Given this field is provided, `cursor_granularity` needs to be provided as well.
1125
+ description: |
1126
+ The size of the time window (ISO8601 duration). Given this field is provided, `cursor_granularity` needs to be provided as well.
1127
+ * **PT1H**: 1 hour
1128
+ * **P1D**: 1 day
1129
+ * **P1W**: 1 week
1130
+ * **P1M**: 1 month
1131
+ * **P1Y**: 1 year
1075
1132
  type: string
1076
1133
  examples:
1077
1134
  - "P1W"
@@ -1095,6 +1152,8 @@ definitions:
1095
1152
  title: Secret Key
1096
1153
  type: string
1097
1154
  description: Secret used to sign the JSON web token.
1155
+ interpolation_context:
1156
+ - config
1098
1157
  examples:
1099
1158
  - "{{ config['secret_key'] }}"
1100
1159
  base64_encode_secret_key:
@@ -1224,8 +1283,10 @@ definitions:
1224
1283
  title: Client ID
1225
1284
  description: The OAuth client ID. Fill it in the user inputs.
1226
1285
  type: string
1286
+ interpolation_context:
1287
+ - config
1227
1288
  examples:
1228
- - "{{ config['client_id }}"
1289
+ - "{{ config['client_id'] }}"
1229
1290
  - "{{ config['credentials']['client_id }}"
1230
1291
  client_secret_name:
1231
1292
  title: Client Secret Property Name
@@ -1238,8 +1299,10 @@ definitions:
1238
1299
  title: Client Secret
1239
1300
  description: The OAuth client secret. Fill it in the user inputs.
1240
1301
  type: string
1302
+ interpolation_context:
1303
+ - config
1241
1304
  examples:
1242
- - "{{ config['client_secret }}"
1305
+ - "{{ config['client_secret'] }}"
1243
1306
  - "{{ config['credentials']['client_secret }}"
1244
1307
  refresh_token_name:
1245
1308
  title: Refresh Token Property Name
@@ -1252,6 +1315,8 @@ definitions:
1252
1315
  title: Refresh Token
1253
1316
  description: Credential artifact used to get a new access token.
1254
1317
  type: string
1318
+ interpolation_context:
1319
+ - config
1255
1320
  examples:
1256
1321
  - "{{ config['refresh_token'] }}"
1257
1322
  - "{{ config['credentials]['refresh_token'] }}"
@@ -1272,6 +1337,8 @@ definitions:
1272
1337
  title: Access Token Value
1273
1338
  description: The value of the access_token to bypass the token refreshing using `refresh_token`.
1274
1339
  type: string
1340
+ interpolation_context:
1341
+ - config
1275
1342
  examples:
1276
1343
  - secret_access_token_value
1277
1344
  expires_in_name:
@@ -1444,6 +1511,7 @@ definitions:
1444
1511
  incremental_sync:
1445
1512
  title: Incremental Sync
1446
1513
  description: Component used to fetch data incrementally based on a time field in the data.
1514
+ linkable: true
1447
1515
  anyOf:
1448
1516
  - "$ref": "#/definitions/DatetimeBasedCursor"
1449
1517
  - "$ref": "#/definitions/IncrementingCountCursor"
@@ -1476,6 +1544,7 @@ definitions:
1476
1544
  transformations:
1477
1545
  title: Transformations
1478
1546
  description: A list of transformations to be applied to each output record.
1547
+ linkable: true
1479
1548
  type: array
1480
1549
  items:
1481
1550
  anyOf:
@@ -1499,6 +1568,7 @@ definitions:
1499
1568
  file_uploader:
1500
1569
  title: File Uploader
1501
1570
  description: (experimental) Describes how to fetch a file
1571
+ linkable: true
1502
1572
  type: object
1503
1573
  required:
1504
1574
  - type
@@ -1901,7 +1971,13 @@ definitions:
1901
1971
  type: string
1902
1972
  expiration_duration:
1903
1973
  title: Expiration Duration
1904
- description: The duration in ISO 8601 duration notation after which the session token expires, starting from the time it was obtained. Omitting it will result in the session token being refreshed for every request.
1974
+ description: |
1975
+ The duration in ISO 8601 duration notation after which the session token expires, starting from the time it was obtained. Omitting it will result in the session token being refreshed for every request.
1976
+ * **PT1H**: 1 hour
1977
+ * **P1D**: 1 day
1978
+ * **P1W**: 1 week
1979
+ * **P1M**: 1 month
1980
+ * **P1Y**: 1 year
1905
1981
  type: string
1906
1982
  examples:
1907
1983
  - "PT1H"
@@ -2055,6 +2131,7 @@ definitions:
2055
2131
  request_parameters:
2056
2132
  title: Query Parameters
2057
2133
  description: Specifies the query parameters that should be set on an outgoing HTTP request given the inputs.
2134
+ linkable: true
2058
2135
  anyOf:
2059
2136
  - type: object
2060
2137
  title: Key/Value Pairs
@@ -2077,6 +2154,7 @@ definitions:
2077
2154
  request_headers:
2078
2155
  title: Request Headers
2079
2156
  description: Return any non-auth headers. Authentication headers will overwrite any overlapping headers returned from this method.
2157
+ linkable: true
2080
2158
  anyOf:
2081
2159
  - type: object
2082
2160
  title: Key/Value Pairs
@@ -2136,6 +2214,7 @@ definitions:
2136
2214
  request_body:
2137
2215
  title: Request Body
2138
2216
  description: Specifies how to populate the body of the request with a payload. Can contain nested objects.
2217
+ linkable: true
2139
2218
  anyOf:
2140
2219
  - "$ref": "#/definitions/RequestBodyPlainText"
2141
2220
  - "$ref": "#/definitions/RequestBodyUrlEncodedForm"
@@ -2149,6 +2228,7 @@ definitions:
2149
2228
  error_handler:
2150
2229
  title: Error Handler
2151
2230
  description: Error handler component that defines how to handle errors.
2231
+ linkable: true
2152
2232
  anyOf:
2153
2233
  - "$ref": "#/definitions/DefaultErrorHandler"
2154
2234
  - "$ref": "#/definitions/CompositeErrorHandler"
@@ -2683,6 +2763,7 @@ definitions:
2683
2763
  - 2021-01-01
2684
2764
  - 2021-01-01T00:00:00Z
2685
2765
  - "{{ config['start_time'] }}"
2766
+ - "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}"
2686
2767
  datetime_format:
2687
2768
  title: Datetime Format
2688
2769
  description: |
@@ -3067,7 +3148,7 @@ definitions:
3067
3148
  - 100
3068
3149
  - "{{ config['page_size'] }}"
3069
3150
  inject_on_first_request:
3070
- title: Inject Offset
3151
+ title: Inject Offset on First Request
3071
3152
  description: Using the `offset` with value `0` during the first request
3072
3153
  type: boolean
3073
3154
  default: false
@@ -3107,7 +3188,7 @@ definitions:
3107
3188
  - 0
3108
3189
  - 1
3109
3190
  inject_on_first_request:
3110
- title: Inject Page Number
3191
+ title: Inject Page Number on First Request
3111
3192
  description: Using the `page number` with value defined by `start_from_page` during the first request
3112
3193
  type: boolean
3113
3194
  default: false
@@ -3398,6 +3479,7 @@ definitions:
3398
3479
  description: Array of paths defining the field to remove. Each item is an array whose field describe the path of a field to remove.
3399
3480
  type: array
3400
3481
  items:
3482
+ type: array
3401
3483
  items:
3402
3484
  type: string
3403
3485
  examples:
@@ -3589,6 +3671,7 @@ definitions:
3589
3671
  "$ref": "#/definitions/RecordSelector"
3590
3672
  paginator:
3591
3673
  description: Paginator component that describes how to navigate through the API's pages.
3674
+ linkable: true
3592
3675
  anyOf:
3593
3676
  - "$ref": "#/definitions/DefaultPaginator"
3594
3677
  - "$ref": "#/definitions/NoPagination"
@@ -3599,6 +3682,7 @@ definitions:
3599
3682
  partition_router:
3600
3683
  title: Partition Router
3601
3684
  description: Used to iteratively execute requests over a set of values, such as a parent stream's records or a list of constant values.
3685
+ linkable: true
3602
3686
  anyOf:
3603
3687
  - "$ref": "#/definitions/SubstreamPartitionRouter"
3604
3688
  - "$ref": "#/definitions/ListPartitionRouter"
@@ -4546,6 +4630,7 @@ definitions:
4546
4630
  description: A list of field pointers to be removed from the config.
4547
4631
  type: array
4548
4632
  items:
4633
+ type: array
4549
4634
  items:
4550
4635
  type: string
4551
4636
  examples:
@@ -1,5 +1,3 @@
1
- # Copyright (c) 2025 Airbyte, Inc., all rights reserved.
2
-
3
1
  # generated by datamodel-codegen:
4
2
  # filename: declarative_component_schema.yaml
5
3
 
@@ -160,20 +158,6 @@ class CustomBackoffStrategy(BaseModel):
160
158
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
161
159
 
162
160
 
163
- class CustomConfigTransformation(BaseModel):
164
- class Config:
165
- extra = Extra.allow
166
-
167
- type: Literal["CustomConfigTransformation"]
168
- class_name: str = Field(
169
- ...,
170
- description="Fully-qualified name of the class that will be implementing the custom config transformation. The format is `source_<name>.<package>.<class_name>`.",
171
- examples=["source_declarative_manifest.components.MyCustomConfigTransformation"],
172
- title="Class Name",
173
- )
174
- parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
175
-
176
-
177
161
  class CustomErrorHandler(BaseModel):
178
162
  class Config:
179
163
  extra = Extra.allow
@@ -539,7 +523,10 @@ class OAuthAuthenticator(BaseModel):
539
523
  client_id: Optional[str] = Field(
540
524
  None,
541
525
  description="The OAuth client ID. Fill it in the user inputs.",
542
- examples=["{{ config['client_id }}", "{{ config['credentials']['client_id }}"],
526
+ examples=[
527
+ "{{ config['client_id'] }}",
528
+ "{{ config['credentials']['client_id }}",
529
+ ],
543
530
  title="Client ID",
544
531
  )
545
532
  client_secret_name: Optional[str] = Field(
@@ -552,7 +539,7 @@ class OAuthAuthenticator(BaseModel):
552
539
  None,
553
540
  description="The OAuth client secret. Fill it in the user inputs.",
554
541
  examples=[
555
- "{{ config['client_secret }}",
542
+ "{{ config['client_secret'] }}",
556
543
  "{{ config['credentials']['client_secret }}",
557
544
  ],
558
545
  title="Client Secret",
@@ -996,7 +983,12 @@ class MinMaxDatetime(BaseModel):
996
983
  datetime: str = Field(
997
984
  ...,
998
985
  description="Datetime value.",
999
- examples=["2021-01-01", "2021-01-01T00:00:00Z", "{{ config['start_time'] }}"],
986
+ examples=[
987
+ "2021-01-01",
988
+ "2021-01-01T00:00:00Z",
989
+ "{{ config['start_time'] }}",
990
+ "{{ now_utc().strftime('%Y-%m-%dT%H:%M:%SZ') }}",
991
+ ],
1000
992
  title="Datetime",
1001
993
  )
1002
994
  datetime_format: Optional[str] = Field(
@@ -1208,7 +1200,7 @@ class OffsetIncrement(BaseModel):
1208
1200
  inject_on_first_request: Optional[bool] = Field(
1209
1201
  False,
1210
1202
  description="Using the `offset` with value `0` during the first request",
1211
- title="Inject Offset",
1203
+ title="Inject Offset on First Request",
1212
1204
  )
1213
1205
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
1214
1206
 
@@ -1230,7 +1222,7 @@ class PageIncrement(BaseModel):
1230
1222
  inject_on_first_request: Optional[bool] = Field(
1231
1223
  False,
1232
1224
  description="Using the `page number` with value defined by `start_from_page` during the first request",
1233
- title="Inject Page Number",
1225
+ title="Inject Page Number on First Request",
1234
1226
  )
1235
1227
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
1236
1228
 
@@ -1657,6 +1649,20 @@ class ConfigRemoveFields(BaseModel):
1657
1649
  )
1658
1650
 
1659
1651
 
1652
+ class CustomConfigTransformation(BaseModel):
1653
+ type: Literal["CustomConfigTransformation"]
1654
+ class_name: str = Field(
1655
+ ...,
1656
+ description="Fully-qualified name of the class that will be implementing the custom config transformation. The format is `source_<name>.<package>.<class_name>`.",
1657
+ examples=["source_declarative_manifest.components.MyCustomConfigTransformation"],
1658
+ )
1659
+ parameters: Optional[Dict[str, Any]] = Field(
1660
+ None,
1661
+ alias="$parameters",
1662
+ description="Additional parameters to be passed to the custom config transformation.",
1663
+ )
1664
+
1665
+
1660
1666
  class AddedFieldDefinition(BaseModel):
1661
1667
  type: Literal["AddedFieldDefinition"]
1662
1668
  path: List[str] = Field(
@@ -1796,7 +1802,19 @@ class DatetimeBasedCursor(BaseModel):
1796
1802
  )
1797
1803
  cursor_datetime_formats: Optional[List[str]] = Field(
1798
1804
  None,
1799
- description="The possible formats for the cursor field, in order of preference. The first format that matches the cursor field value will be used to parse it. If not provided, the `datetime_format` will be used.",
1805
+ description="The possible formats for the cursor field, in order of preference. The first format that matches the cursor field value will be used to parse it. If not provided, the Outgoing Datetime Format will be used.\nUse placeholders starting with \"%\" to describe the format the API is using. The following placeholders are available:\n * **%s**: Epoch unix timestamp - `1686218963`\n * **%s_as_float**: Epoch unix timestamp in seconds as float with microsecond precision - `1686218963.123456`\n * **%ms**: Epoch unix timestamp - `1686218963123`\n * **%a**: Weekday (abbreviated) - `Sun`\n * **%A**: Weekday (full) - `Sunday`\n * **%w**: Weekday (decimal) - `0` (Sunday), `6` (Saturday)\n * **%d**: Day of the month (zero-padded) - `01`, `02`, ..., `31`\n * **%b**: Month (abbreviated) - `Jan`\n * **%B**: Month (full) - `January`\n * **%m**: Month (zero-padded) - `01`, `02`, ..., `12`\n * **%y**: Year (without century, zero-padded) - `00`, `01`, ..., `99`\n * **%Y**: Year (with century) - `0001`, `0002`, ..., `9999`\n * **%H**: Hour (24-hour, zero-padded) - `00`, `01`, ..., `23`\n * **%I**: Hour (12-hour, zero-padded) - `01`, `02`, ..., `12`\n * **%p**: AM/PM indicator\n * **%M**: Minute (zero-padded) - `00`, `01`, ..., `59`\n * **%S**: Second (zero-padded) - `00`, `01`, ..., `59`\n * **%f**: Microsecond (zero-padded to 6 digits) - `000000`, `000001`, ..., `999999`\n * **%_ms**: Millisecond (zero-padded to 3 digits) - `000`, `001`, ..., `999`\n * **%z**: UTC offset - `(empty)`, `+0000`, `-04:00`\n * **%Z**: Time zone name - `(empty)`, `UTC`, `GMT`\n * **%j**: Day of the year (zero-padded) - `001`, `002`, ..., `366`\n * **%U**: Week number of the year (Sunday as first day) - `00`, `01`, ..., `53`\n * **%W**: Week number of the year (Monday as first day) - `00`, `01`, ..., `53`\n * **%c**: Date and time representation - `Tue Aug 16 21:30:00 1988`\n * **%x**: Date representation - `08/16/1988`\n * **%X**: Time representation - `21:30:00`\n * **%%**: Literal '%' character\n\n Some placeholders depend on the locale of the underlying system - in most cases this locale is configured as en/US. For more information see the [Python documentation](https://docs.python.org/3/library/datetime.html#strftime-and-strptime-format-codes).\n",
1806
+ examples=[
1807
+ "%Y-%m-%d",
1808
+ "%Y-%m-%d %H:%M:%S",
1809
+ "%Y-%m-%dT%H:%M:%S",
1810
+ "%Y-%m-%dT%H:%M:%SZ",
1811
+ "%Y-%m-%dT%H:%M:%S%z",
1812
+ "%Y-%m-%dT%H:%M:%S.%fZ",
1813
+ "%Y-%m-%dT%H:%M:%S.%f%z",
1814
+ "%Y-%m-%d %H:%M:%S.%f+00:00",
1815
+ "%s",
1816
+ "%ms",
1817
+ ],
1800
1818
  title="Cursor Datetime Formats",
1801
1819
  )
1802
1820
  start_datetime: Union[MinMaxDatetime, str] = Field(
@@ -1829,33 +1847,33 @@ class DatetimeBasedCursor(BaseModel):
1829
1847
  )
1830
1848
  cursor_granularity: Optional[str] = Field(
1831
1849
  None,
1832
- description="Smallest increment the datetime_format has (ISO 8601 duration) that is used to ensure the start of a slice does not overlap with the end of the previous one, e.g. for %Y-%m-%d the granularity should be P1D, for %Y-%m-%dT%H:%M:%SZ the granularity should be PT1S. Given this field is provided, `step` needs to be provided as well.",
1850
+ description="Smallest increment the datetime_format has (ISO 8601 duration) that is used to ensure the start of a slice does not overlap with the end of the previous one, e.g. for %Y-%m-%d the granularity should\nbe P1D, for %Y-%m-%dT%H:%M:%SZ the granularity should be PT1S. Given this field is provided, `step` needs to be provided as well.\n * **PT0.000001S**: 1 microsecond\n * **PT0.001S**: 1 millisecond\n * **PT1S**: 1 second\n * **PT1M**: 1 minute\n * **PT1H**: 1 hour\n * **P1D**: 1 day\n",
1833
1851
  examples=["PT1S"],
1834
1852
  title="Cursor Granularity",
1835
1853
  )
1836
1854
  is_data_feed: Optional[bool] = Field(
1837
1855
  None,
1838
1856
  description="A data feed API is an API that does not allow filtering and paginates the content from the most recent to the least recent. Given this, the CDK needs to know when to stop paginating and this field will generate a stop condition for pagination.",
1839
- title="Whether the target API is formatted as a data feed",
1857
+ title="Data Feed API",
1840
1858
  )
1841
1859
  is_client_side_incremental: Optional[bool] = Field(
1842
1860
  None,
1843
- description="If the target API endpoint does not take cursor values to filter records and returns all records anyway, the connector with this cursor will filter out records locally, and only emit new records from the last sync, hence incremental. This means that all records would be read from the API, but only new records will be emitted to the destination.",
1844
- title="Whether the target API does not support filtering and returns all data (the cursor filters records in the client instead of the API side)",
1861
+ description="Set to True if the target API endpoint does not take cursor values to filter records and returns all records anyway. This will cause the connector to filter out records locally, and only emit new records from the last sync, hence incremental. This means that all records would be read from the API, but only new records will be emitted to the destination.",
1862
+ title="Client-side Incremental Filtering",
1845
1863
  )
1846
1864
  is_compare_strictly: Optional[bool] = Field(
1847
1865
  False,
1848
- description="Set to True if the target API does not accept queries where the start time equal the end time.",
1849
- title="Whether to skip requests if the start time equals the end time",
1866
+ description="Set to True if the target API does not accept queries where the start time equal the end time. This will cause those requests to be skipped.",
1867
+ title="Strict Start-End Time Comparison",
1850
1868
  )
1851
1869
  global_substream_cursor: Optional[bool] = Field(
1852
1870
  False,
1853
- description="This setting optimizes performance when the parent stream has thousands of partitions by storing the cursor as a single value rather than per partition. Notably, the substream state is updated only at the end of the sync, which helps prevent data loss in case of a sync failure. See more info in the [docs](https://docs.airbyte.com/connector-development/config-based/understanding-the-yaml-file/incremental-syncs).",
1854
- title="Whether to store cursor as one value instead of per partition",
1871
+ description="Setting to True causes the connector to store the cursor as one value, instead of per-partition. This setting optimizes performance when the parent stream has thousands of partitions. Notably, the substream state is updated only at the end of the sync, which helps prevent data loss in case of a sync failure. See more info in the [docs](https://docs.airbyte.com/connector-development/config-based/understanding-the-yaml-file/incremental-syncs).",
1872
+ title="Global Substream Cursor",
1855
1873
  )
1856
1874
  lookback_window: Optional[str] = Field(
1857
1875
  None,
1858
- description="Time interval before the start_datetime to read data for, e.g. P1M for looking back one month.",
1876
+ description="Time interval (ISO8601 duration) before the start_datetime to read data for, e.g. P1M for looking back one month.\n * **PT1H**: 1 hour\n * **P1D**: 1 day\n * **P1W**: 1 week\n * **P1M**: 1 month\n * **P1Y**: 1 year\n",
1859
1877
  examples=["P1D", "P{{ config['lookback_days'] }}D"],
1860
1878
  title="Lookback Window",
1861
1879
  )
@@ -1873,7 +1891,7 @@ class DatetimeBasedCursor(BaseModel):
1873
1891
  )
1874
1892
  step: Optional[str] = Field(
1875
1893
  None,
1876
- description="The size of the time window (ISO8601 duration). Given this field is provided, `cursor_granularity` needs to be provided as well.",
1894
+ description="The size of the time window (ISO8601 duration). Given this field is provided, `cursor_granularity` needs to be provided as well.\n * **PT1H**: 1 hour\n * **P1D**: 1 day\n * **P1W**: 1 week\n * **P1M**: 1 month\n * **P1Y**: 1 year\n",
1877
1895
  examples=["P1W", "{{ config['step_increment'] }}"],
1878
1896
  title="Step",
1879
1897
  )
@@ -2164,7 +2182,12 @@ class ConfigMigration(BaseModel):
2164
2182
  None, description="The description/purpose of the config migration."
2165
2183
  )
2166
2184
  transformations: List[
2167
- Union[ConfigRemapField, ConfigAddFields, ConfigRemoveFields, CustomConfigTransformation]
2185
+ Union[
2186
+ ConfigRemapField,
2187
+ ConfigAddFields,
2188
+ ConfigRemoveFields,
2189
+ CustomConfigTransformation,
2190
+ ]
2168
2191
  ] = Field(
2169
2192
  ...,
2170
2193
  description="The list of transformations that will attempt to be applied on an incoming unmigrated config. The transformations will be applied in the order they are defined.",
@@ -2184,7 +2207,12 @@ class ConfigNormalizationRules(BaseModel):
2184
2207
  )
2185
2208
  transformations: Optional[
2186
2209
  List[
2187
- Union[ConfigRemapField, ConfigAddFields, ConfigRemoveFields, CustomConfigTransformation]
2210
+ Union[
2211
+ ConfigRemapField,
2212
+ ConfigAddFields,
2213
+ ConfigRemoveFields,
2214
+ CustomConfigTransformation,
2215
+ ]
2188
2216
  ]
2189
2217
  ] = Field(
2190
2218
  [],
@@ -2481,7 +2509,7 @@ class SessionTokenAuthenticator(BaseModel):
2481
2509
  )
2482
2510
  expiration_duration: Optional[str] = Field(
2483
2511
  None,
2484
- description="The duration in ISO 8601 duration notation after which the session token expires, starting from the time it was obtained. Omitting it will result in the session token being refreshed for every request.",
2512
+ description="The duration in ISO 8601 duration notation after which the session token expires, starting from the time it was obtained. Omitting it will result in the session token being refreshed for every request.\n * **PT1H**: 1 hour\n * **P1D**: 1 day\n * **P1W**: 1 week\n * **P1M**: 1 month\n * **P1Y**: 1 year\n",
2485
2513
  examples=["PT1H", "P1D"],
2486
2514
  title="Expiration Duration",
2487
2515
  )
@@ -51,7 +51,6 @@ from airbyte_cdk.sources import Source
51
51
  from airbyte_cdk.test.models.scenario import ExpectedOutcome
52
52
 
53
53
 
54
- @dataclass
55
54
  class AirbyteEntrypointException(Exception):
56
55
  """Exception raised for errors in the AirbyteEntrypoint execution.
57
56
 
@@ -44,12 +44,21 @@ class ConnectorTestScenario(BaseModel):
44
44
  skip_test: bool
45
45
  bypass_reason: str
46
46
 
47
+ class AcceptanceTestEmptyStream(BaseModel):
48
+ name: str
49
+ bypass_reason: str | None = None
50
+
51
+ # bypass reason does not affect equality
52
+ def __hash__(self) -> int:
53
+ return hash(self.name)
54
+
47
55
  config_path: Path | None = None
48
56
  config_dict: dict[str, Any] | None = None
49
57
 
50
58
  _id: str | None = None # Used to override the default ID generation
51
59
 
52
60
  configured_catalog_path: Path | None = None
61
+ empty_streams: list[AcceptanceTestEmptyStream] | None = None
53
62
  timeout_seconds: int | None = None
54
63
  expect_records: AcceptanceTestExpectRecords | None = None
55
64
  file_types: AcceptanceTestFileTypes | None = None
@@ -10,20 +10,12 @@ from typing import TYPE_CHECKING, cast
10
10
 
11
11
  from boltons.typeutils import classproperty
12
12
 
13
- from airbyte_cdk.models import (
14
- AirbyteMessage,
15
- Type,
16
- )
17
13
  from airbyte_cdk.test import entrypoint_wrapper
18
14
  from airbyte_cdk.test.models import (
19
15
  ConnectorTestScenario,
20
16
  )
21
17
  from airbyte_cdk.test.standard_tests._job_runner import IConnector, run_test_job
22
18
  from airbyte_cdk.test.standard_tests.docker_base import DockerConnectorTestSuite
23
- from airbyte_cdk.utils.connector_paths import (
24
- ACCEPTANCE_TEST_CONFIG,
25
- find_connector_root,
26
- )
27
19
 
28
20
  if TYPE_CHECKING:
29
21
  from collections.abc import Callable