airbyte-cdk 6.18.0.dev3__tar.gz → 6.18.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 (349) hide show
  1. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/auth/oauth.py +26 -0
  3. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +52 -36
  4. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -43
  5. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +44 -20
  6. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +50 -58
  7. airbyte_cdk-6.18.2/airbyte_cdk/sources/declarative/requesters/README.md +57 -0
  8. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +33 -4
  9. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +11 -0
  10. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/exceptions.py +34 -0
  11. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/file_based_source.py +28 -5
  12. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +18 -4
  13. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +25 -2
  14. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +30 -2
  15. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +20 -4
  16. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +34 -4
  17. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/types.py +3 -0
  18. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/pyproject.toml +1 -1
  19. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/LICENSE.txt +0 -0
  20. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/README.md +0 -0
  21. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/__init__.py +0 -0
  22. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/cli/__init__.py +0 -0
  23. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  24. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  25. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  26. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/config_observation.py +0 -0
  27. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/connector.py +0 -0
  28. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/connector_builder/README.md +0 -0
  29. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/connector_builder/__init__.py +0 -0
  30. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  31. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/connector_builder/main.py +0 -0
  32. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  33. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/connector_builder/models.py +0 -0
  34. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/destinations/__init__.py +0 -0
  35. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/destinations/destination.py +0 -0
  36. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  37. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  38. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  39. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  40. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  41. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  42. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  43. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  44. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  45. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/entrypoint.py +0 -0
  46. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/exception_handler.py +0 -0
  47. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/logger.py +0 -0
  48. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/models/__init__.py +0 -0
  49. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  50. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  51. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  52. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/models/well_known_types.py +0 -0
  53. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/py.typed +0 -0
  54. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/__init__.py +0 -0
  55. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/abstract_source.py +0 -0
  56. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  57. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  58. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  59. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  60. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  61. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  62. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  63. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/config.py +0 -0
  64. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  65. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  66. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  67. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  68. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  69. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  70. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  71. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  72. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  73. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  74. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  75. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  76. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  77. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  78. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  79. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  80. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  81. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  82. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  83. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  84. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  85. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  86. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  87. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  88. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  89. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  90. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  91. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  92. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  93. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  94. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  95. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  96. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  97. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  98. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  99. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  100. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  101. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  102. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  103. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  104. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  105. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  106. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  107. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  108. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  109. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  110. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  111. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  112. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  113. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  114. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  115. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  116. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  117. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  118. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  119. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  120. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  121. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  122. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  123. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  124. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  125. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  126. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  127. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  128. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  129. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  130. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  131. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  132. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  133. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  134. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  135. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  136. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  137. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  138. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  139. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  140. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  141. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  142. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  143. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  144. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  145. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  146. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  147. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  148. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  149. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  150. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  151. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  152. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  153. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  154. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  155. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  156. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  157. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  158. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  159. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  160. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  161. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  162. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  163. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  164. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  165. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  166. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  167. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  168. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  169. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  170. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  171. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  172. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  173. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  174. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  175. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  176. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  177. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  178. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  179. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  180. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  181. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  182. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  183. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  184. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  185. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  186. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  187. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  188. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  189. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  190. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  191. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  192. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  193. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  194. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  195. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  196. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  197. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  198. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  199. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/types.py +0 -0
  200. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  201. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  202. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  203. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  204. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/embedded/runner.py +0 -0
  205. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/embedded/tools.py +0 -0
  206. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/README.md +0 -0
  207. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  208. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  209. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  210. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  211. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  212. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  213. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  214. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  215. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  216. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  217. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  218. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  219. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  220. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  221. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  222. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  223. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  224. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  225. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  226. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  227. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  228. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  229. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  230. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  231. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  232. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  233. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  234. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  235. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  236. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  237. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  238. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  239. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  240. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  241. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  242. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  243. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  244. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  245. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  246. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/file_based/types.py +0 -0
  247. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/http_config.py +0 -0
  248. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/http_logger.py +0 -0
  249. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/message/__init__.py +0 -0
  250. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/message/repository.py +0 -0
  251. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/source.py +0 -0
  252. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/__init__.py +0 -0
  253. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  254. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  255. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  256. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  257. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  258. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  259. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  260. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  261. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  262. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  263. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  264. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  265. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  266. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  267. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  268. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  269. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  270. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  271. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  272. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  273. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  274. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  275. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  276. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  277. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  278. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  279. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  280. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  281. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/core.py +0 -0
  282. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  283. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  284. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  285. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  286. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  287. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  288. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  289. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  290. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  291. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  292. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  293. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  294. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/http.py +0 -0
  295. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  296. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  297. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  298. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  299. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  300. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  301. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/utils/__init__.py +0 -0
  302. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/utils/casing.py +0 -0
  303. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  304. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  305. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  306. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/utils/transform.py +0 -0
  307. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sources/utils/types.py +0 -0
  308. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sql/__init__.py +0 -0
  309. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sql/_util/__init__.py +0 -0
  310. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sql/_util/hashing.py +0 -0
  311. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  312. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sql/constants.py +0 -0
  313. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sql/exceptions.py +0 -0
  314. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sql/secrets.py +0 -0
  315. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sql/shared/__init__.py +0 -0
  316. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  317. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  318. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/sql/types.py +0 -0
  319. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/__init__.py +0 -0
  320. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/catalog_builder.py +0 -0
  321. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  322. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  323. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  324. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  325. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/mock_http/request.py +0 -0
  326. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/mock_http/response.py +0 -0
  327. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  328. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/state_builder.py +0 -0
  329. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/utils/__init__.py +0 -0
  330. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/utils/data.py +0 -0
  331. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  332. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  333. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/test/utils/reading.py +0 -0
  334. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/__init__.py +0 -0
  335. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  336. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/analytics_message.py +0 -0
  337. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/constants.py +0 -0
  338. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  339. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/event_timing.py +0 -0
  340. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  341. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  342. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/message_utils.py +0 -0
  343. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  344. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/print_buffer.py +0 -0
  345. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  346. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/slice_hasher.py +0 -0
  347. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  348. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  349. {airbyte_cdk-6.18.0.dev3 → airbyte_cdk-6.18.2}/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.18.0.dev3
3
+ Version: 6.18.2
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  License: MIT
6
6
  Keywords: airbyte,connector-development-kit,cdk
@@ -56,8 +56,12 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
56
56
  token_expiry_is_time_of_expiration: bool = False
57
57
  access_token_name: Union[InterpolatedString, str] = "access_token"
58
58
  access_token_value: Optional[Union[InterpolatedString, str]] = None
59
+ client_id_name: Union[InterpolatedString, str] = "client_id"
60
+ client_secret_name: Union[InterpolatedString, str] = "client_secret"
59
61
  expires_in_name: Union[InterpolatedString, str] = "expires_in"
62
+ refresh_token_name: Union[InterpolatedString, str] = "refresh_token"
60
63
  refresh_request_body: Optional[Mapping[str, Any]] = None
64
+ grant_type_name: Union[InterpolatedString, str] = "grant_type"
61
65
  grant_type: Union[InterpolatedString, str] = "refresh_token"
62
66
  message_repository: MessageRepository = NoopMessageRepository()
63
67
 
@@ -69,8 +73,15 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
69
73
  )
70
74
  else:
71
75
  self._token_refresh_endpoint = None
76
+ self._client_id_name = InterpolatedString.create(self.client_id_name, parameters=parameters)
72
77
  self._client_id = InterpolatedString.create(self.client_id, parameters=parameters)
78
+ self._client_secret_name = InterpolatedString.create(
79
+ self.client_secret_name, parameters=parameters
80
+ )
73
81
  self._client_secret = InterpolatedString.create(self.client_secret, parameters=parameters)
82
+ self._refresh_token_name = InterpolatedString.create(
83
+ self.refresh_token_name, parameters=parameters
84
+ )
74
85
  if self.refresh_token is not None:
75
86
  self._refresh_token: Optional[InterpolatedString] = InterpolatedString.create(
76
87
  self.refresh_token, parameters=parameters
@@ -83,6 +94,9 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
83
94
  self.expires_in_name = InterpolatedString.create(
84
95
  self.expires_in_name, parameters=parameters
85
96
  )
97
+ self.grant_type_name = InterpolatedString.create(
98
+ self.grant_type_name, parameters=parameters
99
+ )
86
100
  self.grant_type = InterpolatedString.create(self.grant_type, parameters=parameters)
87
101
  self._refresh_request_body = InterpolatedMapping(
88
102
  self.refresh_request_body or {}, parameters=parameters
@@ -122,18 +136,27 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
122
136
  return refresh_token_endpoint
123
137
  return None
124
138
 
139
+ def get_client_id_name(self) -> str:
140
+ return self._client_id_name.eval(self.config) # type: ignore # eval returns a string in this context
141
+
125
142
  def get_client_id(self) -> str:
126
143
  client_id: str = self._client_id.eval(self.config)
127
144
  if not client_id:
128
145
  raise ValueError("OAuthAuthenticator was unable to evaluate client_id parameter")
129
146
  return client_id
130
147
 
148
+ def get_client_secret_name(self) -> str:
149
+ return self._client_secret_name.eval(self.config) # type: ignore # eval returns a string in this context
150
+
131
151
  def get_client_secret(self) -> str:
132
152
  client_secret: str = self._client_secret.eval(self.config)
133
153
  if not client_secret:
134
154
  raise ValueError("OAuthAuthenticator was unable to evaluate client_secret parameter")
135
155
  return client_secret
136
156
 
157
+ def get_refresh_token_name(self) -> str:
158
+ return self._refresh_token_name.eval(self.config) # type: ignore # eval returns a string in this context
159
+
137
160
  def get_refresh_token(self) -> Optional[str]:
138
161
  return None if self._refresh_token is None else str(self._refresh_token.eval(self.config))
139
162
 
@@ -146,6 +169,9 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
146
169
  def get_expires_in_name(self) -> str:
147
170
  return self.expires_in_name.eval(self.config) # type: ignore # eval returns a string in this context
148
171
 
172
+ def get_grant_type_name(self) -> str:
173
+ return self.grant_type_name.eval(self.config) # type: ignore # eval returns a string in this context
174
+
149
175
  def get_grant_type(self) -> str:
150
176
  return self.grant_type.eval(self.config) # type: ignore # eval returns a string in this context
151
177
 
@@ -678,7 +678,7 @@ definitions:
678
678
  properties:
679
679
  type:
680
680
  type: string
681
- enum: [CustomSchemaNormalization]
681
+ enum: [ CustomSchemaNormalization ]
682
682
  class_name:
683
683
  title: Class Name
684
684
  description: Fully-qualified name of the class that will be implementing the custom normalization. The format is `source_<name>.<package>.<class_name>`.
@@ -1047,6 +1047,13 @@ definitions:
1047
1047
  type:
1048
1048
  type: string
1049
1049
  enum: [OAuthAuthenticator]
1050
+ client_id_name:
1051
+ title: Client ID Property Name
1052
+ description: The name of the property to use to refresh the `access_token`.
1053
+ type: string
1054
+ default: "client_id"
1055
+ examples:
1056
+ - custom_app_id
1050
1057
  client_id:
1051
1058
  title: Client ID
1052
1059
  description: The OAuth client ID. Fill it in the user inputs.
@@ -1054,6 +1061,13 @@ definitions:
1054
1061
  examples:
1055
1062
  - "{{ config['client_id }}"
1056
1063
  - "{{ config['credentials']['client_id }}"
1064
+ client_secret_name:
1065
+ title: Client Secret Property Name
1066
+ description: The name of the property to use to refresh the `access_token`.
1067
+ type: string
1068
+ default: "client_secret"
1069
+ examples:
1070
+ - custom_app_secret
1057
1071
  client_secret:
1058
1072
  title: Client Secret
1059
1073
  description: The OAuth client secret. Fill it in the user inputs.
@@ -1061,6 +1075,13 @@ definitions:
1061
1075
  examples:
1062
1076
  - "{{ config['client_secret }}"
1063
1077
  - "{{ config['credentials']['client_secret }}"
1078
+ refresh_token_name:
1079
+ title: Refresh Token Property Name
1080
+ description: The name of the property to use to refresh the `access_token`.
1081
+ type: string
1082
+ default: "refresh_token"
1083
+ examples:
1084
+ - custom_app_refresh_value
1064
1085
  refresh_token:
1065
1086
  title: Refresh Token
1066
1087
  description: Credential artifact used to get a new access token.
@@ -1094,6 +1115,13 @@ definitions:
1094
1115
  default: "expires_in"
1095
1116
  examples:
1096
1117
  - expires_in
1118
+ grant_type_name:
1119
+ title: Grant Type Property Name
1120
+ description: The name of the property to use to refresh the `access_token`.
1121
+ type: string
1122
+ default: "grant_type"
1123
+ examples:
1124
+ - custom_grant_type
1097
1125
  grant_type:
1098
1126
  title: Grant Type
1099
1127
  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.
@@ -2204,15 +2232,15 @@ definitions:
2204
2232
  Pertains to the fields defined by the connector relating to the OAuth flow.
2205
2233
 
2206
2234
  Interpolation capabilities:
2207
- - The variables placeholders are declared as `{my_var}`.
2208
- - The nested resolution variables like `{{my_nested_var}}` is allowed as well.
2235
+ - The variables placeholders are declared as `{{my_var}}`.
2236
+ - The nested resolution variables like `{{ {{my_nested_var}} }}` is allowed as well.
2209
2237
 
2210
2238
  - 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}}
2239
+ + base64Encoder - encode to `base64`, {{ {{my_var_a}}:{{my_var_b}} | base64Encoder }}
2240
+ + base64Decorer - decode from `base64` encoded string, {{ {{my_string_variable_or_string_value}} | base64Decoder }}
2241
+ + urlEncoder - encode the input string to URL-like format, {{ https://test.host.com/endpoint | urlEncoder}}
2242
+ + urlDecorer - decode the input url-encoded string into text format, {{ urlDecoder:https%3A%2F%2Fairbyte.io | urlDecoder}}
2243
+ + codeChallengeS256 - get the `codeChallenge` encoded value to provide additional data-provider specific authorisation values, {{ {{state_value}} | codeChallengeS256 }}
2216
2244
 
2217
2245
  Examples:
2218
2246
  - The TikTok Marketing DeclarativeOAuth spec:
@@ -2221,12 +2249,12 @@ definitions:
2221
2249
  "type": "object",
2222
2250
  "additionalProperties": false,
2223
2251
  "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}}",
2252
+ "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
2253
  "access_token_url": "https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/",
2226
2254
  "access_token_params": {
2227
- "{auth_code_key}": "{{auth_code_key}}",
2228
- "{client_id_key}": "{{client_id_key}}",
2229
- "{client_secret_key}": "{{client_secret_key}}"
2255
+ "{{ auth_code_key }}": "{{ auth_code_value }}",
2256
+ "{{ client_id_key }}": "{{ client_id_value }}",
2257
+ "{{ client_secret_key }}": "{{ client_secret_value }}"
2230
2258
  },
2231
2259
  "access_token_headers": {
2232
2260
  "Content-Type": "application/json",
@@ -2244,7 +2272,6 @@ definitions:
2244
2272
  required:
2245
2273
  - consent_url
2246
2274
  - access_token_url
2247
- - extract_output
2248
2275
  properties:
2249
2276
  consent_url:
2250
2277
  title: Consent URL
@@ -2253,8 +2280,8 @@ definitions:
2253
2280
  The DeclarativeOAuth Specific string URL string template to initiate the authentication.
2254
2281
  The placeholders are replaced during the processing to provide neccessary values.
2255
2282
  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}
2283
+ - https://domain.host.com/marketing_api/auth?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{{{redirect_uri_value}} | urlEncoder}}&{{state_key}}={{state_value}}
2284
+ - 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
2285
  scope:
2259
2286
  title: Scopes
2260
2287
  type: string
@@ -2269,7 +2296,7 @@ definitions:
2269
2296
  The DeclarativeOAuth Specific URL templated string to obtain the `access_token`, `refresh_token` etc.
2270
2297
  The placeholders are replaced during the processing to provide neccessary values.
2271
2298
  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}}}
2299
+ - 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
2300
  access_token_headers:
2274
2301
  title: Access Token Headers
2275
2302
  type: object
@@ -2278,7 +2305,7 @@ definitions:
2278
2305
  The DeclarativeOAuth Specific optional headers to inject while exchanging the `auth_code` to `access_token` during `completeOAuthFlow` step.
2279
2306
  examples:
2280
2307
  - {
2281
- "Authorization": "Basic {base64Encoder:{client_id}:{client_secret}}",
2308
+ "Authorization": "Basic {{ {{ client_id_value }}:{{ client_secret_value }} | base64Encoder }}",
2282
2309
  }
2283
2310
  access_token_params:
2284
2311
  title: Access Token Query Params (Json Encoded)
@@ -2289,9 +2316,9 @@ definitions:
2289
2316
  When this property is provided, the query params will be encoded as `Json` and included in the outgoing API request.
2290
2317
  examples:
2291
2318
  - {
2292
- "{auth_code_key}": "{{auth_code_key}}",
2293
- "{client_id_key}": "{{client_id_key}}",
2294
- "{client_secret_key}": "{{client_secret_key}}",
2319
+ "{{ auth_code_key }}": "{{ auth_code_value }}",
2320
+ "{{ client_id_key }}": "{{ client_id_value }}",
2321
+ "{{ client_secret_key }}": "{{ client_secret_value }}",
2295
2322
  }
2296
2323
  extract_output:
2297
2324
  title: Extract Output
@@ -2859,7 +2886,6 @@ definitions:
2859
2886
  parser:
2860
2887
  anyOf:
2861
2888
  - "$ref": "#/definitions/GzipParser"
2862
- - "$ref": "#/definitions/JsonParser"
2863
2889
  - "$ref": "#/definitions/JsonLineParser"
2864
2890
  - "$ref": "#/definitions/CsvParser"
2865
2891
  # PARSERS
@@ -2876,21 +2902,6 @@ definitions:
2876
2902
  anyOf:
2877
2903
  - "$ref": "#/definitions/JsonLineParser"
2878
2904
  - "$ref": "#/definitions/CsvParser"
2879
- - "$ref": "#/definitions/JsonParser"
2880
- JsonParser:
2881
- title: JsonParser
2882
- description: Parser used for parsing str, bytes, or bytearray data and returning data in a dictionary format.
2883
- type: object
2884
- additionalProperties: true
2885
- required:
2886
- - type
2887
- properties:
2888
- type:
2889
- type: string
2890
- enum: [JsonParser]
2891
- encoding:
2892
- type: string
2893
- default: utf-8
2894
2905
  JsonLineParser:
2895
2906
  type: object
2896
2907
  required:
@@ -2993,6 +3004,11 @@ definitions:
2993
3004
  anyOf:
2994
3005
  - "$ref": "#/definitions/CustomRequester"
2995
3006
  - "$ref": "#/definitions/HttpRequester"
3007
+ url_requester:
3008
+ 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.
3009
+ anyOf:
3010
+ - "$ref": "#/definitions/CustomRequester"
3011
+ - "$ref": "#/definitions/HttpRequester"
2996
3012
  download_requester:
2997
3013
  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.
2998
3014
  anyOf:
@@ -7,12 +7,9 @@ from dataclasses import dataclass
7
7
  from io import BufferedIOBase, TextIOWrapper
8
8
  from typing import Any, Generator, MutableMapping, Optional
9
9
 
10
- import orjson
11
10
  import requests
12
11
 
13
- from airbyte_cdk.models import FailureType
14
12
  from airbyte_cdk.sources.declarative.decoders.decoder import Decoder
15
- from airbyte_cdk.utils import AirbyteTracedException
16
13
 
17
14
  logger = logging.getLogger("airbyte")
18
15
 
@@ -45,46 +42,6 @@ class GzipParser(Parser):
45
42
  yield from self.inner_parser.parse(gzipobj)
46
43
 
47
44
 
48
- @dataclass
49
- class JsonParser(Parser):
50
- encoding: str = "utf-8"
51
-
52
- def parse(self, data: BufferedIOBase) -> Generator[MutableMapping[str, Any], None, None]:
53
- """
54
- Attempts to deserialize data using orjson library. As an extra layer of safety we fallback on the json library to deserialize the data.
55
- """
56
- raw_data = data.read()
57
- body_json = self._parse_orjson(raw_data) or self._parse_json(raw_data)
58
-
59
- if body_json is None:
60
- raise AirbyteTracedException(
61
- message="Response JSON data failed to be parsed. See logs for more information.",
62
- internal_message=f"Response JSON data failed to be parsed.",
63
- failure_type=FailureType.system_error,
64
- )
65
-
66
- if isinstance(body_json, list):
67
- yield from body_json
68
- else:
69
- yield from [body_json]
70
-
71
- def _parse_orjson(self, raw_data: bytes) -> Optional[Any]:
72
- try:
73
- return orjson.loads(raw_data.decode(self.encoding))
74
- except Exception as exc:
75
- logger.debug(
76
- f"Failed to parse JSON data using orjson library. Falling back to json library. {exc}"
77
- )
78
- return None
79
-
80
- def _parse_json(self, raw_data: bytes) -> Optional[Any]:
81
- try:
82
- return json.loads(raw_data.decode(self.encoding))
83
- except Exception as exc:
84
- logger.error(f"Failed to parse JSON data using json library. {exc}")
85
- return None
86
-
87
-
88
45
  @dataclass
89
46
  class JsonLineParser(Parser):
90
47
  encoding: Optional[str] = "utf-8"
@@ -481,12 +481,24 @@ class RefreshTokenUpdater(BaseModel):
481
481
 
482
482
  class OAuthAuthenticator(BaseModel):
483
483
  type: Literal["OAuthAuthenticator"]
484
+ client_id_name: Optional[str] = Field(
485
+ "client_id",
486
+ description="The name of the property to use to refresh the `access_token`.",
487
+ examples=["custom_app_id"],
488
+ title="Client ID Property Name",
489
+ )
484
490
  client_id: str = Field(
485
491
  ...,
486
492
  description="The OAuth client ID. Fill it in the user inputs.",
487
493
  examples=["{{ config['client_id }}", "{{ config['credentials']['client_id }}"],
488
494
  title="Client ID",
489
495
  )
496
+ client_secret_name: Optional[str] = Field(
497
+ "client_secret",
498
+ description="The name of the property to use to refresh the `access_token`.",
499
+ examples=["custom_app_secret"],
500
+ title="Client Secret Property Name",
501
+ )
490
502
  client_secret: str = Field(
491
503
  ...,
492
504
  description="The OAuth client secret. Fill it in the user inputs.",
@@ -496,6 +508,12 @@ class OAuthAuthenticator(BaseModel):
496
508
  ],
497
509
  title="Client Secret",
498
510
  )
511
+ refresh_token_name: Optional[str] = Field(
512
+ "refresh_token",
513
+ description="The name of the property to use to refresh the `access_token`.",
514
+ examples=["custom_app_refresh_value"],
515
+ title="Refresh Token Property Name",
516
+ )
499
517
  refresh_token: Optional[str] = Field(
500
518
  None,
501
519
  description="Credential artifact used to get a new access token.",
@@ -529,6 +547,12 @@ class OAuthAuthenticator(BaseModel):
529
547
  examples=["expires_in"],
530
548
  title="Token Expiry Property Name",
531
549
  )
550
+ grant_type_name: Optional[str] = Field(
551
+ "grant_type",
552
+ description="The name of the property to use to refresh the `access_token`.",
553
+ examples=["custom_grant_type"],
554
+ title="Grant Type Property Name",
555
+ )
532
556
  grant_type: Optional[str] = Field(
533
557
  "refresh_token",
534
558
  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.",
@@ -859,8 +883,8 @@ class OauthConnectorInputSpecification(BaseModel):
859
883
  ...,
860
884
  description="The DeclarativeOAuth Specific string URL string template to initiate the authentication.\nThe placeholders are replaced during the processing to provide neccessary values.",
861
885
  examples=[
862
- "https://domain.host.com/marketing_api/auth?{client_id_key}={{client_id_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}&{state_key}={{state_key}}",
863
- "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}",
886
+ "https://domain.host.com/marketing_api/auth?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{{{redirect_uri_value}} | urlEncoder}}&{{state_key}}={{state_value}}",
887
+ "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}}",
864
888
  ],
865
889
  title="Consent URL",
866
890
  )
@@ -874,14 +898,18 @@ class OauthConnectorInputSpecification(BaseModel):
874
898
  ...,
875
899
  description="The DeclarativeOAuth Specific URL templated string to obtain the `access_token`, `refresh_token` etc.\nThe placeholders are replaced during the processing to provide neccessary values.",
876
900
  examples=[
877
- "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}}}"
901
+ "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}}"
878
902
  ],
879
903
  title="Access Token URL",
880
904
  )
881
905
  access_token_headers: Optional[Dict[str, Any]] = Field(
882
906
  None,
883
907
  description="The DeclarativeOAuth Specific optional headers to inject while exchanging the `auth_code` to `access_token` during `completeOAuthFlow` step.",
884
- examples=[{"Authorization": "Basic {base64Encoder:{client_id}:{client_secret}}"}],
908
+ examples=[
909
+ {
910
+ "Authorization": "Basic {{ {{ client_id_value }}:{{ client_secret_value }} | base64Encoder }}"
911
+ }
912
+ ],
885
913
  title="Access Token Headers",
886
914
  )
887
915
  access_token_params: Optional[Dict[str, Any]] = Field(
@@ -889,15 +917,15 @@ class OauthConnectorInputSpecification(BaseModel):
889
917
  description="The DeclarativeOAuth Specific optional query parameters to inject while exchanging the `auth_code` to `access_token` during `completeOAuthFlow` step.\nWhen this property is provided, the query params will be encoded as `Json` and included in the outgoing API request.",
890
918
  examples=[
891
919
  {
892
- "{auth_code_key}": "{{auth_code_key}}",
893
- "{client_id_key}": "{{client_id_key}}",
894
- "{client_secret_key}": "{{client_secret_key}}",
920
+ "{{ auth_code_key }}": "{{ auth_code_value }}",
921
+ "{{ client_id_key }}": "{{ client_id_value }}",
922
+ "{{ client_secret_key }}": "{{ client_secret_value }}",
895
923
  }
896
924
  ],
897
925
  title="Access Token Query Params (Json Encoded)",
898
926
  )
899
- extract_output: List[str] = Field(
900
- ...,
927
+ extract_output: Optional[List[str]] = Field(
928
+ None,
901
929
  description="The DeclarativeOAuth Specific list of strings to indicate which keys should be extracted and returned back to the input config.",
902
930
  examples=[["access_token", "refresh_token", "other_field"]],
903
931
  title="Extract Output",
@@ -966,7 +994,7 @@ class OAuthConfigSpecification(BaseModel):
966
994
  )
967
995
  oauth_connector_input_specification: Optional[OauthConnectorInputSpecification] = Field(
968
996
  None,
969
- description='The DeclarativeOAuth specific blob.\nPertains to the fields defined by the connector relating to the OAuth flow.\n\nInterpolation capabilities:\n- The variables placeholders are declared as `{my_var}`.\n- The nested resolution variables like `{{my_nested_var}}` is allowed as well.\n\n- The allowed interpolation context is:\n + base64Encoder - encode to `base64`, {base64Encoder:{my_var_a}:{my_var_b}}\n + base64Decorer - decode from `base64` encoded string, {base64Decoder:{my_string_variable_or_string_value}}\n + urlEncoder - encode the input string to URL-like format, {urlEncoder:https://test.host.com/endpoint}\n + urlDecorer - decode the input url-encoded string into text format, {urlDecoder:https%3A%2F%2Fairbyte.io}\n + codeChallengeS256 - get the `codeChallenge` encoded value to provide additional data-provider specific authorisation values, {codeChallengeS256:{state_value}}\n\nExamples:\n - The TikTok Marketing DeclarativeOAuth spec:\n {\n "oauth_connector_input_specification": {\n "type": "object",\n "additionalProperties": false,\n "properties": {\n "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}}",\n "access_token_url": "https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/",\n "access_token_params": {\n "{auth_code_key}": "{{auth_code_key}}",\n "{client_id_key}": "{{client_id_key}}",\n "{client_secret_key}": "{{client_secret_key}}"\n },\n "access_token_headers": {\n "Content-Type": "application/json",\n "Accept": "application/json"\n },\n "extract_output": ["data.access_token"],\n "client_id_key": "app_id",\n "client_secret_key": "secret",\n "auth_code_key": "auth_code"\n }\n }\n }',
997
+ description='The DeclarativeOAuth specific blob.\nPertains to the fields defined by the connector relating to the OAuth flow.\n\nInterpolation capabilities:\n- The variables placeholders are declared as `{{my_var}}`.\n- The nested resolution variables like `{{ {{my_nested_var}} }}` is allowed as well.\n\n- The allowed interpolation context is:\n + base64Encoder - encode to `base64`, {{ {{my_var_a}}:{{my_var_b}} | base64Encoder }}\n + base64Decorer - decode from `base64` encoded string, {{ {{my_string_variable_or_string_value}} | base64Decoder }}\n + urlEncoder - encode the input string to URL-like format, {{ https://test.host.com/endpoint | urlEncoder}}\n + urlDecorer - decode the input url-encoded string into text format, {{ urlDecoder:https%3A%2F%2Fairbyte.io | urlDecoder}}\n + codeChallengeS256 - get the `codeChallenge` encoded value to provide additional data-provider specific authorisation values, {{ {{state_value}} | codeChallengeS256 }}\n\nExamples:\n - The TikTok Marketing DeclarativeOAuth spec:\n {\n "oauth_connector_input_specification": {\n "type": "object",\n "additionalProperties": false,\n "properties": {\n "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}}",\n "access_token_url": "https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/",\n "access_token_params": {\n "{{ auth_code_key }}": "{{ auth_code_value }}",\n "{{ client_id_key }}": "{{ client_id_value }}",\n "{{ client_secret_key }}": "{{ client_secret_value }}"\n },\n "access_token_headers": {\n "Content-Type": "application/json",\n "Accept": "application/json"\n },\n "extract_output": ["data.access_token"],\n "client_id_key": "app_id",\n "client_secret_key": "secret",\n "auth_code_key": "auth_code"\n }\n }\n }',
970
998
  title="DeclarativeOAuth Connector Specification",
971
999
  )
972
1000
  complete_oauth_output_specification: Optional[Dict[str, Any]] = Field(
@@ -1173,14 +1201,6 @@ class LegacySessionTokenAuthenticator(BaseModel):
1173
1201
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
1174
1202
 
1175
1203
 
1176
- class JsonParser(BaseModel):
1177
- class Config:
1178
- extra = Extra.allow
1179
-
1180
- type: Literal["JsonParser"]
1181
- encoding: Optional[str] = "utf-8"
1182
-
1183
-
1184
1204
  class JsonLineParser(BaseModel):
1185
1205
  type: Literal["JsonLineParser"]
1186
1206
  encoding: Optional[str] = "utf-8"
@@ -1579,7 +1599,7 @@ class RecordSelector(BaseModel):
1579
1599
 
1580
1600
  class GzipParser(BaseModel):
1581
1601
  type: Literal["GzipParser"]
1582
- inner_parser: Union[JsonLineParser, CsvParser, JsonParser]
1602
+ inner_parser: Union[JsonLineParser, CsvParser]
1583
1603
 
1584
1604
 
1585
1605
  class Spec(BaseModel):
@@ -1614,7 +1634,7 @@ class CompositeErrorHandler(BaseModel):
1614
1634
 
1615
1635
  class CompositeRawDecoder(BaseModel):
1616
1636
  type: Literal["CompositeRawDecoder"]
1617
- parser: Union[GzipParser, JsonParser, JsonLineParser, CsvParser]
1637
+ parser: Union[GzipParser, JsonLineParser, CsvParser]
1618
1638
 
1619
1639
 
1620
1640
  class DeclarativeSource1(BaseModel):
@@ -2058,6 +2078,10 @@ class AsyncRetriever(BaseModel):
2058
2078
  ...,
2059
2079
  description="Requester component that describes how to prepare HTTP requests to send to the source API to fetch the status of the running async job.",
2060
2080
  )
2081
+ url_requester: Optional[Union[CustomRequester, HttpRequester]] = Field(
2082
+ None,
2083
+ 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.",
2084
+ )
2061
2085
  download_requester: Union[CustomRequester, HttpRequester] = Field(
2062
2086
  ...,
2063
2087
  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.",