airbyte-cdk 7.2.3__tar.gz → 7.3.1__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 (465) hide show
  1. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/PKG-INFO +1 -1
  2. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/auth/jwt.py +30 -3
  3. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +4 -0
  4. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +207 -204
  5. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +7 -2
  6. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +54 -15
  7. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +2 -2
  8. airbyte_cdk-7.3.1/airbyte_cdk/sources/file_based/remote_file.py +57 -0
  9. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/pyproject.toml +2 -2
  10. airbyte_cdk-7.2.3/airbyte_cdk/sources/file_based/remote_file.py +0 -18
  11. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/LICENSE.txt +0 -0
  12. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/LICENSE_SHORT +0 -0
  13. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/README.md +0 -0
  14. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/__init__.py +0 -0
  15. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/cli/__init__.py +0 -0
  16. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/cli/airbyte_cdk/__init__.py +0 -0
  17. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/cli/airbyte_cdk/_connector.py +0 -0
  18. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/cli/airbyte_cdk/_image.py +0 -0
  19. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/cli/airbyte_cdk/_manifest.py +0 -0
  20. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/cli/airbyte_cdk/_secrets.py +0 -0
  21. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/cli/airbyte_cdk/_version.py +0 -0
  22. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/cli/airbyte_cdk/exceptions.py +0 -0
  23. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/cli/source_declarative_manifest/README.md +0 -0
  24. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  25. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  26. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  27. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/config_observation.py +0 -0
  28. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/connector.py +0 -0
  29. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/connector_builder/README.md +0 -0
  30. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/connector_builder/__init__.py +0 -0
  31. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  32. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/connector_builder/main.py +0 -0
  33. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/connector_builder/models.py +0 -0
  34. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/connector_builder/test_reader/__init__.py +0 -0
  35. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/connector_builder/test_reader/helpers.py +0 -0
  36. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/connector_builder/test_reader/message_grouper.py +0 -0
  37. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/connector_builder/test_reader/reader.py +0 -0
  38. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/connector_builder/test_reader/types.py +0 -0
  39. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/destinations/__init__.py +0 -0
  40. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/destinations/destination.py +0 -0
  41. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  42. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  43. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  44. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  45. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  46. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  47. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  48. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  49. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  50. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/entrypoint.py +0 -0
  51. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/exception_handler.py +0 -0
  52. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/__init__.py +0 -0
  53. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/sources/__init__.py +0 -0
  54. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/sources/declarative/__init__.py +0 -0
  55. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/sources/declarative/declarative_source.py +0 -0
  56. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/sources/declarative/declarative_stream.py +0 -0
  57. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/sources/declarative/incremental/__init__.py +0 -0
  58. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  59. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/sources/declarative/incremental/declarative_cursor.py +0 -0
  60. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/sources/declarative/incremental/global_substream_cursor.py +0 -0
  61. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/sources/declarative/incremental/per_partition_cursor.py +0 -0
  62. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/sources/declarative/incremental/per_partition_with_global.py +0 -0
  63. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  64. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/legacy/sources/declarative/manifest_declarative_source.py +0 -0
  65. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/logger.py +0 -0
  66. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_migrations/README.md +0 -0
  67. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_migrations/__init__.py +0 -0
  68. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_migrations/exceptions.py +0 -0
  69. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_migrations/manifest_migration.py +0 -0
  70. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_migrations/migration_handler.py +0 -0
  71. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_migrations/migrations/__init__.py +0 -0
  72. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_migrations/migrations/http_requester_path_to_url.py +0 -0
  73. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_migrations/migrations/http_requester_request_body_json_data_to_request_body.py +0 -0
  74. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_migrations/migrations/http_requester_url_base_to_url.py +0 -0
  75. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_migrations/migrations/registry.yaml +0 -0
  76. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_migrations/migrations_registry.py +0 -0
  77. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/Dockerfile +0 -0
  78. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/README.md +0 -0
  79. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/__init__.py +0 -0
  80. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/api_models/__init__.py +0 -0
  81. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/api_models/capabilities.py +0 -0
  82. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/api_models/dicts.py +0 -0
  83. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/api_models/manifest.py +0 -0
  84. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/api_models/stream.py +0 -0
  85. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/app.py +0 -0
  86. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/cli/__init__.py +0 -0
  87. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/cli/_common.py +0 -0
  88. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/cli/_info.py +0 -0
  89. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/cli/_openapi.py +0 -0
  90. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/cli/_start.py +0 -0
  91. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/cli/run.py +0 -0
  92. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/command_processor/__init__.py +0 -0
  93. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/command_processor/processor.py +0 -0
  94. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/command_processor/utils.py +0 -0
  95. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/helpers/__init__.py +0 -0
  96. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/helpers/auth.py +0 -0
  97. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/helpers/tracing.py +0 -0
  98. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/main.py +0 -0
  99. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/openapi.yaml +0 -0
  100. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/routers/__init__.py +0 -0
  101. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/routers/capabilities.py +0 -0
  102. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/routers/health.py +0 -0
  103. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/manifest_server/routers/manifest.py +0 -0
  104. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/models/__init__.py +0 -0
  105. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  106. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  107. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/models/connector_metadata.py +0 -0
  108. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/models/well_known_types.py +0 -0
  109. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/py.typed +0 -0
  110. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/__init__.py +0 -0
  111. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/abstract_source.py +0 -0
  112. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  113. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  114. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  115. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  116. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  117. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  118. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  119. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/config.py +0 -0
  120. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  121. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  122. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  123. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  124. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  125. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  126. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  127. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  128. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  129. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  130. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  131. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  132. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  133. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  134. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  135. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  136. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  137. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  138. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  139. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  140. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  141. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  142. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  143. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  144. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  145. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  146. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  147. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  148. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/decoders/decoder_parser.py +0 -0
  149. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  150. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  151. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  152. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  153. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  154. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  155. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  156. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  157. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  158. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  159. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  160. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  161. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  162. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  163. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  164. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  165. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  166. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  167. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  168. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  169. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  170. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  171. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  172. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  173. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  174. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  175. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  176. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  177. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  178. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/models/base_model_with_deprecations.py +0 -0
  179. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  180. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  181. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  182. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  183. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/parsers/manifest_normalizer.py +0 -0
  184. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  185. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  186. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  187. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  188. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/partition_routers/grouping_partition_router.py +0 -0
  189. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  190. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  191. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  192. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  193. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  194. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  195. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  196. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  197. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  198. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  199. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  200. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  201. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  202. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  203. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  204. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  205. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  206. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  207. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  208. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  209. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  210. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  211. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  212. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  213. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  214. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  215. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  216. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  217. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  218. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  219. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  220. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/query_properties/__init__.py +0 -0
  221. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/query_properties/properties_from_endpoint.py +0 -0
  222. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/query_properties/property_chunking.py +0 -0
  223. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/query_properties/query_properties.py +0 -0
  224. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/__init__.py +0 -0
  225. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/group_by_key.py +0 -0
  226. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/query_properties/strategies/merge_strategy.py +0 -0
  227. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  228. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  229. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  230. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  231. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  232. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  233. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  234. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/request_options/per_partition_request_option_provider.py +0 -0
  235. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  236. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  237. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  238. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  239. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  240. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  241. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  242. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/resolvers/parametrized_components_resolver.py +0 -0
  243. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  244. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  245. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/__init__.py +0 -0
  246. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/connector_builder_file_uploader.py +0 -0
  247. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/default_file_uploader.py +0 -0
  248. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_uploader.py +0 -0
  249. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/file_writer.py +0 -0
  250. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/local_file_system_file_writer.py +0 -0
  251. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/retrievers/file_uploader/noop_file_writer.py +0 -0
  252. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  253. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  254. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  255. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/schema/composite_schema_loader.py +0 -0
  256. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  257. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  258. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  259. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  260. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  261. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  262. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  263. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  264. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  265. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  266. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer_test_read_decorator.py +0 -0
  267. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  268. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  269. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/config_transformations/__init__.py +0 -0
  270. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/config_transformations/add_fields.py +0 -0
  271. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/config_transformations/config_transformation.py +0 -0
  272. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/config_transformations/remap_field.py +0 -0
  273. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/config_transformations/remove_fields.py +0 -0
  274. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  275. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  276. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  277. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  278. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  279. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  280. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  281. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/types.py +0 -0
  282. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/validators/__init__.py +0 -0
  283. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/validators/dpath_validator.py +0 -0
  284. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/validators/predicate_validator.py +0 -0
  285. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/validators/validate_adheres_to_schema.py +0 -0
  286. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/validators/validation_strategy.py +0 -0
  287. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/validators/validator.py +0 -0
  288. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  289. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/README.md +0 -0
  290. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  291. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  292. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  293. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  294. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  295. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  296. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  297. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  298. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  299. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  300. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  301. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  302. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  303. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/config/validate_config_transfer_modes.py +0 -0
  304. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  305. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  306. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  307. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  308. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  309. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_based_stream_permissions_reader.py +0 -0
  310. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_record_data.py +0 -0
  311. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  312. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  313. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  314. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  315. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  316. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  317. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  318. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  319. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  320. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  321. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  322. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  323. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  324. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  325. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  326. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  327. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  328. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  329. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  330. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  331. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  332. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  333. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  334. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  335. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/identities_stream.py +0 -0
  336. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/stream/permissions_file_based_stream.py +0 -0
  337. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/file_based/types.py +0 -0
  338. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/http_config.py +0 -0
  339. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/http_logger.py +0 -0
  340. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/message/__init__.py +0 -0
  341. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/message/concurrent_repository.py +0 -0
  342. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/message/repository.py +0 -0
  343. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/source.py +0 -0
  344. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/specs/transfer_modes.py +0 -0
  345. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/__init__.py +0 -0
  346. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  347. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  348. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  349. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  350. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  351. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  352. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  353. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  354. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  355. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  356. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  357. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  358. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  359. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  360. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  361. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  362. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  363. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  364. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  365. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  366. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  367. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  368. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  369. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  370. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  371. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  372. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  373. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  374. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  375. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  376. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/concurrent/state_converters/incrementing_count_stream_state_converter.py +0 -0
  377. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/core.py +0 -0
  378. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  379. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  380. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  381. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  382. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  383. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  384. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  385. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  386. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  387. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  388. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  389. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  390. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/http.py +0 -0
  391. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  392. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  393. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  394. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  395. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  396. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  397. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  398. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/permissions/identities_stream.py +0 -0
  399. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  400. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/types.py +0 -0
  401. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/utils/__init__.py +0 -0
  402. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/utils/casing.py +0 -0
  403. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/utils/files_directory.py +0 -0
  404. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  405. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  406. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  407. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/utils/transform.py +0 -0
  408. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sources/utils/types.py +0 -0
  409. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sql/__init__.py +0 -0
  410. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sql/_util/__init__.py +0 -0
  411. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sql/_util/hashing.py +0 -0
  412. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  413. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sql/constants.py +0 -0
  414. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sql/exceptions.py +0 -0
  415. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sql/secrets.py +0 -0
  416. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sql/shared/__init__.py +0 -0
  417. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  418. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  419. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/sql/types.py +0 -0
  420. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/__init__.py +0 -0
  421. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/catalog_builder.py +0 -0
  422. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  423. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  424. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  425. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  426. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/mock_http/request.py +0 -0
  427. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/mock_http/response.py +0 -0
  428. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  429. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/models/__init__.py +0 -0
  430. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/models/outcome.py +0 -0
  431. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/models/scenario.py +0 -0
  432. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/standard_tests/__init__.py +0 -0
  433. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/standard_tests/_job_runner.py +0 -0
  434. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/standard_tests/connector_base.py +0 -0
  435. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/standard_tests/declarative_sources.py +0 -0
  436. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/standard_tests/destination_base.py +0 -0
  437. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/standard_tests/docker_base.py +0 -0
  438. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/standard_tests/pytest_hooks.py +0 -0
  439. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/standard_tests/source_base.py +0 -0
  440. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/standard_tests/util.py +0 -0
  441. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/state_builder.py +0 -0
  442. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/utils/__init__.py +0 -0
  443. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/utils/data.py +0 -0
  444. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  445. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  446. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/test/utils/reading.py +0 -0
  447. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/__init__.py +0 -0
  448. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  449. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/analytics_message.py +0 -0
  450. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/connector_paths.py +0 -0
  451. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/constants.py +0 -0
  452. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  453. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  454. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/docker.py +0 -0
  455. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/event_timing.py +0 -0
  456. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  457. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  458. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/message_utils.py +0 -0
  459. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  460. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/print_buffer.py +0 -0
  461. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  462. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/slice_hasher.py +0 -0
  463. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  464. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  465. {airbyte_cdk-7.2.3 → airbyte_cdk-7.3.1}/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: 7.2.3
3
+ Version: 7.3.1
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -6,7 +6,7 @@ import base64
6
6
  import json
7
7
  from dataclasses import InitVar, dataclass
8
8
  from datetime import datetime
9
- from typing import Any, Mapping, Optional, Union, cast
9
+ from typing import Any, Mapping, MutableMapping, Optional, Union, cast
10
10
 
11
11
  import jwt
12
12
  from cryptography.hazmat.primitives import serialization
@@ -14,12 +14,15 @@ from cryptography.hazmat.primitives.asymmetric.ec import EllipticCurvePrivateKey
14
14
  from cryptography.hazmat.primitives.asymmetric.ed448 import Ed448PrivateKey
15
15
  from cryptography.hazmat.primitives.asymmetric.ed25519 import Ed25519PrivateKey
16
16
  from cryptography.hazmat.primitives.asymmetric.rsa import RSAPrivateKey
17
- from cryptography.hazmat.primitives.asymmetric.types import PrivateKeyTypes
18
17
 
19
18
  from airbyte_cdk.sources.declarative.auth.declarative_authenticator import DeclarativeAuthenticator
20
19
  from airbyte_cdk.sources.declarative.interpolation.interpolated_boolean import InterpolatedBoolean
21
20
  from airbyte_cdk.sources.declarative.interpolation.interpolated_mapping import InterpolatedMapping
22
21
  from airbyte_cdk.sources.declarative.interpolation.interpolated_string import InterpolatedString
22
+ from airbyte_cdk.sources.declarative.requesters.request_option import (
23
+ RequestOption,
24
+ RequestOptionType,
25
+ )
23
26
 
24
27
  # Type alias for keys that JWT library accepts
25
28
  JwtKeyTypes = Union[
@@ -86,6 +89,7 @@ class JwtAuthenticator(DeclarativeAuthenticator):
86
89
  additional_jwt_headers: Optional[Mapping[str, Any]] = None
87
90
  additional_jwt_payload: Optional[Mapping[str, Any]] = None
88
91
  passphrase: Optional[Union[InterpolatedString, str]] = None
92
+ request_option: Optional[RequestOption] = None
89
93
 
90
94
  def __post_init__(self, parameters: Mapping[str, Any]) -> None:
91
95
  self._secret_key = InterpolatedString.create(self.secret_key, parameters=parameters)
@@ -121,6 +125,13 @@ class JwtAuthenticator(DeclarativeAuthenticator):
121
125
  else None
122
126
  )
123
127
 
128
+ # When we first implemented the JWT authenticator, we assumed that the signed token was always supposed
129
+ # to be loaded into the request headers under the `Authorization` key. This is not always the case, but
130
+ # this default option allows for backwards compatibility to be retained for existing connectors
131
+ self._request_option = self.request_option or RequestOption(
132
+ inject_into=RequestOptionType.header, field_name="Authorization", parameters=parameters
133
+ )
134
+
124
135
  def _get_jwt_headers(self) -> dict[str, Any]:
125
136
  """
126
137
  Builds and returns the headers used when signing the JWT.
@@ -213,7 +224,8 @@ class JwtAuthenticator(DeclarativeAuthenticator):
213
224
 
214
225
  @property
215
226
  def auth_header(self) -> str:
216
- return "Authorization"
227
+ options = self._get_request_options(RequestOptionType.header)
228
+ return next(iter(options.keys()), "")
217
229
 
218
230
  @property
219
231
  def token(self) -> str:
@@ -222,3 +234,18 @@ class JwtAuthenticator(DeclarativeAuthenticator):
222
234
  if self._get_header_prefix()
223
235
  else self._get_signed_token()
224
236
  )
237
+
238
+ def get_request_params(self) -> Mapping[str, Any]:
239
+ return self._get_request_options(RequestOptionType.request_parameter)
240
+
241
+ def get_request_body_data(self) -> Union[Mapping[str, Any], str]:
242
+ return self._get_request_options(RequestOptionType.body_data)
243
+
244
+ def get_request_body_json(self) -> Mapping[str, Any]:
245
+ return self._get_request_options(RequestOptionType.body_json)
246
+
247
+ def _get_request_options(self, option_type: RequestOptionType) -> Mapping[str, Any]:
248
+ options: MutableMapping[str, Any] = {}
249
+ if self._request_option.inject_into == option_type:
250
+ self._request_option.inject_into_request(options, self.token, self.config)
251
+ return options
@@ -1276,6 +1276,10 @@ definitions:
1276
1276
  type: string
1277
1277
  examples:
1278
1278
  - "{{ config['passphrase'] }}"
1279
+ request_option:
1280
+ title: Request Option
1281
+ description: A request option describing where the signed JWT token that is generated should be injected into the outbound API request.
1282
+ "$ref": "#/definitions/RequestOption"
1279
1283
  $parameters:
1280
1284
  type: object
1281
1285
  additionalProperties: true
@@ -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
 
@@ -397,66 +395,6 @@ class JwtPayload(BaseModel):
397
395
  )
398
396
 
399
397
 
400
- class JwtAuthenticator(BaseModel):
401
- type: Literal["JwtAuthenticator"]
402
- secret_key: str = Field(
403
- ...,
404
- description="Secret used to sign the JSON web token.",
405
- examples=["{{ config['secret_key'] }}"],
406
- title="Secret Key",
407
- )
408
- base64_encode_secret_key: Optional[bool] = Field(
409
- False,
410
- description='When set to true, the secret key will be base64 encoded prior to being encoded as part of the JWT. Only set to "true" when required by the API.',
411
- title="Base64-encode Secret Key",
412
- )
413
- algorithm: Algorithm = Field(
414
- ...,
415
- description="Algorithm used to sign the JSON web token.",
416
- examples=["ES256", "HS256", "RS256", "{{ config['algorithm'] }}"],
417
- title="Algorithm",
418
- )
419
- token_duration: Optional[int] = Field(
420
- 1200,
421
- description="The amount of time in seconds a JWT token can be valid after being issued.",
422
- examples=[1200, 3600],
423
- title="Token Duration",
424
- )
425
- header_prefix: Optional[str] = Field(
426
- None,
427
- description="The prefix to be used within the Authentication header.",
428
- examples=["Bearer", "Basic"],
429
- title="Header Prefix",
430
- )
431
- jwt_headers: Optional[JwtHeaders] = Field(
432
- None,
433
- description="JWT headers used when signing JSON web token.",
434
- title="JWT Headers",
435
- )
436
- additional_jwt_headers: Optional[Dict[str, Any]] = Field(
437
- None,
438
- description="Additional headers to be included with the JWT headers object.",
439
- title="Additional JWT Headers",
440
- )
441
- jwt_payload: Optional[JwtPayload] = Field(
442
- None,
443
- description="JWT Payload used when signing JSON web token.",
444
- title="JWT Payload",
445
- )
446
- additional_jwt_payload: Optional[Dict[str, Any]] = Field(
447
- None,
448
- description="Additional properties to be added to the JWT payload.",
449
- title="Additional JWT Payload Properties",
450
- )
451
- passphrase: Optional[str] = Field(
452
- None,
453
- description="A passphrase/password used to encrypt the private key. Only provide a passphrase if required by the API for JWT authentication. The API will typically provide the passphrase when generating the public/private key pair.",
454
- examples=["{{ config['passphrase'] }}"],
455
- title="Passphrase",
456
- )
457
- parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
458
-
459
-
460
398
  class RefreshTokenUpdater(BaseModel):
461
399
  refresh_token_name: Optional[str] = Field(
462
400
  "refresh_token",
@@ -502,148 +440,6 @@ class RefreshTokenUpdater(BaseModel):
502
440
  )
503
441
 
504
442
 
505
- class OAuthAuthenticator(BaseModel):
506
- type: Literal["OAuthAuthenticator"]
507
- client_id_name: Optional[str] = Field(
508
- "client_id",
509
- description="The name of the property to use to refresh the `access_token`.",
510
- examples=["custom_app_id"],
511
- title="Client ID Property Name",
512
- )
513
- client_id: Optional[str] = Field(
514
- None,
515
- description="The OAuth client ID. Fill it in the user inputs.",
516
- examples=[
517
- "{{ config['client_id'] }}",
518
- "{{ config['credentials']['client_id }}",
519
- ],
520
- title="Client ID",
521
- )
522
- client_secret_name: Optional[str] = Field(
523
- "client_secret",
524
- description="The name of the property to use to refresh the `access_token`.",
525
- examples=["custom_app_secret"],
526
- title="Client Secret Property Name",
527
- )
528
- client_secret: Optional[str] = Field(
529
- None,
530
- description="The OAuth client secret. Fill it in the user inputs.",
531
- examples=[
532
- "{{ config['client_secret'] }}",
533
- "{{ config['credentials']['client_secret }}",
534
- ],
535
- title="Client Secret",
536
- )
537
- refresh_token_name: Optional[str] = Field(
538
- "refresh_token",
539
- description="The name of the property to use to refresh the `access_token`.",
540
- examples=["custom_app_refresh_value"],
541
- title="Refresh Token Property Name",
542
- )
543
- refresh_token: Optional[str] = Field(
544
- None,
545
- description="Credential artifact used to get a new access token.",
546
- examples=[
547
- "{{ config['refresh_token'] }}",
548
- "{{ config['credentials]['refresh_token'] }}",
549
- ],
550
- title="Refresh Token",
551
- )
552
- token_refresh_endpoint: Optional[str] = Field(
553
- None,
554
- description="The full URL to call to obtain a new access token.",
555
- examples=["https://connect.squareup.com/oauth2/token"],
556
- title="Token Refresh Endpoint",
557
- )
558
- access_token_name: Optional[str] = Field(
559
- "access_token",
560
- description="The name of the property which contains the access token in the response from the token refresh endpoint.",
561
- examples=["access_token"],
562
- title="Access Token Property Name",
563
- )
564
- access_token_value: Optional[str] = Field(
565
- None,
566
- description="The value of the access_token to bypass the token refreshing using `refresh_token`.",
567
- examples=["secret_access_token_value"],
568
- title="Access Token Value",
569
- )
570
- expires_in_name: Optional[str] = Field(
571
- "expires_in",
572
- description="The name of the property which contains the expiry date in the response from the token refresh endpoint.",
573
- examples=["expires_in"],
574
- title="Token Expiry Property Name",
575
- )
576
- grant_type_name: Optional[str] = Field(
577
- "grant_type",
578
- description="The name of the property to use to refresh the `access_token`.",
579
- examples=["custom_grant_type"],
580
- title="Grant Type Property Name",
581
- )
582
- grant_type: Optional[str] = Field(
583
- "refresh_token",
584
- 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.",
585
- examples=["refresh_token", "client_credentials"],
586
- title="Grant Type",
587
- )
588
- refresh_request_body: Optional[Dict[str, Any]] = Field(
589
- None,
590
- description="Body of the request sent to get a new access token.",
591
- examples=[
592
- {
593
- "applicationId": "{{ config['application_id'] }}",
594
- "applicationSecret": "{{ config['application_secret'] }}",
595
- "token": "{{ config['token'] }}",
596
- }
597
- ],
598
- title="Refresh Request Body",
599
- )
600
- refresh_request_headers: Optional[Dict[str, Any]] = Field(
601
- None,
602
- description="Headers of the request sent to get a new access token.",
603
- examples=[
604
- {
605
- "Authorization": "<AUTH_TOKEN>",
606
- "Content-Type": "application/x-www-form-urlencoded",
607
- }
608
- ],
609
- title="Refresh Request Headers",
610
- )
611
- scopes: Optional[List[str]] = Field(
612
- None,
613
- description="List of scopes that should be granted to the access token.",
614
- examples=[["crm.list.read", "crm.objects.contacts.read", "crm.schema.contacts.read"]],
615
- title="Scopes",
616
- )
617
- token_expiry_date: Optional[str] = Field(
618
- None,
619
- description="The access token expiry date.",
620
- examples=["2023-04-06T07:12:10.421833+00:00", 1680842386],
621
- title="Token Expiry Date",
622
- )
623
- token_expiry_date_format: Optional[str] = Field(
624
- None,
625
- description="The format of the time to expiration datetime. Provide it if the time is returned as a date-time string instead of seconds.",
626
- examples=["%Y-%m-%d %H:%M:%S.%f+00:00"],
627
- title="Token Expiry Date Format",
628
- )
629
- refresh_token_updater: Optional[RefreshTokenUpdater] = Field(
630
- None,
631
- description="When the refresh token updater is defined, new refresh tokens, access tokens and the access token expiry date are written back from the authentication response to the config object. This is important if the refresh token can only used once.",
632
- title="Refresh Token Updater",
633
- )
634
- profile_assertion: Optional[JwtAuthenticator] = Field(
635
- None,
636
- description="The authenticator being used to authenticate the client authenticator.",
637
- title="Profile Assertion",
638
- )
639
- use_profile_assertion: Optional[bool] = Field(
640
- False,
641
- description="Enable using profile assertion as a flow for OAuth authorization.",
642
- title="Use Profile Assertion",
643
- )
644
- parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
645
-
646
-
647
443
  class Rate(BaseModel):
648
444
  class Config:
649
445
  extra = Extra.allow
@@ -1895,6 +1691,213 @@ class DatetimeBasedCursor(BaseModel):
1895
1691
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
1896
1692
 
1897
1693
 
1694
+ class JwtAuthenticator(BaseModel):
1695
+ type: Literal["JwtAuthenticator"]
1696
+ secret_key: str = Field(
1697
+ ...,
1698
+ description="Secret used to sign the JSON web token.",
1699
+ examples=["{{ config['secret_key'] }}"],
1700
+ title="Secret Key",
1701
+ )
1702
+ base64_encode_secret_key: Optional[bool] = Field(
1703
+ False,
1704
+ description='When set to true, the secret key will be base64 encoded prior to being encoded as part of the JWT. Only set to "true" when required by the API.',
1705
+ title="Base64-encode Secret Key",
1706
+ )
1707
+ algorithm: Algorithm = Field(
1708
+ ...,
1709
+ description="Algorithm used to sign the JSON web token.",
1710
+ examples=["ES256", "HS256", "RS256", "{{ config['algorithm'] }}"],
1711
+ title="Algorithm",
1712
+ )
1713
+ token_duration: Optional[int] = Field(
1714
+ 1200,
1715
+ description="The amount of time in seconds a JWT token can be valid after being issued.",
1716
+ examples=[1200, 3600],
1717
+ title="Token Duration",
1718
+ )
1719
+ header_prefix: Optional[str] = Field(
1720
+ None,
1721
+ description="The prefix to be used within the Authentication header.",
1722
+ examples=["Bearer", "Basic"],
1723
+ title="Header Prefix",
1724
+ )
1725
+ jwt_headers: Optional[JwtHeaders] = Field(
1726
+ None,
1727
+ description="JWT headers used when signing JSON web token.",
1728
+ title="JWT Headers",
1729
+ )
1730
+ additional_jwt_headers: Optional[Dict[str, Any]] = Field(
1731
+ None,
1732
+ description="Additional headers to be included with the JWT headers object.",
1733
+ title="Additional JWT Headers",
1734
+ )
1735
+ jwt_payload: Optional[JwtPayload] = Field(
1736
+ None,
1737
+ description="JWT Payload used when signing JSON web token.",
1738
+ title="JWT Payload",
1739
+ )
1740
+ additional_jwt_payload: Optional[Dict[str, Any]] = Field(
1741
+ None,
1742
+ description="Additional properties to be added to the JWT payload.",
1743
+ title="Additional JWT Payload Properties",
1744
+ )
1745
+ passphrase: Optional[str] = Field(
1746
+ None,
1747
+ description="A passphrase/password used to encrypt the private key. Only provide a passphrase if required by the API for JWT authentication. The API will typically provide the passphrase when generating the public/private key pair.",
1748
+ examples=["{{ config['passphrase'] }}"],
1749
+ title="Passphrase",
1750
+ )
1751
+ request_option: Optional[RequestOption] = Field(
1752
+ None,
1753
+ description="A request option describing where the signed JWT token that is generated should be injected into the outbound API request.",
1754
+ title="Request Option",
1755
+ )
1756
+ parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
1757
+
1758
+
1759
+ class OAuthAuthenticator(BaseModel):
1760
+ type: Literal["OAuthAuthenticator"]
1761
+ client_id_name: Optional[str] = Field(
1762
+ "client_id",
1763
+ description="The name of the property to use to refresh the `access_token`.",
1764
+ examples=["custom_app_id"],
1765
+ title="Client ID Property Name",
1766
+ )
1767
+ client_id: Optional[str] = Field(
1768
+ None,
1769
+ description="The OAuth client ID. Fill it in the user inputs.",
1770
+ examples=[
1771
+ "{{ config['client_id'] }}",
1772
+ "{{ config['credentials']['client_id }}",
1773
+ ],
1774
+ title="Client ID",
1775
+ )
1776
+ client_secret_name: Optional[str] = Field(
1777
+ "client_secret",
1778
+ description="The name of the property to use to refresh the `access_token`.",
1779
+ examples=["custom_app_secret"],
1780
+ title="Client Secret Property Name",
1781
+ )
1782
+ client_secret: Optional[str] = Field(
1783
+ None,
1784
+ description="The OAuth client secret. Fill it in the user inputs.",
1785
+ examples=[
1786
+ "{{ config['client_secret'] }}",
1787
+ "{{ config['credentials']['client_secret }}",
1788
+ ],
1789
+ title="Client Secret",
1790
+ )
1791
+ refresh_token_name: Optional[str] = Field(
1792
+ "refresh_token",
1793
+ description="The name of the property to use to refresh the `access_token`.",
1794
+ examples=["custom_app_refresh_value"],
1795
+ title="Refresh Token Property Name",
1796
+ )
1797
+ refresh_token: Optional[str] = Field(
1798
+ None,
1799
+ description="Credential artifact used to get a new access token.",
1800
+ examples=[
1801
+ "{{ config['refresh_token'] }}",
1802
+ "{{ config['credentials]['refresh_token'] }}",
1803
+ ],
1804
+ title="Refresh Token",
1805
+ )
1806
+ token_refresh_endpoint: Optional[str] = Field(
1807
+ None,
1808
+ description="The full URL to call to obtain a new access token.",
1809
+ examples=["https://connect.squareup.com/oauth2/token"],
1810
+ title="Token Refresh Endpoint",
1811
+ )
1812
+ access_token_name: Optional[str] = Field(
1813
+ "access_token",
1814
+ description="The name of the property which contains the access token in the response from the token refresh endpoint.",
1815
+ examples=["access_token"],
1816
+ title="Access Token Property Name",
1817
+ )
1818
+ access_token_value: Optional[str] = Field(
1819
+ None,
1820
+ description="The value of the access_token to bypass the token refreshing using `refresh_token`.",
1821
+ examples=["secret_access_token_value"],
1822
+ title="Access Token Value",
1823
+ )
1824
+ expires_in_name: Optional[str] = Field(
1825
+ "expires_in",
1826
+ description="The name of the property which contains the expiry date in the response from the token refresh endpoint.",
1827
+ examples=["expires_in"],
1828
+ title="Token Expiry Property Name",
1829
+ )
1830
+ grant_type_name: Optional[str] = Field(
1831
+ "grant_type",
1832
+ description="The name of the property to use to refresh the `access_token`.",
1833
+ examples=["custom_grant_type"],
1834
+ title="Grant Type Property Name",
1835
+ )
1836
+ grant_type: Optional[str] = Field(
1837
+ "refresh_token",
1838
+ 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.",
1839
+ examples=["refresh_token", "client_credentials"],
1840
+ title="Grant Type",
1841
+ )
1842
+ refresh_request_body: Optional[Dict[str, Any]] = Field(
1843
+ None,
1844
+ description="Body of the request sent to get a new access token.",
1845
+ examples=[
1846
+ {
1847
+ "applicationId": "{{ config['application_id'] }}",
1848
+ "applicationSecret": "{{ config['application_secret'] }}",
1849
+ "token": "{{ config['token'] }}",
1850
+ }
1851
+ ],
1852
+ title="Refresh Request Body",
1853
+ )
1854
+ refresh_request_headers: Optional[Dict[str, Any]] = Field(
1855
+ None,
1856
+ description="Headers of the request sent to get a new access token.",
1857
+ examples=[
1858
+ {
1859
+ "Authorization": "<AUTH_TOKEN>",
1860
+ "Content-Type": "application/x-www-form-urlencoded",
1861
+ }
1862
+ ],
1863
+ title="Refresh Request Headers",
1864
+ )
1865
+ scopes: Optional[List[str]] = Field(
1866
+ None,
1867
+ description="List of scopes that should be granted to the access token.",
1868
+ examples=[["crm.list.read", "crm.objects.contacts.read", "crm.schema.contacts.read"]],
1869
+ title="Scopes",
1870
+ )
1871
+ token_expiry_date: Optional[str] = Field(
1872
+ None,
1873
+ description="The access token expiry date.",
1874
+ examples=["2023-04-06T07:12:10.421833+00:00", 1680842386],
1875
+ title="Token Expiry Date",
1876
+ )
1877
+ token_expiry_date_format: Optional[str] = Field(
1878
+ None,
1879
+ description="The format of the time to expiration datetime. Provide it if the time is returned as a date-time string instead of seconds.",
1880
+ examples=["%Y-%m-%d %H:%M:%S.%f+00:00"],
1881
+ title="Token Expiry Date Format",
1882
+ )
1883
+ refresh_token_updater: Optional[RefreshTokenUpdater] = Field(
1884
+ None,
1885
+ description="When the refresh token updater is defined, new refresh tokens, access tokens and the access token expiry date are written back from the authentication response to the config object. This is important if the refresh token can only used once.",
1886
+ title="Refresh Token Updater",
1887
+ )
1888
+ profile_assertion: Optional[JwtAuthenticator] = Field(
1889
+ None,
1890
+ description="The authenticator being used to authenticate the client authenticator.",
1891
+ title="Profile Assertion",
1892
+ )
1893
+ use_profile_assertion: Optional[bool] = Field(
1894
+ False,
1895
+ description="Enable using profile assertion as a flow for OAuth authorization.",
1896
+ title="Use Profile Assertion",
1897
+ )
1898
+ parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
1899
+
1900
+
1898
1901
  class FixedWindowCallRatePolicy(BaseModel):
1899
1902
  class Config:
1900
1903
  extra = Extra.allow
@@ -2683,12 +2683,16 @@ class ModelToComponentFactory:
2683
2683
  file_path=model.file_path or "", config=config, parameters=model.parameters or {}
2684
2684
  )
2685
2685
 
2686
- @staticmethod
2687
2686
  def create_jwt_authenticator(
2688
- model: JwtAuthenticatorModel, config: Config, **kwargs: Any
2687
+ self, model: JwtAuthenticatorModel, config: Config, **kwargs: Any
2689
2688
  ) -> JwtAuthenticator:
2690
2689
  jwt_headers = model.jwt_headers or JwtHeadersModel(kid=None, typ="JWT", cty=None)
2691
2690
  jwt_payload = model.jwt_payload or JwtPayloadModel(iss=None, sub=None, aud=None)
2691
+ request_option = (
2692
+ self._create_component_from_model(model.request_option, config)
2693
+ if model.request_option
2694
+ else None
2695
+ )
2692
2696
  return JwtAuthenticator(
2693
2697
  config=config,
2694
2698
  parameters=model.parameters or {},
@@ -2706,6 +2710,7 @@ class ModelToComponentFactory:
2706
2710
  additional_jwt_headers=model.additional_jwt_headers,
2707
2711
  additional_jwt_payload=model.additional_jwt_payload,
2708
2712
  passphrase=model.passphrase,
2713
+ request_option=request_option,
2709
2714
  )
2710
2715
 
2711
2716
  def create_list_partition_router(
@@ -3,13 +3,15 @@
3
3
  #
4
4
 
5
5
  import logging
6
+ import time
6
7
  from abc import ABC, abstractmethod
7
8
  from datetime import datetime
8
9
  from enum import Enum
9
10
  from io import IOBase
10
11
  from os import makedirs, path
11
- from typing import Any, Callable, Iterable, List, MutableMapping, Optional, Set, Tuple
12
+ from typing import Any, Iterable, List, MutableMapping, Optional, Set, Tuple
12
13
 
14
+ from airbyte_protocol_dataclasses.models import FailureType
13
15
  from wcmatch.glob import GLOBSTAR, globmatch
14
16
 
15
17
  from airbyte_cdk.models import AirbyteRecordMessageFileReference
@@ -19,8 +21,9 @@ from airbyte_cdk.sources.file_based.config.validate_config_transfer_modes import
19
21
  preserve_directory_structure,
20
22
  use_file_transfer,
21
23
  )
24
+ from airbyte_cdk.sources.file_based.exceptions import FileSizeLimitError
22
25
  from airbyte_cdk.sources.file_based.file_record_data import FileRecordData
23
- from airbyte_cdk.sources.file_based.remote_file import RemoteFile
26
+ from airbyte_cdk.sources.file_based.remote_file import RemoteFile, UploadableRemoteFile
24
27
 
25
28
 
26
29
  class FileReadMode(Enum):
@@ -34,6 +37,7 @@ class AbstractFileBasedStreamReader(ABC):
34
37
  FILE_NAME = "file_name"
35
38
  LOCAL_FILE_PATH = "local_file_path"
36
39
  FILE_FOLDER = "file_folder"
40
+ FILE_SIZE_LIMIT = 1_500_000_000
37
41
 
38
42
  def __init__(self) -> None:
39
43
  self._config = None
@@ -113,16 +117,6 @@ class AbstractFileBasedStreamReader(ABC):
113
117
  seen.add(file.uri)
114
118
  yield file
115
119
 
116
- @abstractmethod
117
- def file_size(self, file: RemoteFile) -> int:
118
- """Utility method to get size of the remote file.
119
-
120
- This is required for connectors that will support writing to
121
- files. If the connector does not support writing files, then the
122
- subclass can simply `return 0`.
123
- """
124
- ...
125
-
126
120
  @staticmethod
127
121
  def file_matches_globs(file: RemoteFile, globs: List[str]) -> bool:
128
122
  # Use the GLOBSTAR flag to enable recursive ** matching
@@ -153,9 +147,8 @@ class AbstractFileBasedStreamReader(ABC):
153
147
  return include_identities_stream(self.config)
154
148
  return False
155
149
 
156
- @abstractmethod
157
150
  def upload(
158
- self, file: RemoteFile, local_directory: str, logger: logging.Logger
151
+ self, file: UploadableRemoteFile, local_directory: str, logger: logging.Logger
159
152
  ) -> Tuple[FileRecordData, AirbyteRecordMessageFileReference]:
160
153
  """
161
154
  This is required for connectors that will support writing to
@@ -173,7 +166,53 @@ class AbstractFileBasedStreamReader(ABC):
173
166
  - file_size_bytes (int): The size of the referenced file in bytes.
174
167
  - source_file_relative_path (str): The relative path to the referenced file in source.
175
168
  """
176
- ...
169
+ if not isinstance(file, UploadableRemoteFile):
170
+ raise TypeError(f"Expected UploadableRemoteFile, got {type(file)}")
171
+
172
+ file_size = file.size
173
+
174
+ if file_size > self.FILE_SIZE_LIMIT:
175
+ message = f"File size exceeds the {self.FILE_SIZE_LIMIT / 1e9} GB limit."
176
+ raise FileSizeLimitError(
177
+ message=message, internal_message=message, failure_type=FailureType.config_error
178
+ )
179
+
180
+ file_paths = self._get_file_transfer_paths(
181
+ source_file_relative_path=file.source_file_relative_path,
182
+ staging_directory=local_directory,
183
+ )
184
+ local_file_path = file_paths[self.LOCAL_FILE_PATH]
185
+ file_relative_path = file_paths[self.FILE_RELATIVE_PATH]
186
+ file_name = file_paths[self.FILE_NAME]
187
+
188
+ logger.info(
189
+ f"Starting to download the file {file.file_uri_for_logging} with size: {file_size / (1024 * 1024):,.2f} MB ({file_size / (1024 * 1024 * 1024):.2f} GB)"
190
+ )
191
+ start_download_time = time.time()
192
+
193
+ file.download_to_local_directory(local_file_path)
194
+
195
+ write_duration = time.time() - start_download_time
196
+ logger.info(
197
+ f"Finished downloading the file {file.file_uri_for_logging} and saved to {local_file_path} in {write_duration:,.2f} seconds."
198
+ )
199
+
200
+ file_record_data = FileRecordData(
201
+ folder=file_paths[self.FILE_FOLDER],
202
+ file_name=file_name,
203
+ bytes=file_size,
204
+ id=file.id,
205
+ mime_type=file.mime_type,
206
+ created_at=file.created_at,
207
+ updated_at=file.updated_at,
208
+ source_uri=file.uri,
209
+ )
210
+ file_reference = AirbyteRecordMessageFileReference(
211
+ staging_file_url=local_file_path,
212
+ source_file_relative_path=file_relative_path,
213
+ file_size_bytes=file_size,
214
+ )
215
+ return file_record_data, file_reference
177
216
 
178
217
  def _get_file_transfer_paths(
179
218
  self, source_file_relative_path: str, staging_directory: str