airbyte-cdk 6.33.1__tar.gz → 6.33.1.dev0__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 (358) hide show
  1. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +208 -1
  3. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +4 -0
  4. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +165 -0
  5. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +141 -0
  6. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/http_requester.py +3 -0
  7. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/call_rate.py +116 -40
  8. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/pyproject.toml +1 -1
  9. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/LICENSE.txt +0 -0
  10. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/LICENSE_SHORT +0 -0
  11. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/README.md +0 -0
  12. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/__init__.py +0 -0
  13. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/cli/__init__.py +0 -0
  14. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  15. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  16. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  17. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/config_observation.py +0 -0
  18. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/connector.py +0 -0
  19. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/connector_builder/README.md +0 -0
  20. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/connector_builder/__init__.py +0 -0
  21. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  22. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/connector_builder/main.py +0 -0
  23. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  24. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/connector_builder/models.py +0 -0
  25. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/destinations/__init__.py +0 -0
  26. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/destinations/destination.py +0 -0
  27. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  28. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  29. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  30. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  31. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  32. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  33. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  34. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  35. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  36. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/entrypoint.py +0 -0
  37. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/exception_handler.py +0 -0
  38. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/logger.py +0 -0
  39. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/models/__init__.py +0 -0
  40. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  41. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  42. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  43. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/models/well_known_types.py +0 -0
  44. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/py.typed +0 -0
  45. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/__init__.py +0 -0
  46. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/abstract_source.py +0 -0
  47. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  48. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  49. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  50. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  51. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  52. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  53. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  54. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/config.py +0 -0
  55. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  56. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  57. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  58. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  59. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  60. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  61. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  62. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  63. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  64. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  65. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  66. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  67. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/auth/oauth.py +0 -0
  68. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  69. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  70. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  71. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  72. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  73. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  74. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  75. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  76. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  77. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  78. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  79. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  80. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  81. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  82. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  83. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  84. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  85. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  86. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  87. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  88. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  89. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  90. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  91. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  92. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  93. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  94. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  95. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  96. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  97. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  98. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  99. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  100. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  101. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +0 -0
  102. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  103. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  104. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  105. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  106. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  107. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  108. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  109. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  110. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  111. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  112. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  113. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  114. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  115. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  116. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  117. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  118. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  119. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  120. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  121. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  122. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  123. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  124. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  125. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  126. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  127. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  128. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  129. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  130. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  131. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  132. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  133. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  134. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  135. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  136. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  137. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  138. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  139. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  140. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  141. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  142. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  143. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  144. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  145. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  146. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  147. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  148. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  149. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  150. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  151. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  152. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  153. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  154. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  155. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  156. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  157. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  158. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  159. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  160. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  161. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  162. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  163. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  164. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  165. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  166. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  167. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  168. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  169. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  170. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  171. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  172. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  173. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  174. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  175. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  176. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  177. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  178. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  179. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  180. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  181. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  182. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  183. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  184. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  185. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  186. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  187. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  188. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  189. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  190. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  191. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  192. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  193. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  194. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  195. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  196. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  197. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/types.py +0 -0
  198. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  199. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  200. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  201. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  202. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/embedded/runner.py +0 -0
  203. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/embedded/tools.py +0 -0
  204. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/README.md +0 -0
  205. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  206. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  207. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  208. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  209. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  210. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  211. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  212. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  213. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  214. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  215. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  216. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  217. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  218. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  219. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  220. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  221. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  222. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  223. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  224. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  225. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  226. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  227. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  228. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  229. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  230. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  231. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  232. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  233. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  234. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  235. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  236. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  237. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  238. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  239. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  240. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  241. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  242. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  243. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  244. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  245. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  246. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  247. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  248. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  249. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  250. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/file_based/types.py +0 -0
  251. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/http_config.py +0 -0
  252. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/http_logger.py +0 -0
  253. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/message/__init__.py +0 -0
  254. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/message/repository.py +0 -0
  255. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/source.py +0 -0
  256. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/__init__.py +0 -0
  257. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  258. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  259. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  260. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  261. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  262. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  263. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  264. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  265. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  266. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  267. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  268. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  269. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  270. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  271. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  272. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  273. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  274. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  275. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  276. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  277. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  278. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  279. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  280. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  281. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  282. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  283. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  284. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  285. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  286. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/core.py +0 -0
  287. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  288. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  289. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  290. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  291. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  292. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  293. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  294. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  295. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  296. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  297. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  298. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  299. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/http.py +0 -0
  300. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  301. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  302. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  303. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -0
  304. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  305. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  306. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  307. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  308. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/types.py +0 -0
  309. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/utils/__init__.py +0 -0
  310. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/utils/casing.py +0 -0
  311. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  312. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  313. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  314. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/utils/transform.py +0 -0
  315. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sources/utils/types.py +0 -0
  316. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sql/__init__.py +0 -0
  317. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sql/_util/__init__.py +0 -0
  318. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sql/_util/hashing.py +0 -0
  319. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  320. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sql/constants.py +0 -0
  321. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sql/exceptions.py +0 -0
  322. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sql/secrets.py +0 -0
  323. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sql/shared/__init__.py +0 -0
  324. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  325. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  326. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/sql/types.py +0 -0
  327. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/__init__.py +0 -0
  328. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/catalog_builder.py +0 -0
  329. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  330. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  331. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  332. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  333. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/mock_http/request.py +0 -0
  334. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/mock_http/response.py +0 -0
  335. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  336. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/state_builder.py +0 -0
  337. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/utils/__init__.py +0 -0
  338. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/utils/data.py +0 -0
  339. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  340. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  341. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/test/utils/reading.py +0 -0
  342. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/__init__.py +0 -0
  343. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  344. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/analytics_message.py +0 -0
  345. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/constants.py +0 -0
  346. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  347. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  348. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/event_timing.py +0 -0
  349. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  350. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  351. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/message_utils.py +0 -0
  352. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  353. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/print_buffer.py +0 -0
  354. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  355. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/slice_hasher.py +0 -0
  356. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  357. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  358. {airbyte_cdk-6.33.1 → airbyte_cdk-6.33.1.dev0}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-cdk
3
- Version: 6.33.1
3
+ Version: 6.33.1.dev0
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -40,6 +40,12 @@ properties:
40
40
  "$ref": "#/definitions/Spec"
41
41
  concurrency_level:
42
42
  "$ref": "#/definitions/ConcurrencyLevel"
43
+ api_budget:
44
+ title: API Budget
45
+ description: Defines how many requests can be made to the API in a given time frame. This field accepts either a generic APIBudget or an HTTP-specific configuration (HTTPAPIBudget) to be applied across all streams.
46
+ anyOf:
47
+ - "$ref": "#/definitions/APIBudget"
48
+ - "$ref": "#/definitions/HTTPAPIBudget"
43
49
  metadata:
44
50
  type: object
45
51
  description: For internal Airbyte use only - DO NOT modify manually. Used by consumers of declarative manifests for storing related metadata.
@@ -794,7 +800,7 @@ definitions:
794
800
  description: This option is used to adjust the upper and lower boundaries of each datetime window to beginning and end of the provided target period (day, week, month)
795
801
  type: object
796
802
  required:
797
- - target
803
+ - target
798
804
  properties:
799
805
  target:
800
806
  title: Target
@@ -1365,6 +1371,207 @@ definitions:
1365
1371
  $parameters:
1366
1372
  type: object
1367
1373
  additional_properties: true
1374
+ APIBudget:
1375
+ title: API Budget
1376
+ description: >
1377
+ A generic API budget configuration that defines the policies (rate limiting rules)
1378
+ and the maximum number of attempts to acquire a call credit. This budget does not automatically
1379
+ update itself based on HTTP response headers.
1380
+ type: object
1381
+ required:
1382
+ - type
1383
+ - policies
1384
+ properties:
1385
+ type:
1386
+ type: string
1387
+ enum: [APIBudget]
1388
+ policies:
1389
+ title: Policies
1390
+ description: List of call rate policies that define how many calls are allowed.
1391
+ type: array
1392
+ items:
1393
+ anyOf:
1394
+ - "$ref": "#/definitions/FixedWindowCallRatePolicy"
1395
+ - "$ref": "#/definitions/MovingWindowCallRatePolicy"
1396
+ - "$ref": "#/definitions/UnlimitedCallRatePolicy"
1397
+ maximum_attempts_to_acquire:
1398
+ title: Maximum Attempts to Acquire
1399
+ description: The maximum number of attempts to acquire a call before giving up.
1400
+ type: integer
1401
+ default: 100000
1402
+ additionalProperties: true
1403
+ HTTPAPIBudget:
1404
+ title: HTTP API Budget
1405
+ description: >
1406
+ An HTTP-specific API budget that extends APIBudget by updating rate limiting information based
1407
+ on HTTP response headers. It extracts available calls and the next reset timestamp from the HTTP responses.
1408
+ type: object
1409
+ required:
1410
+ - type
1411
+ - policies
1412
+ properties:
1413
+ type:
1414
+ type: string
1415
+ enum: [HTTPAPIBudget]
1416
+ policies:
1417
+ title: Policies
1418
+ description: List of call rate policies that define how many calls are allowed.
1419
+ type: array
1420
+ items:
1421
+ anyOf:
1422
+ - "$ref": "#/definitions/FixedWindowCallRatePolicy"
1423
+ - "$ref": "#/definitions/MovingWindowCallRatePolicy"
1424
+ - "$ref": "#/definitions/UnlimitedCallRatePolicy"
1425
+ ratelimit_reset_header:
1426
+ title: Rate Limit Reset Header
1427
+ description: The HTTP response header name that indicates when the rate limit resets.
1428
+ type: string
1429
+ default: "ratelimit-reset"
1430
+ ratelimit_remaining_header:
1431
+ title: Rate Limit Remaining Header
1432
+ description: The HTTP response header name that indicates the number of remaining allowed calls.
1433
+ type: string
1434
+ default: "ratelimit-remaining"
1435
+ status_codes_for_ratelimit_hit:
1436
+ title: Status Codes for Rate Limit Hit
1437
+ description: List of HTTP status codes that indicate a rate limit has been hit.
1438
+ type: array
1439
+ items:
1440
+ type: integer
1441
+ default: [429]
1442
+ maximum_attempts_to_acquire:
1443
+ title: Maximum Attempts to Acquire
1444
+ description: The maximum number of attempts to acquire a call before giving up.
1445
+ type: integer
1446
+ default: 100000
1447
+ additionalProperties: true
1448
+ FixedWindowCallRatePolicy:
1449
+ title: Fixed Window Call Rate Policy
1450
+ description: A policy that allows a fixed number of calls within a specific time window.
1451
+ type: object
1452
+ required:
1453
+ - type
1454
+ - next_reset_ts
1455
+ - period
1456
+ - call_limit
1457
+ - matchers
1458
+ properties:
1459
+ type:
1460
+ type: string
1461
+ enum: [FixedWindowCallRatePolicy]
1462
+ next_reset_ts:
1463
+ title: Next Reset Timestamp
1464
+ description: The timestamp when the rate limit will reset.
1465
+ type: string
1466
+ format: date-time
1467
+ period:
1468
+ title: Period
1469
+ description: The time interval for the rate limit window.
1470
+ type: string
1471
+ format: duration
1472
+ call_limit:
1473
+ title: Call Limit
1474
+ description: The maximum number of calls allowed within the period.
1475
+ type: integer
1476
+ matchers:
1477
+ title: Matchers
1478
+ description: List of matchers that define which requests this policy applies to.
1479
+ type: array
1480
+ items:
1481
+ "$ref": "#/definitions/HttpRequestRegexMatcher"
1482
+ additionalProperties: true
1483
+ MovingWindowCallRatePolicy:
1484
+ title: Moving Window Call Rate Policy
1485
+ description: A policy that allows a fixed number of calls within a moving time window.
1486
+ type: object
1487
+ required:
1488
+ - type
1489
+ - rates
1490
+ - matchers
1491
+ properties:
1492
+ type:
1493
+ type: string
1494
+ enum: [MovingWindowCallRatePolicy]
1495
+ rates:
1496
+ title: Rates
1497
+ description: List of rates that define the call limits for different time intervals.
1498
+ type: array
1499
+ items:
1500
+ "$ref": "#/definitions/Rate"
1501
+ matchers:
1502
+ title: Matchers
1503
+ description: List of matchers that define which requests this policy applies to.
1504
+ type: array
1505
+ items:
1506
+ "$ref": "#/definitions/HttpRequestRegexMatcher"
1507
+ additionalProperties: true
1508
+ UnlimitedCallRatePolicy:
1509
+ title: Unlimited Call Rate Policy
1510
+ description: A policy that allows unlimited calls for specific requests.
1511
+ type: object
1512
+ required:
1513
+ - type
1514
+ - matchers
1515
+ properties:
1516
+ type:
1517
+ type: string
1518
+ enum: [UnlimitedCallRatePolicy]
1519
+ matchers:
1520
+ title: Matchers
1521
+ description: List of matchers that define which requests this policy applies to.
1522
+ type: array
1523
+ items:
1524
+ "$ref": "#/definitions/HttpRequestRegexMatcher"
1525
+ additionalProperties: true
1526
+ Rate:
1527
+ title: Rate
1528
+ description: Defines a rate limit with a specific number of calls allowed within a time interval.
1529
+ type: object
1530
+ required:
1531
+ - limit
1532
+ - interval
1533
+ properties:
1534
+ limit:
1535
+ title: Limit
1536
+ description: The maximum number of calls allowed within the interval.
1537
+ type: integer
1538
+ interval:
1539
+ title: Interval
1540
+ description: The time interval for the rate limit.
1541
+ type: string
1542
+ format: duration
1543
+ additionalProperties: true
1544
+ HttpRequestRegexMatcher:
1545
+ title: HTTP Request Matcher
1546
+ description: >
1547
+ Matches HTTP requests based on method, base URL, URL path pattern, query parameters, and headers.
1548
+ Use `url_base` to specify the scheme and host (without trailing slash) and
1549
+ `url_path_pattern` to apply a regex to the request path.
1550
+ type: object
1551
+ properties:
1552
+ method:
1553
+ title: Method
1554
+ description: The HTTP method to match (e.g., GET, POST).
1555
+ type: string
1556
+ url_base:
1557
+ title: URL Base
1558
+ description: The base URL (scheme and host, e.g. "https://api.example.com") to match.
1559
+ type: string
1560
+ url_path_pattern:
1561
+ title: URL Path Pattern
1562
+ description: A regular expression pattern to match the URL path.
1563
+ type: string
1564
+ params:
1565
+ title: Parameters
1566
+ description: The query parameters to match.
1567
+ type: object
1568
+ additionalProperties: true
1569
+ headers:
1570
+ title: Headers
1571
+ description: The headers to match.
1572
+ type: object
1573
+ additionalProperties: true
1574
+ additionalProperties: true
1368
1575
  DefaultErrorHandler:
1369
1576
  title: Default Error Handler
1370
1577
  description: Component defining how to handle errors. Default behavior includes only retrying server errors (HTTP 5XX) and too many requests (HTTP 429) with an exponential backoff.
@@ -137,6 +137,10 @@ class ManifestDeclarativeSource(DeclarativeSource):
137
137
  self._source_config, config
138
138
  )
139
139
 
140
+ api_budget_model = self._source_config.get("api_budget")
141
+ if api_budget_model:
142
+ self._constructor.set_api_budget(api_budget_model, config)
143
+
140
144
  source_streams = [
141
145
  self._constructor.create_component(
142
146
  DeclarativeStreamModel,
@@ -3,6 +3,7 @@
3
3
 
4
4
  from __future__ import annotations
5
5
 
6
+ from datetime import datetime, timedelta
6
7
  from enum import Enum
7
8
  from typing import Any, Dict, List, Literal, Optional, Union
8
9
 
@@ -642,6 +643,45 @@ class OAuthAuthenticator(BaseModel):
642
643
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
643
644
 
644
645
 
646
+ class Rate(BaseModel):
647
+ class Config:
648
+ extra = Extra.allow
649
+
650
+ limit: int = Field(
651
+ ...,
652
+ description="The maximum number of calls allowed within the interval.",
653
+ title="Limit",
654
+ )
655
+ interval: timedelta = Field(
656
+ ..., description="The time interval for the rate limit.", title="Interval"
657
+ )
658
+
659
+
660
+ class HttpRequestRegexMatcher(BaseModel):
661
+ class Config:
662
+ extra = Extra.allow
663
+
664
+ method: Optional[str] = Field(
665
+ None, description="The HTTP method to match (e.g., GET, POST).", title="Method"
666
+ )
667
+ url_base: Optional[str] = Field(
668
+ None,
669
+ description='The base URL (scheme and host, e.g. "https://api.example.com") to match.',
670
+ title="URL Base",
671
+ )
672
+ url_path_pattern: Optional[str] = Field(
673
+ None,
674
+ description="A regular expression pattern to match the URL path.",
675
+ title="URL Path Pattern",
676
+ )
677
+ params: Optional[Dict[str, Any]] = Field(
678
+ None, description="The query parameters to match.", title="Parameters"
679
+ )
680
+ headers: Optional[Dict[str, Any]] = Field(
681
+ None, description="The headers to match.", title="Headers"
682
+ )
683
+
684
+
645
685
  class DpathExtractor(BaseModel):
646
686
  type: Literal["DpathExtractor"]
647
687
  field_path: List[str] = Field(
@@ -1584,6 +1624,60 @@ class DatetimeBasedCursor(BaseModel):
1584
1624
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
1585
1625
 
1586
1626
 
1627
+ class FixedWindowCallRatePolicy(BaseModel):
1628
+ class Config:
1629
+ extra = Extra.allow
1630
+
1631
+ type: Literal["FixedWindowCallRatePolicy"]
1632
+ next_reset_ts: datetime = Field(
1633
+ ...,
1634
+ description="The timestamp when the rate limit will reset.",
1635
+ title="Next Reset Timestamp",
1636
+ )
1637
+ period: timedelta = Field(
1638
+ ..., description="The time interval for the rate limit window.", title="Period"
1639
+ )
1640
+ call_limit: int = Field(
1641
+ ...,
1642
+ description="The maximum number of calls allowed within the period.",
1643
+ title="Call Limit",
1644
+ )
1645
+ matchers: List[HttpRequestRegexMatcher] = Field(
1646
+ ...,
1647
+ description="List of matchers that define which requests this policy applies to.",
1648
+ title="Matchers",
1649
+ )
1650
+
1651
+
1652
+ class MovingWindowCallRatePolicy(BaseModel):
1653
+ class Config:
1654
+ extra = Extra.allow
1655
+
1656
+ type: Literal["MovingWindowCallRatePolicy"]
1657
+ rates: List[Rate] = Field(
1658
+ ...,
1659
+ description="List of rates that define the call limits for different time intervals.",
1660
+ title="Rates",
1661
+ )
1662
+ matchers: List[HttpRequestRegexMatcher] = Field(
1663
+ ...,
1664
+ description="List of matchers that define which requests this policy applies to.",
1665
+ title="Matchers",
1666
+ )
1667
+
1668
+
1669
+ class UnlimitedCallRatePolicy(BaseModel):
1670
+ class Config:
1671
+ extra = Extra.allow
1672
+
1673
+ type: Literal["UnlimitedCallRatePolicy"]
1674
+ matchers: List[HttpRequestRegexMatcher] = Field(
1675
+ ...,
1676
+ description="List of matchers that define which requests this policy applies to.",
1677
+ title="Matchers",
1678
+ )
1679
+
1680
+
1587
1681
  class DefaultErrorHandler(BaseModel):
1588
1682
  type: Literal["DefaultErrorHandler"]
1589
1683
  backoff_strategies: Optional[
@@ -1715,6 +1809,67 @@ class CompositeErrorHandler(BaseModel):
1715
1809
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
1716
1810
 
1717
1811
 
1812
+ class APIBudget(BaseModel):
1813
+ class Config:
1814
+ extra = Extra.allow
1815
+
1816
+ type: Literal["APIBudget"]
1817
+ policies: List[
1818
+ Union[
1819
+ FixedWindowCallRatePolicy,
1820
+ MovingWindowCallRatePolicy,
1821
+ UnlimitedCallRatePolicy,
1822
+ ]
1823
+ ] = Field(
1824
+ ...,
1825
+ description="List of call rate policies that define how many calls are allowed.",
1826
+ title="Policies",
1827
+ )
1828
+ maximum_attempts_to_acquire: Optional[int] = Field(
1829
+ 100000,
1830
+ description="The maximum number of attempts to acquire a call before giving up.",
1831
+ title="Maximum Attempts to Acquire",
1832
+ )
1833
+
1834
+
1835
+ class HTTPAPIBudget(BaseModel):
1836
+ class Config:
1837
+ extra = Extra.allow
1838
+
1839
+ type: Literal["HTTPAPIBudget"]
1840
+ policies: List[
1841
+ Union[
1842
+ FixedWindowCallRatePolicy,
1843
+ MovingWindowCallRatePolicy,
1844
+ UnlimitedCallRatePolicy,
1845
+ ]
1846
+ ] = Field(
1847
+ ...,
1848
+ description="List of call rate policies that define how many calls are allowed.",
1849
+ title="Policies",
1850
+ )
1851
+ ratelimit_reset_header: Optional[str] = Field(
1852
+ "ratelimit-reset",
1853
+ description="The HTTP response header name that indicates when the rate limit resets.",
1854
+ title="Rate Limit Reset Header",
1855
+ )
1856
+ ratelimit_remaining_header: Optional[str] = Field(
1857
+ "ratelimit-remaining",
1858
+ description="The HTTP response header name that indicates the number of remaining allowed calls.",
1859
+ title="Rate Limit Remaining Header",
1860
+ )
1861
+ status_codes_for_ratelimit_hit: Optional[List[int]] = Field(
1862
+ [429],
1863
+ description="List of HTTP status codes that indicate a rate limit has been hit.",
1864
+ title="Status Codes for Rate Limit Hit",
1865
+ )
1866
+ maximum_attempts_to_acquire: Optional[int] = Field(
1867
+ 100000,
1868
+ description="The maximum number of attempts to acquire a call before giving up.",
1869
+ title="Maximum Attempts to Acquire",
1870
+ )
1871
+
1872
+
1718
1873
  class ZipfileDecoder(BaseModel):
1719
1874
  class Config:
1720
1875
  extra = Extra.allow
@@ -1748,6 +1903,11 @@ class DeclarativeSource1(BaseModel):
1748
1903
  definitions: Optional[Dict[str, Any]] = None
1749
1904
  spec: Optional[Spec] = None
1750
1905
  concurrency_level: Optional[ConcurrencyLevel] = None
1906
+ api_budget: Optional[Union[APIBudget, HTTPAPIBudget]] = Field(
1907
+ None,
1908
+ description="Defines how many requests can be made to the API in a given time frame. This field accepts either a generic APIBudget or an HTTP-specific configuration (HTTPAPIBudget) to be applied across all streams.",
1909
+ title="API Budget",
1910
+ )
1751
1911
  metadata: Optional[Dict[str, Any]] = Field(
1752
1912
  None,
1753
1913
  description="For internal Airbyte use only - DO NOT modify manually. Used by consumers of declarative manifests for storing related metadata.",
@@ -1774,6 +1934,11 @@ class DeclarativeSource2(BaseModel):
1774
1934
  definitions: Optional[Dict[str, Any]] = None
1775
1935
  spec: Optional[Spec] = None
1776
1936
  concurrency_level: Optional[ConcurrencyLevel] = None
1937
+ api_budget: Optional[Union[APIBudget, HTTPAPIBudget]] = Field(
1938
+ None,
1939
+ description="Defines how many requests can be made to the API in a given time frame. This field accepts either a generic APIBudget or an HTTP-specific configuration (HTTPAPIBudget) to be applied across all streams.",
1940
+ title="API Budget",
1941
+ )
1777
1942
  metadata: Optional[Dict[str, Any]] = Field(
1778
1943
  None,
1779
1944
  description="For internal Airbyte use only - DO NOT modify manually. Used by consumers of declarative manifests for storing related metadata.",
@@ -112,6 +112,9 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
112
112
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
113
113
  AddFields as AddFieldsModel,
114
114
  )
115
+ from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
116
+ APIBudget as APIBudgetModel,
117
+ )
115
118
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
116
119
  ApiKeyAuthenticator as ApiKeyAuthenticatorModel,
117
120
  )
@@ -226,6 +229,9 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
226
229
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
227
230
  ExponentialBackoffStrategy as ExponentialBackoffStrategyModel,
228
231
  )
232
+ from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
233
+ FixedWindowCallRatePolicy as FixedWindowCallRatePolicyModel,
234
+ )
229
235
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
230
236
  FlattenFields as FlattenFieldsModel,
231
237
  )
@@ -235,12 +241,18 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
235
241
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
236
242
  GzipParser as GzipParserModel,
237
243
  )
244
+ from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
245
+ HTTPAPIBudget as HTTPAPIBudgetModel,
246
+ )
238
247
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
239
248
  HttpComponentsResolver as HttpComponentsResolverModel,
240
249
  )
241
250
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
242
251
  HttpRequester as HttpRequesterModel,
243
252
  )
253
+ from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
254
+ HttpRequestRegexMatcher as HttpRequestRegexMatcherModel,
255
+ )
244
256
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
245
257
  HttpResponseFilter as HttpResponseFilterModel,
246
258
  )
@@ -295,6 +307,9 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
295
307
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
296
308
  MinMaxDatetime as MinMaxDatetimeModel,
297
309
  )
310
+ from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
311
+ MovingWindowCallRatePolicy as MovingWindowCallRatePolicyModel,
312
+ )
298
313
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
299
314
  NoAuth as NoAuthModel,
300
315
  )
@@ -313,6 +328,9 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
313
328
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
314
329
  ParentStreamConfig as ParentStreamConfigModel,
315
330
  )
331
+ from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
332
+ Rate as RateModel,
333
+ )
316
334
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
317
335
  RecordFilter as RecordFilterModel,
318
336
  )
@@ -356,6 +374,9 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
356
374
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
357
375
  TypesMap as TypesMapModel,
358
376
  )
377
+ from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
378
+ UnlimitedCallRatePolicy as UnlimitedCallRatePolicyModel,
379
+ )
359
380
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import ValueType
360
381
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
361
382
  WaitTimeFromHeader as WaitTimeFromHeaderModel,
@@ -469,6 +490,15 @@ from airbyte_cdk.sources.message import (
469
490
  MessageRepository,
470
491
  NoopMessageRepository,
471
492
  )
493
+ from airbyte_cdk.sources.streams.call_rate import (
494
+ APIBudget,
495
+ FixedWindowCallRatePolicy,
496
+ HttpAPIBudget,
497
+ HttpRequestRegexMatcher,
498
+ MovingWindowCallRatePolicy,
499
+ Rate,
500
+ UnlimitedCallRatePolicy,
501
+ )
472
502
  from airbyte_cdk.sources.streams.concurrent.clamping import (
473
503
  ClampingEndProvider,
474
504
  ClampingStrategy,
@@ -520,6 +550,7 @@ class ModelToComponentFactory:
520
550
  self._evaluate_log_level(emit_connector_builder_messages)
521
551
  )
522
552
  self._connector_state_manager = connector_state_manager or ConnectorStateManager()
553
+ self._api_budget: Optional[Union[APIBudget, HttpAPIBudget]] = None
523
554
 
524
555
  def _init_mappings(self) -> None:
525
556
  self.PYDANTIC_MODEL_TO_CONSTRUCTOR: Mapping[Type[BaseModel], Callable[..., Any]] = {
@@ -607,6 +638,13 @@ class ModelToComponentFactory:
607
638
  StreamConfigModel: self.create_stream_config,
608
639
  ComponentMappingDefinitionModel: self.create_components_mapping_definition,
609
640
  ZipfileDecoderModel: self.create_zipfile_decoder,
641
+ APIBudgetModel: self.create_api_budget,
642
+ HTTPAPIBudgetModel: self.create_http_api_budget,
643
+ FixedWindowCallRatePolicyModel: self.create_fixed_window_call_rate_policy,
644
+ MovingWindowCallRatePolicyModel: self.create_moving_window_call_rate_policy,
645
+ UnlimitedCallRatePolicyModel: self.create_unlimited_call_rate_policy,
646
+ RateModel: self.create_rate,
647
+ HttpRequestRegexMatcherModel: self.create_http_request_matcher,
610
648
  }
611
649
 
612
650
  # Needed for the case where we need to perform a second parse on the fields of a custom component
@@ -1902,6 +1940,8 @@ class ModelToComponentFactory:
1902
1940
  )
1903
1941
  )
1904
1942
 
1943
+ api_budget = self._api_budget
1944
+
1905
1945
  request_options_provider = InterpolatedRequestOptionsProvider(
1906
1946
  request_body_data=model.request_body_data,
1907
1947
  request_body_json=model.request_body_json,
@@ -1922,6 +1962,7 @@ class ModelToComponentFactory:
1922
1962
  path=model.path,
1923
1963
  authenticator=authenticator,
1924
1964
  error_handler=error_handler,
1965
+ api_budget=api_budget,
1925
1966
  http_method=HttpMethod[model.http_method.value],
1926
1967
  request_options_provider=request_options_provider,
1927
1968
  config=config,
@@ -2923,3 +2964,103 @@ class ModelToComponentFactory:
2923
2964
  return isinstance(parser.inner_parser, JsonParser)
2924
2965
  else:
2925
2966
  return False
2967
+
2968
+ def create_api_budget(self, model: APIBudgetModel, config: Config, **kwargs: Any) -> APIBudget:
2969
+ policies = [
2970
+ self._create_component_from_model(model=policy, config=config)
2971
+ for policy in model.policies
2972
+ ]
2973
+
2974
+ return APIBudget(
2975
+ policies=policies,
2976
+ maximum_attempts_to_acquire=model.maximum_attempts_to_acquire or 100000,
2977
+ )
2978
+
2979
+ def create_http_api_budget(
2980
+ self, model: HTTPAPIBudgetModel, config: Config, **kwargs: Any
2981
+ ) -> HttpAPIBudget:
2982
+ policies = [
2983
+ self._create_component_from_model(model=policy, config=config)
2984
+ for policy in model.policies
2985
+ ]
2986
+
2987
+ return HttpAPIBudget(
2988
+ policies=policies,
2989
+ maximum_attempts_to_acquire=model.maximum_attempts_to_acquire or 100000,
2990
+ ratelimit_reset_header=model.ratelimit_reset_header or "ratelimit-reset",
2991
+ ratelimit_remaining_header=model.ratelimit_remaining_header or "ratelimit-remaining",
2992
+ status_codes_for_ratelimit_hit=model.status_codes_for_ratelimit_hit or (429,),
2993
+ )
2994
+
2995
+ def create_fixed_window_call_rate_policy(
2996
+ self, model: FixedWindowCallRatePolicyModel, config: Config, **kwargs: Any
2997
+ ) -> FixedWindowCallRatePolicy:
2998
+ matchers = [
2999
+ self._create_component_from_model(model=matcher, config=config)
3000
+ for matcher in model.matchers
3001
+ ]
3002
+ return FixedWindowCallRatePolicy(
3003
+ next_reset_ts=model.next_reset_ts,
3004
+ period=parse_duration(model.period),
3005
+ call_limit=model.call_limit,
3006
+ matchers=matchers,
3007
+ )
3008
+
3009
+ def create_moving_window_call_rate_policy(
3010
+ self, model: MovingWindowCallRatePolicyModel, config: Config, **kwargs: Any
3011
+ ) -> MovingWindowCallRatePolicy:
3012
+ rates = [
3013
+ self._create_component_from_model(model=rate, config=config) for rate in model.rates
3014
+ ]
3015
+ matchers = [
3016
+ self._create_component_from_model(model=matcher, config=config)
3017
+ for matcher in model.matchers
3018
+ ]
3019
+ return MovingWindowCallRatePolicy(
3020
+ rates=rates,
3021
+ matchers=matchers,
3022
+ )
3023
+
3024
+ def create_unlimited_call_rate_policy(
3025
+ self, model: UnlimitedCallRatePolicyModel, config: Config, **kwargs: Any
3026
+ ) -> UnlimitedCallRatePolicy:
3027
+ matchers = [
3028
+ self._create_component_from_model(model=matcher, config=config)
3029
+ for matcher in model.matchers
3030
+ ]
3031
+
3032
+ return UnlimitedCallRatePolicy(
3033
+ matchers=matchers,
3034
+ )
3035
+
3036
+ def create_rate(self, model: RateModel, config: Config, **kwargs: Any) -> Rate:
3037
+ return Rate(
3038
+ limit=model.limit,
3039
+ interval=model.interval,
3040
+ )
3041
+
3042
+ def create_http_request_matcher(
3043
+ self, model: HttpRequestRegexMatcherModel, config: Config, **kwargs: Any
3044
+ ) -> HttpRequestRegexMatcher:
3045
+ return HttpRequestRegexMatcher(
3046
+ method=model.method,
3047
+ url_base=model.url_base,
3048
+ url_path_pattern=model.url_path_pattern,
3049
+ params=model.params,
3050
+ headers=model.headers,
3051
+ )
3052
+
3053
+ def set_api_budget(self, component_definition: ComponentDefinition, config: Config) -> None:
3054
+ model_str = component_definition.get("type")
3055
+ if model_str == "APIBudget":
3056
+ # Annotate model_type as a type that is a subclass of BaseModel
3057
+ model_type: Union[Type[APIBudgetModel], Type[HTTPAPIBudgetModel]] = APIBudgetModel
3058
+ elif model_str == "HTTPAPIBudget":
3059
+ model_type = HTTPAPIBudgetModel
3060
+ else:
3061
+ raise ValueError(f"Unknown API Budget type: {model_str}")
3062
+
3063
+ # create_component expects a type[BaseModel] and returns an instance of that model.
3064
+ self._api_budget = self.create_component(
3065
+ model_type=model_type, component_definition=component_definition, config=config
3066
+ )