airbyte-cdk 6.33.2__tar.gz → 6.33.2.dev1__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.2 → airbyte_cdk-6.33.2.dev1}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/auth/oauth.py +1 -6
  3. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +1 -15
  4. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +208 -1
  5. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/incremental/concurrent_partition_cursor.py +11 -6
  6. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +4 -0
  7. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +165 -0
  8. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +141 -17
  9. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/http_requester.py +3 -0
  10. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/call_rate.py +116 -40
  11. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +0 -3
  12. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/pyproject.toml +1 -1
  13. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/LICENSE.txt +0 -0
  14. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/LICENSE_SHORT +0 -0
  15. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/README.md +0 -0
  16. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/__init__.py +0 -0
  17. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/cli/__init__.py +0 -0
  18. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  19. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  20. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  21. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/config_observation.py +0 -0
  22. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/connector.py +0 -0
  23. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/connector_builder/README.md +0 -0
  24. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/connector_builder/__init__.py +0 -0
  25. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  26. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/connector_builder/main.py +0 -0
  27. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  28. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/connector_builder/models.py +0 -0
  29. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/destinations/__init__.py +0 -0
  30. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/destinations/destination.py +0 -0
  31. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  32. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  33. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  34. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  35. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  36. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  37. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  38. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  39. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  40. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/entrypoint.py +0 -0
  41. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/exception_handler.py +0 -0
  42. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/logger.py +0 -0
  43. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/models/__init__.py +0 -0
  44. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  45. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  46. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  47. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/models/well_known_types.py +0 -0
  48. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/py.typed +0 -0
  49. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/__init__.py +0 -0
  50. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/abstract_source.py +0 -0
  51. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  52. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  53. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  54. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  55. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  56. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  57. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  58. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/config.py +0 -0
  59. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  60. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  61. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  62. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  63. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  64. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  65. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  66. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  67. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  68. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  69. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  70. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  71. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  72. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  73. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  74. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  75. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/checks/check_dynamic_stream.py +0 -0
  76. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  77. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  78. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  79. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  80. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  81. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  82. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  83. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  84. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  85. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  86. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -0
  87. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  88. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  89. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  90. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  91. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  92. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/decoders/zipfile_decoder.py +0 -0
  93. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  94. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  95. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  96. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  97. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  98. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  99. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  100. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  101. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  102. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  103. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  104. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  105. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  106. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  107. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  108. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  109. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  110. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  111. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  112. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  113. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  114. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  115. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  116. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  117. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  118. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  119. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  120. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  121. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  122. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  123. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/parsers/custom_code_compiler.py +0 -0
  124. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  125. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  126. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  127. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  128. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  129. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  130. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  131. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  132. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  133. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  134. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/README.md +0 -0
  135. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  136. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  137. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  138. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  139. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  140. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  141. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  142. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  143. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  144. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  145. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  146. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  147. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  148. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  149. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +0 -0
  150. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  151. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  152. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  153. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  154. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  155. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  156. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  157. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  158. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  159. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  160. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  161. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  162. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  163. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  164. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  165. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  166. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  167. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  168. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  169. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  170. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  171. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  172. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  173. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  174. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  175. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  176. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  177. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  178. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  179. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  180. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  181. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  182. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  183. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  184. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  185. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  186. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  187. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  188. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  189. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  190. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  191. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/transformations/dpath_flatten_fields.py +0 -0
  192. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  193. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  194. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  195. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  196. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  197. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  198. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/types.py +0 -0
  199. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  200. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  201. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  202. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  203. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/embedded/runner.py +0 -0
  204. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/embedded/tools.py +0 -0
  205. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/README.md +0 -0
  206. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  207. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  208. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  209. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  210. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  211. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  212. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  213. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  214. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  215. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  216. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  217. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  218. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  219. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  220. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  221. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  222. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  223. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  224. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  225. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  226. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  227. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  228. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  229. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  230. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  231. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  232. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  233. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  234. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  235. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  236. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  237. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  238. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  239. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  240. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  241. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  242. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  243. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  244. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  245. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  246. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  247. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  248. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  249. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  250. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  251. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/file_based/types.py +0 -0
  252. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/http_config.py +0 -0
  253. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/http_logger.py +0 -0
  254. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/message/__init__.py +0 -0
  255. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/message/repository.py +0 -0
  256. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/source.py +0 -0
  257. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/__init__.py +0 -0
  258. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  259. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  260. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  261. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  262. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  263. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  264. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  265. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  266. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  267. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  268. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  269. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  270. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  271. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/clamping.py +0 -0
  272. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  273. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/cursor_types.py +0 -0
  274. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  275. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  276. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  277. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  278. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  279. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  280. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  281. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  282. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  283. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  284. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  285. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  286. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  287. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/core.py +0 -0
  288. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  289. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  290. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  291. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  292. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  293. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  294. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  295. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  296. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  297. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  298. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  299. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  300. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/http.py +0 -0
  301. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  302. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  303. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  304. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  305. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +0 -0
  306. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  307. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  308. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/types.py +0 -0
  309. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/utils/__init__.py +0 -0
  310. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/utils/casing.py +0 -0
  311. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  312. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  313. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  314. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/utils/transform.py +0 -0
  315. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sources/utils/types.py +0 -0
  316. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sql/__init__.py +0 -0
  317. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sql/_util/__init__.py +0 -0
  318. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sql/_util/hashing.py +0 -0
  319. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  320. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sql/constants.py +0 -0
  321. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sql/exceptions.py +0 -0
  322. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sql/secrets.py +0 -0
  323. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sql/shared/__init__.py +0 -0
  324. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  325. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  326. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/sql/types.py +0 -0
  327. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/__init__.py +0 -0
  328. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/catalog_builder.py +0 -0
  329. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  330. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  331. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  332. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  333. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/mock_http/request.py +0 -0
  334. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/mock_http/response.py +0 -0
  335. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  336. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/state_builder.py +0 -0
  337. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/utils/__init__.py +0 -0
  338. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/utils/data.py +0 -0
  339. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  340. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  341. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/test/utils/reading.py +0 -0
  342. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/__init__.py +0 -0
  343. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  344. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/analytics_message.py +0 -0
  345. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/constants.py +0 -0
  346. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  347. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/datetime_helpers.py +0 -0
  348. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/event_timing.py +0 -0
  349. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  350. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  351. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/message_utils.py +0 -0
  352. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  353. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/print_buffer.py +0 -0
  354. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  355. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/slice_hasher.py +0 -0
  356. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  357. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  358. {airbyte_cdk-6.33.2 → airbyte_cdk-6.33.2.dev1}/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.2
3
+ Version: 6.33.2.dev1
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  Home-page: https://airbyte.com
6
6
  License: MIT
@@ -3,7 +3,7 @@
3
3
  #
4
4
 
5
5
  from dataclasses import InitVar, dataclass, field
6
- from datetime import datetime, timedelta
6
+ from datetime import timedelta
7
7
  from typing import Any, List, Mapping, MutableMapping, Optional, Union
8
8
 
9
9
  from airbyte_cdk.sources.declarative.auth.declarative_authenticator import DeclarativeAuthenticator
@@ -232,13 +232,8 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
232
232
  return self._refresh_request_headers.eval(self.config)
233
233
 
234
234
  def get_token_expiry_date(self) -> AirbyteDateTime:
235
- if not self._has_access_token_been_initialized():
236
- return AirbyteDateTime.from_datetime(datetime.min)
237
235
  return self._token_expiry_date # type: ignore # _token_expiry_date is an AirbyteDateTime. It is never None despite what mypy thinks
238
236
 
239
- def _has_access_token_been_initialized(self) -> bool:
240
- return self._access_token is not None
241
-
242
237
  def set_token_expiry_date(self, value: Union[str, int]) -> None:
243
238
  self._token_expiry_date = self._parse_token_expiration_date(value)
244
239
 
@@ -3,7 +3,7 @@
3
3
  #
4
4
 
5
5
  import logging
6
- from typing import Any, Generic, Iterator, List, Mapping, MutableMapping, Optional, Tuple
6
+ from typing import Any, Generic, Iterator, List, Mapping, Optional, Tuple
7
7
 
8
8
  from airbyte_cdk.models import (
9
9
  AirbyteCatalog,
@@ -224,7 +224,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
224
224
  stream_state = self._connector_state_manager.get_stream_state(
225
225
  stream_name=declarative_stream.name, namespace=declarative_stream.namespace
226
226
  )
227
- stream_state = self._migrate_state(declarative_stream, stream_state)
228
227
 
229
228
  retriever = self._get_retriever(declarative_stream, stream_state)
230
229
 
@@ -332,8 +331,6 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
332
331
  stream_state = self._connector_state_manager.get_stream_state(
333
332
  stream_name=declarative_stream.name, namespace=declarative_stream.namespace
334
333
  )
335
- stream_state = self._migrate_state(declarative_stream, stream_state)
336
-
337
334
  partition_router = declarative_stream.retriever.stream_slicer._partition_router
338
335
 
339
336
  perpartition_cursor = (
@@ -524,14 +521,3 @@ class ConcurrentDeclarativeSource(ManifestDeclarativeSource, Generic[TState]):
524
521
  if stream.stream.name not in concurrent_stream_names
525
522
  ]
526
523
  )
527
-
528
- @staticmethod
529
- def _migrate_state(
530
- declarative_stream: DeclarativeStream, stream_state: MutableMapping[str, Any]
531
- ) -> MutableMapping[str, Any]:
532
- for state_migration in declarative_stream.state_migrations:
533
- if state_migration.should_migrate(stream_state):
534
- # The state variable is expected to be mutable but the migrate method returns an immutable mapping.
535
- stream_state = dict(state_migration.migrate(stream_state))
536
-
537
- return stream_state
@@ -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.
@@ -58,7 +58,8 @@ class ConcurrentPerPartitionCursor(Cursor):
58
58
  CurrentPerPartitionCursor expects the state of the ConcurrentCursor to follow the format {cursor_field: cursor_value}.
59
59
  """
60
60
 
61
- DEFAULT_MAX_PARTITIONS_NUMBER = 10000
61
+ DEFAULT_MAX_PARTITIONS_NUMBER = 25_000
62
+ SWITCH_TO_GLOBAL_LIMIT = 1000
62
63
  _NO_STATE: Mapping[str, Any] = {}
63
64
  _NO_CURSOR_STATE: Mapping[str, Any] = {}
64
65
  _GLOBAL_STATE_KEY = "state"
@@ -99,7 +100,7 @@ class ConcurrentPerPartitionCursor(Cursor):
99
100
  self._new_global_cursor: Optional[StreamState] = None
100
101
  self._lookback_window: int = 0
101
102
  self._parent_state: Optional[StreamState] = None
102
- self._over_limit: int = 0
103
+ self._number_of_partitions: int = 0
103
104
  self._use_global_cursor: bool = False
104
105
  self._partition_serializer = PerPartitionKeySerializer()
105
106
 
@@ -233,8 +234,8 @@ class ConcurrentPerPartitionCursor(Cursor):
233
234
  or removed due to being the oldest.
234
235
  """
235
236
  with self._lock:
237
+ self._number_of_partitions += 1
236
238
  while len(self._cursor_per_partition) > self.DEFAULT_MAX_PARTITIONS_NUMBER - 1:
237
- self._over_limit += 1
238
239
  # Try removing finished partitions first
239
240
  for partition_key in list(self._cursor_per_partition.keys()):
240
241
  if (
@@ -245,7 +246,7 @@ class ConcurrentPerPartitionCursor(Cursor):
245
246
  partition_key
246
247
  ) # Remove the oldest partition
247
248
  logger.warning(
248
- f"The maximum number of partitions has been reached. Dropping the oldest finished partition: {oldest_partition}. Over limit: {self._over_limit}."
249
+ f"The maximum number of partitions has been reached. Dropping the oldest finished partition: {oldest_partition}. Over limit: {self._number_of_partitions}."
249
250
  )
250
251
  break
251
252
  else:
@@ -254,7 +255,7 @@ class ConcurrentPerPartitionCursor(Cursor):
254
255
  1
255
256
  ] # Remove the oldest partition
256
257
  logger.warning(
257
- f"The maximum number of partitions has been reached. Dropping the oldest partition: {oldest_partition}. Over limit: {self._over_limit}."
258
+ f"The maximum number of partitions has been reached. Dropping the oldest partition: {oldest_partition}. Over limit: {self._number_of_partitions}."
258
259
  )
259
260
 
260
261
  def _set_initial_state(self, stream_state: StreamState) -> None:
@@ -355,6 +356,10 @@ class ConcurrentPerPartitionCursor(Cursor):
355
356
 
356
357
  def observe(self, record: Record) -> None:
357
358
  if not self._use_global_cursor and self.limit_reached():
359
+ logger.info(
360
+ f"Exceeded the 'SWITCH_TO_GLOBAL_LIMIT' of {self.SWITCH_TO_GLOBAL_LIMIT}. "
361
+ f"Switching to global cursor for {self._stream_name}."
362
+ )
358
363
  self._use_global_cursor = True
359
364
 
360
365
  if not record.associated_slice:
@@ -397,4 +402,4 @@ class ConcurrentPerPartitionCursor(Cursor):
397
402
  return cursor
398
403
 
399
404
  def limit_reached(self) -> bool:
400
- return self._over_limit > self.DEFAULT_MAX_PARTITIONS_NUMBER
405
+ return self._number_of_partitions > self.SWITCH_TO_GLOBAL_LIMIT
@@ -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.",