airbyte-cdk 6.18.0.dev1__tar.gz → 6.18.1__tar.gz

Sign up to get free protection for your applications and to get access to all the features.
Files changed (349) hide show
  1. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/PKG-INFO +1 -1
  2. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/auth/oauth.py +26 -0
  3. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/declarative_component_schema.yaml +52 -34
  4. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/decoders/composite_raw_decoder.py +0 -28
  5. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/models/declarative_component_schema.py +42 -18
  6. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/parsers/model_to_component_factory.py +25 -11
  7. airbyte_cdk-6.18.1/airbyte_cdk/sources/declarative/requesters/README.md +57 -0
  8. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/http_job_repository.py +33 -4
  9. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_oauth.py +20 -4
  10. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/requests_native_auth/oauth.py +34 -4
  11. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/types.py +3 -0
  12. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/pyproject.toml +1 -1
  13. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/LICENSE.txt +0 -0
  14. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/README.md +0 -0
  15. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/__init__.py +0 -0
  16. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/cli/__init__.py +0 -0
  17. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/cli/source_declarative_manifest/__init__.py +0 -0
  18. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/cli/source_declarative_manifest/_run.py +0 -0
  19. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/cli/source_declarative_manifest/spec.json +0 -0
  20. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/config_observation.py +0 -0
  21. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/connector.py +0 -0
  22. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/connector_builder/README.md +0 -0
  23. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/connector_builder/__init__.py +0 -0
  24. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/connector_builder/connector_builder_handler.py +0 -0
  25. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/connector_builder/main.py +0 -0
  26. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/connector_builder/message_grouper.py +0 -0
  27. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/connector_builder/models.py +0 -0
  28. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/destinations/__init__.py +0 -0
  29. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/destinations/destination.py +0 -0
  30. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/destinations/vector_db_based/README.md +0 -0
  31. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/destinations/vector_db_based/__init__.py +0 -0
  32. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/destinations/vector_db_based/config.py +0 -0
  33. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/destinations/vector_db_based/document_processor.py +0 -0
  34. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/destinations/vector_db_based/embedder.py +0 -0
  35. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/destinations/vector_db_based/indexer.py +0 -0
  36. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/destinations/vector_db_based/test_utils.py +0 -0
  37. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/destinations/vector_db_based/utils.py +0 -0
  38. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/destinations/vector_db_based/writer.py +0 -0
  39. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/entrypoint.py +0 -0
  40. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/exception_handler.py +0 -0
  41. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/logger.py +0 -0
  42. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/models/__init__.py +0 -0
  43. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/models/airbyte_protocol.py +0 -0
  44. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/models/airbyte_protocol_serializers.py +0 -0
  45. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/models/file_transfer_record_message.py +0 -0
  46. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/models/well_known_types.py +0 -0
  47. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/py.typed +0 -0
  48. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/__init__.py +0 -0
  49. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/abstract_source.py +0 -0
  50. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/concurrent_source/__init__.py +0 -0
  51. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/concurrent_source/concurrent_read_processor.py +0 -0
  52. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/concurrent_source/concurrent_source.py +0 -0
  53. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/concurrent_source/concurrent_source_adapter.py +0 -0
  54. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/concurrent_source/partition_generation_completed_sentinel.py +0 -0
  55. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/concurrent_source/stream_thread_exception.py +0 -0
  56. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/concurrent_source/thread_pool_manager.py +0 -0
  57. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/config.py +0 -0
  58. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/connector_state_manager.py +0 -0
  59. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/__init__.py +0 -0
  60. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/async_job/__init__.py +0 -0
  61. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/async_job/job.py +0 -0
  62. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/async_job/job_orchestrator.py +0 -0
  63. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/async_job/job_tracker.py +0 -0
  64. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/async_job/repository.py +0 -0
  65. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/async_job/status.py +0 -0
  66. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/async_job/timer.py +0 -0
  67. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/auth/__init__.py +0 -0
  68. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/auth/declarative_authenticator.py +0 -0
  69. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/auth/jwt.py +0 -0
  70. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/auth/selective_authenticator.py +0 -0
  71. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/auth/token.py +0 -0
  72. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/auth/token_provider.py +0 -0
  73. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/checks/__init__.py +0 -0
  74. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/checks/check_stream.py +0 -0
  75. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/checks/connection_checker.py +0 -0
  76. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/concurrency_level/__init__.py +0 -0
  77. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/concurrency_level/concurrency_level.py +0 -0
  78. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/concurrent_declarative_source.py +0 -0
  79. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/datetime/__init__.py +0 -0
  80. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/datetime/datetime_parser.py +0 -0
  81. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/datetime/min_max_datetime.py +0 -0
  82. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/declarative_source.py +0 -0
  83. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/declarative_stream.py +0 -0
  84. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/decoders/__init__.py +0 -0
  85. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/decoders/decoder.py +0 -0
  86. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/decoders/json_decoder.py +0 -0
  87. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/decoders/noop_decoder.py +0 -0
  88. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/decoders/pagination_decoder_decorator.py +0 -0
  89. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/decoders/xml_decoder.py +0 -0
  90. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/exceptions.py +0 -0
  91. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/extractors/__init__.py +0 -0
  92. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/extractors/dpath_extractor.py +0 -0
  93. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/extractors/http_selector.py +0 -0
  94. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/extractors/record_extractor.py +0 -0
  95. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/extractors/record_filter.py +0 -0
  96. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/extractors/record_selector.py +0 -0
  97. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/extractors/response_to_file_extractor.py +0 -0
  98. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/extractors/type_transformer.py +0 -0
  99. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/incremental/__init__.py +0 -0
  100. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/incremental/datetime_based_cursor.py +0 -0
  101. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/incremental/declarative_cursor.py +0 -0
  102. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/incremental/global_substream_cursor.py +0 -0
  103. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/incremental/per_partition_cursor.py +0 -0
  104. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/incremental/per_partition_with_global.py +0 -0
  105. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/incremental/resumable_full_refresh_cursor.py +0 -0
  106. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/interpolation/__init__.py +0 -0
  107. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/interpolation/filters.py +0 -0
  108. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_boolean.py +0 -0
  109. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_mapping.py +0 -0
  110. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_nested_mapping.py +0 -0
  111. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/interpolation/interpolated_string.py +0 -0
  112. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/interpolation/interpolation.py +0 -0
  113. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/interpolation/jinja.py +0 -0
  114. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/interpolation/macros.py +0 -0
  115. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/manifest_declarative_source.py +0 -0
  116. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/migrations/__init__.py +0 -0
  117. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/migrations/legacy_to_per_partition_state_migration.py +0 -0
  118. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/migrations/state_migration.py +0 -0
  119. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/models/__init__.py +0 -0
  120. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/parsers/__init__.py +0 -0
  121. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/parsers/custom_exceptions.py +0 -0
  122. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/parsers/manifest_component_transformer.py +0 -0
  123. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/parsers/manifest_reference_resolver.py +0 -0
  124. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/partition_routers/__init__.py +0 -0
  125. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/partition_routers/async_job_partition_router.py +0 -0
  126. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/partition_routers/cartesian_product_stream_slicer.py +0 -0
  127. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/partition_routers/list_partition_router.py +0 -0
  128. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/partition_routers/partition_router.py +0 -0
  129. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/partition_routers/single_partition_router.py +0 -0
  130. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/partition_routers/substream_partition_router.py +0 -0
  131. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/__init__.py +0 -0
  132. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/__init__.py +0 -0
  133. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/__init__.py +0 -0
  134. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/constant_backoff_strategy.py +0 -0
  135. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/exponential_backoff_strategy.py +0 -0
  136. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/header_helper.py +0 -0
  137. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_time_from_header_backoff_strategy.py +0 -0
  138. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategies/wait_until_time_from_header_backoff_strategy.py +0 -0
  139. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/backoff_strategy.py +0 -0
  140. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/composite_error_handler.py +0 -0
  141. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_error_handler.py +0 -0
  142. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/default_http_response_filter.py +0 -0
  143. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/error_handler.py +0 -0
  144. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/error_handlers/http_response_filter.py +0 -0
  145. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/http_requester.py +0 -0
  146. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/paginators/__init__.py +0 -0
  147. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/paginators/default_paginator.py +0 -0
  148. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/paginators/no_pagination.py +0 -0
  149. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/paginators/paginator.py +0 -0
  150. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/__init__.py +0 -0
  151. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/cursor_pagination_strategy.py +0 -0
  152. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/offset_increment.py +0 -0
  153. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/page_increment.py +0 -0
  154. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/pagination_strategy.py +0 -0
  155. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/paginators/strategies/stop_condition.py +0 -0
  156. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/request_option.py +0 -0
  157. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/request_options/__init__.py +0 -0
  158. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/request_options/datetime_based_request_options_provider.py +0 -0
  159. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/request_options/default_request_options_provider.py +0 -0
  160. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_nested_request_input_provider.py +0 -0
  161. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_input_provider.py +0 -0
  162. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/request_options/interpolated_request_options_provider.py +0 -0
  163. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/request_options/request_options_provider.py +0 -0
  164. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/request_path.py +0 -0
  165. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/requesters/requester.py +0 -0
  166. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/resolvers/__init__.py +0 -0
  167. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/resolvers/components_resolver.py +0 -0
  168. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/resolvers/config_components_resolver.py +0 -0
  169. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/resolvers/http_components_resolver.py +0 -0
  170. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/retrievers/__init__.py +0 -0
  171. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/retrievers/async_retriever.py +0 -0
  172. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/retrievers/retriever.py +0 -0
  173. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/retrievers/simple_retriever.py +0 -0
  174. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/schema/__init__.py +0 -0
  175. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/schema/default_schema_loader.py +0 -0
  176. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/schema/dynamic_schema_loader.py +0 -0
  177. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/schema/inline_schema_loader.py +0 -0
  178. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/schema/json_file_schema_loader.py +0 -0
  179. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/schema/schema_loader.py +0 -0
  180. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/spec/__init__.py +0 -0
  181. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/spec/spec.py +0 -0
  182. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/stream_slicers/__init__.py +0 -0
  183. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/stream_slicers/declarative_partition_generator.py +0 -0
  184. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/stream_slicers/stream_slicer.py +0 -0
  185. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/transformations/__init__.py +0 -0
  186. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/transformations/add_fields.py +0 -0
  187. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/transformations/flatten_fields.py +0 -0
  188. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/transformations/keys_replace_transformation.py +0 -0
  189. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/transformations/keys_to_lower_transformation.py +0 -0
  190. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/transformations/keys_to_snake_transformation.py +0 -0
  191. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/transformations/remove_fields.py +0 -0
  192. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/transformations/transformation.py +0 -0
  193. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/types.py +0 -0
  194. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/declarative/yaml_declarative_source.py +0 -0
  195. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/embedded/__init__.py +0 -0
  196. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/embedded/base_integration.py +0 -0
  197. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/embedded/catalog.py +0 -0
  198. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/embedded/runner.py +0 -0
  199. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/embedded/tools.py +0 -0
  200. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/README.md +0 -0
  201. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/__init__.py +0 -0
  202. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/availability_strategy/__init__.py +0 -0
  203. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/availability_strategy/abstract_file_based_availability_strategy.py +0 -0
  204. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/availability_strategy/default_file_based_availability_strategy.py +0 -0
  205. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/config/__init__.py +0 -0
  206. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/config/abstract_file_based_spec.py +0 -0
  207. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/config/avro_format.py +0 -0
  208. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/config/csv_format.py +0 -0
  209. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/config/excel_format.py +0 -0
  210. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/config/file_based_stream_config.py +0 -0
  211. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/config/jsonl_format.py +0 -0
  212. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/config/parquet_format.py +0 -0
  213. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/config/unstructured_format.py +0 -0
  214. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/discovery_policy/__init__.py +0 -0
  215. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/discovery_policy/abstract_discovery_policy.py +0 -0
  216. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/discovery_policy/default_discovery_policy.py +0 -0
  217. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/exceptions.py +0 -0
  218. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/file_based_source.py +0 -0
  219. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/file_based_stream_reader.py +0 -0
  220. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/file_types/__init__.py +0 -0
  221. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/file_types/avro_parser.py +0 -0
  222. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/file_types/csv_parser.py +0 -0
  223. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/file_types/excel_parser.py +0 -0
  224. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/file_types/file_transfer.py +0 -0
  225. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/file_types/file_type_parser.py +0 -0
  226. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/file_types/jsonl_parser.py +0 -0
  227. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/file_types/parquet_parser.py +0 -0
  228. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/file_types/unstructured_parser.py +0 -0
  229. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/remote_file.py +0 -0
  230. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/schema_helpers.py +0 -0
  231. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/schema_validation_policies/__init__.py +0 -0
  232. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/schema_validation_policies/abstract_schema_validation_policy.py +0 -0
  233. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/schema_validation_policies/default_schema_validation_policies.py +0 -0
  234. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/stream/__init__.py +0 -0
  235. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/stream/abstract_file_based_stream.py +0 -0
  236. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/stream/concurrent/__init__.py +0 -0
  237. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/stream/concurrent/adapters.py +0 -0
  238. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/__init__.py +0 -0
  239. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/abstract_concurrent_file_based_cursor.py +0 -0
  240. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_concurrent_cursor.py +0 -0
  241. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/stream/concurrent/cursor/file_based_final_state_cursor.py +0 -0
  242. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/stream/cursor/__init__.py +0 -0
  243. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/stream/cursor/abstract_file_based_cursor.py +0 -0
  244. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/stream/cursor/default_file_based_cursor.py +0 -0
  245. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/stream/default_file_based_stream.py +0 -0
  246. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/file_based/types.py +0 -0
  247. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/http_config.py +0 -0
  248. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/http_logger.py +0 -0
  249. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/message/__init__.py +0 -0
  250. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/message/repository.py +0 -0
  251. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/source.py +0 -0
  252. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/__init__.py +0 -0
  253. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/availability_strategy.py +0 -0
  254. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/call_rate.py +0 -0
  255. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/checkpoint/__init__.py +0 -0
  256. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/checkpoint/checkpoint_reader.py +0 -0
  257. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/checkpoint/cursor.py +0 -0
  258. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/checkpoint/per_partition_key_serializer.py +0 -0
  259. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/checkpoint/resumable_full_refresh_cursor.py +0 -0
  260. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/checkpoint/substream_resumable_full_refresh_cursor.py +0 -0
  261. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/README.md +0 -0
  262. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/__init__.py +0 -0
  263. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/abstract_stream.py +0 -0
  264. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/abstract_stream_facade.py +0 -0
  265. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/adapters.py +0 -0
  266. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/availability_strategy.py +0 -0
  267. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/cursor.py +0 -0
  268. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/default_stream.py +0 -0
  269. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/exceptions.py +0 -0
  270. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/helpers.py +0 -0
  271. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/partition_enqueuer.py +0 -0
  272. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/partition_reader.py +0 -0
  273. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/partitions/__init__.py +0 -0
  274. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/partitions/partition.py +0 -0
  275. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/partitions/partition_generator.py +0 -0
  276. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/partitions/stream_slicer.py +0 -0
  277. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/partitions/types.py +0 -0
  278. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/state_converters/__init__.py +0 -0
  279. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/state_converters/abstract_stream_state_converter.py +0 -0
  280. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/concurrent/state_converters/datetime_stream_state_converter.py +0 -0
  281. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/core.py +0 -0
  282. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/__init__.py +0 -0
  283. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/availability_strategy.py +0 -0
  284. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/error_handlers/__init__.py +0 -0
  285. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/error_handlers/backoff_strategy.py +0 -0
  286. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/error_handlers/default_backoff_strategy.py +0 -0
  287. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/error_handlers/default_error_mapping.py +0 -0
  288. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/error_handlers/error_handler.py +0 -0
  289. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/error_handlers/error_message_parser.py +0 -0
  290. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/error_handlers/http_status_error_handler.py +0 -0
  291. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/error_handlers/json_error_message_parser.py +0 -0
  292. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/error_handlers/response_models.py +0 -0
  293. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/exceptions.py +0 -0
  294. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/http.py +0 -0
  295. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/http_client.py +0 -0
  296. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/rate_limiting.py +0 -0
  297. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/requests_native_auth/__init__.py +0 -0
  298. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/requests_native_auth/abstract_token.py +0 -0
  299. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/http/requests_native_auth/token.py +0 -0
  300. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/streams/utils/__init__.py +0 -0
  301. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/utils/__init__.py +0 -0
  302. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/utils/casing.py +0 -0
  303. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/utils/record_helper.py +0 -0
  304. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/utils/schema_helpers.py +0 -0
  305. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/utils/slice_logger.py +0 -0
  306. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/utils/transform.py +0 -0
  307. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sources/utils/types.py +0 -0
  308. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sql/__init__.py +0 -0
  309. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sql/_util/__init__.py +0 -0
  310. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sql/_util/hashing.py +0 -0
  311. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sql/_util/name_normalizers.py +0 -0
  312. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sql/constants.py +0 -0
  313. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sql/exceptions.py +0 -0
  314. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sql/secrets.py +0 -0
  315. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sql/shared/__init__.py +0 -0
  316. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sql/shared/catalog_providers.py +0 -0
  317. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sql/shared/sql_processor.py +0 -0
  318. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/sql/types.py +0 -0
  319. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/__init__.py +0 -0
  320. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/catalog_builder.py +0 -0
  321. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/entrypoint_wrapper.py +0 -0
  322. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/mock_http/__init__.py +0 -0
  323. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/mock_http/matcher.py +0 -0
  324. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/mock_http/mocker.py +0 -0
  325. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/mock_http/request.py +0 -0
  326. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/mock_http/response.py +0 -0
  327. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/mock_http/response_builder.py +0 -0
  328. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/state_builder.py +0 -0
  329. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/utils/__init__.py +0 -0
  330. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/utils/data.py +0 -0
  331. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/utils/http_mocking.py +0 -0
  332. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/utils/manifest_only_fixtures.py +0 -0
  333. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/test/utils/reading.py +0 -0
  334. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/__init__.py +0 -0
  335. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/airbyte_secrets_utils.py +0 -0
  336. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/analytics_message.py +0 -0
  337. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/constants.py +0 -0
  338. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/datetime_format_inferrer.py +0 -0
  339. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/event_timing.py +0 -0
  340. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/is_cloud_environment.py +0 -0
  341. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/mapping_helpers.py +0 -0
  342. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/message_utils.py +0 -0
  343. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/oneof_option_config.py +0 -0
  344. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/print_buffer.py +0 -0
  345. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/schema_inferrer.py +0 -0
  346. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/slice_hasher.py +0 -0
  347. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/spec_schema_transformations.py +0 -0
  348. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/stream_status_utils.py +0 -0
  349. {airbyte_cdk-6.18.0.dev1 → airbyte_cdk-6.18.1}/airbyte_cdk/utils/traced_exception.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: airbyte-cdk
3
- Version: 6.18.0.dev1
3
+ Version: 6.18.1
4
4
  Summary: A framework for writing Airbyte Connectors.
5
5
  License: MIT
6
6
  Keywords: airbyte,connector-development-kit,cdk
@@ -56,8 +56,12 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
56
56
  token_expiry_is_time_of_expiration: bool = False
57
57
  access_token_name: Union[InterpolatedString, str] = "access_token"
58
58
  access_token_value: Optional[Union[InterpolatedString, str]] = None
59
+ client_id_name: Union[InterpolatedString, str] = "client_id"
60
+ client_secret_name: Union[InterpolatedString, str] = "client_secret"
59
61
  expires_in_name: Union[InterpolatedString, str] = "expires_in"
62
+ refresh_token_name: Union[InterpolatedString, str] = "refresh_token"
60
63
  refresh_request_body: Optional[Mapping[str, Any]] = None
64
+ grant_type_name: Union[InterpolatedString, str] = "grant_type"
61
65
  grant_type: Union[InterpolatedString, str] = "refresh_token"
62
66
  message_repository: MessageRepository = NoopMessageRepository()
63
67
 
@@ -69,8 +73,15 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
69
73
  )
70
74
  else:
71
75
  self._token_refresh_endpoint = None
76
+ self._client_id_name = InterpolatedString.create(self.client_id_name, parameters=parameters)
72
77
  self._client_id = InterpolatedString.create(self.client_id, parameters=parameters)
78
+ self._client_secret_name = InterpolatedString.create(
79
+ self.client_secret_name, parameters=parameters
80
+ )
73
81
  self._client_secret = InterpolatedString.create(self.client_secret, parameters=parameters)
82
+ self._refresh_token_name = InterpolatedString.create(
83
+ self.refresh_token_name, parameters=parameters
84
+ )
74
85
  if self.refresh_token is not None:
75
86
  self._refresh_token: Optional[InterpolatedString] = InterpolatedString.create(
76
87
  self.refresh_token, parameters=parameters
@@ -83,6 +94,9 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
83
94
  self.expires_in_name = InterpolatedString.create(
84
95
  self.expires_in_name, parameters=parameters
85
96
  )
97
+ self.grant_type_name = InterpolatedString.create(
98
+ self.grant_type_name, parameters=parameters
99
+ )
86
100
  self.grant_type = InterpolatedString.create(self.grant_type, parameters=parameters)
87
101
  self._refresh_request_body = InterpolatedMapping(
88
102
  self.refresh_request_body or {}, parameters=parameters
@@ -122,18 +136,27 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
122
136
  return refresh_token_endpoint
123
137
  return None
124
138
 
139
+ def get_client_id_name(self) -> str:
140
+ return self._client_id_name.eval(self.config) # type: ignore # eval returns a string in this context
141
+
125
142
  def get_client_id(self) -> str:
126
143
  client_id: str = self._client_id.eval(self.config)
127
144
  if not client_id:
128
145
  raise ValueError("OAuthAuthenticator was unable to evaluate client_id parameter")
129
146
  return client_id
130
147
 
148
+ def get_client_secret_name(self) -> str:
149
+ return self._client_secret_name.eval(self.config) # type: ignore # eval returns a string in this context
150
+
131
151
  def get_client_secret(self) -> str:
132
152
  client_secret: str = self._client_secret.eval(self.config)
133
153
  if not client_secret:
134
154
  raise ValueError("OAuthAuthenticator was unable to evaluate client_secret parameter")
135
155
  return client_secret
136
156
 
157
+ def get_refresh_token_name(self) -> str:
158
+ return self._refresh_token_name.eval(self.config) # type: ignore # eval returns a string in this context
159
+
137
160
  def get_refresh_token(self) -> Optional[str]:
138
161
  return None if self._refresh_token is None else str(self._refresh_token.eval(self.config))
139
162
 
@@ -146,6 +169,9 @@ class DeclarativeOauth2Authenticator(AbstractOauth2Authenticator, DeclarativeAut
146
169
  def get_expires_in_name(self) -> str:
147
170
  return self.expires_in_name.eval(self.config) # type: ignore # eval returns a string in this context
148
171
 
172
+ def get_grant_type_name(self) -> str:
173
+ return self.grant_type_name.eval(self.config) # type: ignore # eval returns a string in this context
174
+
149
175
  def get_grant_type(self) -> str:
150
176
  return self.grant_type.eval(self.config) # type: ignore # eval returns a string in this context
151
177
 
@@ -678,7 +678,7 @@ definitions:
678
678
  properties:
679
679
  type:
680
680
  type: string
681
- enum: [CustomSchemaNormalization]
681
+ enum: [ CustomSchemaNormalization ]
682
682
  class_name:
683
683
  title: Class Name
684
684
  description: Fully-qualified name of the class that will be implementing the custom normalization. The format is `source_<name>.<package>.<class_name>`.
@@ -1047,6 +1047,13 @@ definitions:
1047
1047
  type:
1048
1048
  type: string
1049
1049
  enum: [OAuthAuthenticator]
1050
+ client_id_name:
1051
+ title: Client ID Property Name
1052
+ description: The name of the property to use to refresh the `access_token`.
1053
+ type: string
1054
+ default: "client_id"
1055
+ examples:
1056
+ - custom_app_id
1050
1057
  client_id:
1051
1058
  title: Client ID
1052
1059
  description: The OAuth client ID. Fill it in the user inputs.
@@ -1054,6 +1061,13 @@ definitions:
1054
1061
  examples:
1055
1062
  - "{{ config['client_id }}"
1056
1063
  - "{{ config['credentials']['client_id }}"
1064
+ client_secret_name:
1065
+ title: Client Secret Property Name
1066
+ description: The name of the property to use to refresh the `access_token`.
1067
+ type: string
1068
+ default: "client_secret"
1069
+ examples:
1070
+ - custom_app_secret
1057
1071
  client_secret:
1058
1072
  title: Client Secret
1059
1073
  description: The OAuth client secret. Fill it in the user inputs.
@@ -1061,6 +1075,13 @@ definitions:
1061
1075
  examples:
1062
1076
  - "{{ config['client_secret }}"
1063
1077
  - "{{ config['credentials']['client_secret }}"
1078
+ refresh_token_name:
1079
+ title: Refresh Token Property Name
1080
+ description: The name of the property to use to refresh the `access_token`.
1081
+ type: string
1082
+ default: "refresh_token"
1083
+ examples:
1084
+ - custom_app_refresh_value
1064
1085
  refresh_token:
1065
1086
  title: Refresh Token
1066
1087
  description: Credential artifact used to get a new access token.
@@ -1094,6 +1115,13 @@ definitions:
1094
1115
  default: "expires_in"
1095
1116
  examples:
1096
1117
  - expires_in
1118
+ grant_type_name:
1119
+ title: Grant Type Property Name
1120
+ description: The name of the property to use to refresh the `access_token`.
1121
+ type: string
1122
+ default: "grant_type"
1123
+ examples:
1124
+ - custom_grant_type
1097
1125
  grant_type:
1098
1126
  title: Grant Type
1099
1127
  description: Specifies the OAuth2 grant type. If set to refresh_token, the refresh_token needs to be provided as well. For client_credentials, only client id and secret are required. Other grant types are not officially supported.
@@ -2014,20 +2042,6 @@ definitions:
2014
2042
  $parameters:
2015
2043
  type: object
2016
2044
  additionalProperties: true
2017
- JsonParser:
2018
- title: JsonParser
2019
- description: Parser used for parsing str, bytes, or bytearray data and returning data in a dictionary format.
2020
- type: object
2021
- additionalProperties: true
2022
- required:
2023
- - type
2024
- properties:
2025
- type:
2026
- type: string
2027
- enum: [JsonParser]
2028
- encoding:
2029
- type: string
2030
- default: utf-8
2031
2045
  ListPartitionRouter:
2032
2046
  title: List Partition Router
2033
2047
  description: A Partition router that specifies a list of attributes where each attribute describes a portion of the complete data set for a stream. During a sync, each value is iterated over and can be used as input to outbound API requests.
@@ -2218,15 +2232,15 @@ definitions:
2218
2232
  Pertains to the fields defined by the connector relating to the OAuth flow.
2219
2233
 
2220
2234
  Interpolation capabilities:
2221
- - The variables placeholders are declared as `{my_var}`.
2222
- - The nested resolution variables like `{{my_nested_var}}` is allowed as well.
2235
+ - The variables placeholders are declared as `{{my_var}}`.
2236
+ - The nested resolution variables like `{{ {{my_nested_var}} }}` is allowed as well.
2223
2237
 
2224
2238
  - The allowed interpolation context is:
2225
- + base64Encoder - encode to `base64`, {base64Encoder:{my_var_a}:{my_var_b}}
2226
- + base64Decorer - decode from `base64` encoded string, {base64Decoder:{my_string_variable_or_string_value}}
2227
- + urlEncoder - encode the input string to URL-like format, {urlEncoder:https://test.host.com/endpoint}
2228
- + urlDecorer - decode the input url-encoded string into text format, {urlDecoder:https%3A%2F%2Fairbyte.io}
2229
- + codeChallengeS256 - get the `codeChallenge` encoded value to provide additional data-provider specific authorisation values, {codeChallengeS256:{state_value}}
2239
+ + base64Encoder - encode to `base64`, {{ {{my_var_a}}:{{my_var_b}} | base64Encoder }}
2240
+ + base64Decorer - decode from `base64` encoded string, {{ {{my_string_variable_or_string_value}} | base64Decoder }}
2241
+ + urlEncoder - encode the input string to URL-like format, {{ https://test.host.com/endpoint | urlEncoder}}
2242
+ + urlDecorer - decode the input url-encoded string into text format, {{ urlDecoder:https%3A%2F%2Fairbyte.io | urlDecoder}}
2243
+ + codeChallengeS256 - get the `codeChallenge` encoded value to provide additional data-provider specific authorisation values, {{ {{state_value}} | codeChallengeS256 }}
2230
2244
 
2231
2245
  Examples:
2232
2246
  - The TikTok Marketing DeclarativeOAuth spec:
@@ -2235,12 +2249,12 @@ definitions:
2235
2249
  "type": "object",
2236
2250
  "additionalProperties": false,
2237
2251
  "properties": {
2238
- "consent_url": "https://ads.tiktok.com/marketing_api/auth?{client_id_key}={{client_id_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}&{state_key}={{state_key}}",
2252
+ "consent_url": "https://ads.tiktok.com/marketing_api/auth?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{ {{redirect_uri_value}} | urlEncoder}}&{{state_key}}={{state_value}}",
2239
2253
  "access_token_url": "https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/",
2240
2254
  "access_token_params": {
2241
- "{auth_code_key}": "{{auth_code_key}}",
2242
- "{client_id_key}": "{{client_id_key}}",
2243
- "{client_secret_key}": "{{client_secret_key}}"
2255
+ "{{ auth_code_key }}": "{{ auth_code_value }}",
2256
+ "{{ client_id_key }}": "{{ client_id_value }}",
2257
+ "{{ client_secret_key }}": "{{ client_secret_value }}"
2244
2258
  },
2245
2259
  "access_token_headers": {
2246
2260
  "Content-Type": "application/json",
@@ -2258,7 +2272,6 @@ definitions:
2258
2272
  required:
2259
2273
  - consent_url
2260
2274
  - access_token_url
2261
- - extract_output
2262
2275
  properties:
2263
2276
  consent_url:
2264
2277
  title: Consent URL
@@ -2267,8 +2280,8 @@ definitions:
2267
2280
  The DeclarativeOAuth Specific string URL string template to initiate the authentication.
2268
2281
  The placeholders are replaced during the processing to provide neccessary values.
2269
2282
  examples:
2270
- - https://domain.host.com/marketing_api/auth?{client_id_key}={{client_id_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}&{state_key}={{state_key}}
2271
- - https://endpoint.host.com/oauth2/authorize?{client_id_key}={{client_id_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}&{scope_key}={urlEncoder:{{scope_key}}}&{state_key}={{state_key}}&subdomain={subdomain}
2283
+ - https://domain.host.com/marketing_api/auth?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{{{redirect_uri_value}} | urlEncoder}}&{{state_key}}={{state_value}}
2284
+ - https://endpoint.host.com/oauth2/authorize?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{{{redirect_uri_value}} | urlEncoder}}&{{scope_key}}={{{{scope_value}} | urlEncoder}}&{{state_key}}={{state_value}}&subdomain={{subdomain}}
2272
2285
  scope:
2273
2286
  title: Scopes
2274
2287
  type: string
@@ -2283,7 +2296,7 @@ definitions:
2283
2296
  The DeclarativeOAuth Specific URL templated string to obtain the `access_token`, `refresh_token` etc.
2284
2297
  The placeholders are replaced during the processing to provide neccessary values.
2285
2298
  examples:
2286
- - https://auth.host.com/oauth2/token?{client_id_key}={{client_id_key}}&{client_secret_key}={{client_secret_key}}&{auth_code_key}={{auth_code_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}
2299
+ - https://auth.host.com/oauth2/token?{{client_id_key}}={{client_id_value}}&{{client_secret_key}}={{client_secret_value}}&{{auth_code_key}}={{auth_code_value}}&{{redirect_uri_key}}={{{{redirect_uri_value}} | urlEncoder}}
2287
2300
  access_token_headers:
2288
2301
  title: Access Token Headers
2289
2302
  type: object
@@ -2292,7 +2305,7 @@ definitions:
2292
2305
  The DeclarativeOAuth Specific optional headers to inject while exchanging the `auth_code` to `access_token` during `completeOAuthFlow` step.
2293
2306
  examples:
2294
2307
  - {
2295
- "Authorization": "Basic {base64Encoder:{client_id}:{client_secret}}",
2308
+ "Authorization": "Basic {{ {{ client_id_value }}:{{ client_secret_value }} | base64Encoder }}",
2296
2309
  }
2297
2310
  access_token_params:
2298
2311
  title: Access Token Query Params (Json Encoded)
@@ -2303,9 +2316,9 @@ definitions:
2303
2316
  When this property is provided, the query params will be encoded as `Json` and included in the outgoing API request.
2304
2317
  examples:
2305
2318
  - {
2306
- "{auth_code_key}": "{{auth_code_key}}",
2307
- "{client_id_key}": "{{client_id_key}}",
2308
- "{client_secret_key}": "{{client_secret_key}}",
2319
+ "{{ auth_code_key }}": "{{ auth_code_value }}",
2320
+ "{{ client_id_key }}": "{{ client_id_value }}",
2321
+ "{{ client_secret_key }}": "{{ client_secret_value }}",
2309
2322
  }
2310
2323
  extract_output:
2311
2324
  title: Extract Output
@@ -2991,6 +3004,11 @@ definitions:
2991
3004
  anyOf:
2992
3005
  - "$ref": "#/definitions/CustomRequester"
2993
3006
  - "$ref": "#/definitions/HttpRequester"
3007
+ url_requester:
3008
+ description: Requester component that describes how to prepare HTTP requests to send to the source API to extract the url from polling response by the completed async job.
3009
+ anyOf:
3010
+ - "$ref": "#/definitions/CustomRequester"
3011
+ - "$ref": "#/definitions/HttpRequester"
2994
3012
  download_requester:
2995
3013
  description: Requester component that describes how to prepare HTTP requests to send to the source API to download the data provided by the completed async job.
2996
3014
  anyOf:
@@ -7,12 +7,9 @@ from dataclasses import dataclass
7
7
  from io import BufferedIOBase, TextIOWrapper
8
8
  from typing import Any, Generator, MutableMapping, Optional
9
9
 
10
- import orjson
11
10
  import requests
12
11
 
13
- from airbyte_cdk.models import FailureType
14
12
  from airbyte_cdk.sources.declarative.decoders.decoder import Decoder
15
- from airbyte_cdk.utils import AirbyteTracedException
16
13
 
17
14
  logger = logging.getLogger("airbyte")
18
15
 
@@ -45,31 +42,6 @@ class GzipParser(Parser):
45
42
  yield from self.inner_parser.parse(gzipobj)
46
43
 
47
44
 
48
- @dataclass
49
- class JsonParser(Parser):
50
- encoding: str = "utf-8"
51
-
52
- def parse(self, data: BufferedIOBase) -> Generator[MutableMapping[str, Any], None, None]:
53
- raw_data = data.read()
54
- try:
55
- body_json = orjson.loads(raw_data.decode(self.encoding))
56
- except Exception:
57
- try:
58
- body_json = json.loads(raw_data.decode(self.encoding))
59
- except Exception as exc:
60
- raise AirbyteTracedException(
61
- message="Response JSON data failed to be parsed. See logs for more inforation.",
62
- internal_message=f"Response JSON data faild to be parsed: {exc=}, {raw_data=}",
63
- failure_type=FailureType.system_error,
64
- exception=exc,
65
- )
66
-
67
- if isinstance(body_json, list):
68
- yield from body_json
69
- else:
70
- yield from [body_json]
71
-
72
-
73
45
  @dataclass
74
46
  class JsonLineParser(Parser):
75
47
  encoding: Optional[str] = "utf-8"
@@ -481,12 +481,24 @@ class RefreshTokenUpdater(BaseModel):
481
481
 
482
482
  class OAuthAuthenticator(BaseModel):
483
483
  type: Literal["OAuthAuthenticator"]
484
+ client_id_name: Optional[str] = Field(
485
+ "client_id",
486
+ description="The name of the property to use to refresh the `access_token`.",
487
+ examples=["custom_app_id"],
488
+ title="Client ID Property Name",
489
+ )
484
490
  client_id: str = Field(
485
491
  ...,
486
492
  description="The OAuth client ID. Fill it in the user inputs.",
487
493
  examples=["{{ config['client_id }}", "{{ config['credentials']['client_id }}"],
488
494
  title="Client ID",
489
495
  )
496
+ client_secret_name: Optional[str] = Field(
497
+ "client_secret",
498
+ description="The name of the property to use to refresh the `access_token`.",
499
+ examples=["custom_app_secret"],
500
+ title="Client Secret Property Name",
501
+ )
490
502
  client_secret: str = Field(
491
503
  ...,
492
504
  description="The OAuth client secret. Fill it in the user inputs.",
@@ -496,6 +508,12 @@ class OAuthAuthenticator(BaseModel):
496
508
  ],
497
509
  title="Client Secret",
498
510
  )
511
+ refresh_token_name: Optional[str] = Field(
512
+ "refresh_token",
513
+ description="The name of the property to use to refresh the `access_token`.",
514
+ examples=["custom_app_refresh_value"],
515
+ title="Refresh Token Property Name",
516
+ )
499
517
  refresh_token: Optional[str] = Field(
500
518
  None,
501
519
  description="Credential artifact used to get a new access token.",
@@ -529,6 +547,12 @@ class OAuthAuthenticator(BaseModel):
529
547
  examples=["expires_in"],
530
548
  title="Token Expiry Property Name",
531
549
  )
550
+ grant_type_name: Optional[str] = Field(
551
+ "grant_type",
552
+ description="The name of the property to use to refresh the `access_token`.",
553
+ examples=["custom_grant_type"],
554
+ title="Grant Type Property Name",
555
+ )
532
556
  grant_type: Optional[str] = Field(
533
557
  "refresh_token",
534
558
  description="Specifies the OAuth2 grant type. If set to refresh_token, the refresh_token needs to be provided as well. For client_credentials, only client id and secret are required. Other grant types are not officially supported.",
@@ -805,14 +829,6 @@ class GzipJsonDecoder(BaseModel):
805
829
  parameters: Optional[Dict[str, Any]] = Field(None, alias="$parameters")
806
830
 
807
831
 
808
- class JsonParser(BaseModel):
809
- class Config:
810
- extra = Extra.allow
811
-
812
- type: Literal["JsonParser"]
813
- encoding: Optional[str] = "utf-8"
814
-
815
-
816
832
  class MinMaxDatetime(BaseModel):
817
833
  type: Literal["MinMaxDatetime"]
818
834
  datetime: str = Field(
@@ -867,8 +883,8 @@ class OauthConnectorInputSpecification(BaseModel):
867
883
  ...,
868
884
  description="The DeclarativeOAuth Specific string URL string template to initiate the authentication.\nThe placeholders are replaced during the processing to provide neccessary values.",
869
885
  examples=[
870
- "https://domain.host.com/marketing_api/auth?{client_id_key}={{client_id_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}&{state_key}={{state_key}}",
871
- "https://endpoint.host.com/oauth2/authorize?{client_id_key}={{client_id_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}&{scope_key}={urlEncoder:{{scope_key}}}&{state_key}={{state_key}}&subdomain={subdomain}",
886
+ "https://domain.host.com/marketing_api/auth?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{{{redirect_uri_value}} | urlEncoder}}&{{state_key}}={{state_value}}",
887
+ "https://endpoint.host.com/oauth2/authorize?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{{{redirect_uri_value}} | urlEncoder}}&{{scope_key}}={{{{scope_value}} | urlEncoder}}&{{state_key}}={{state_value}}&subdomain={{subdomain}}",
872
888
  ],
873
889
  title="Consent URL",
874
890
  )
@@ -882,14 +898,18 @@ class OauthConnectorInputSpecification(BaseModel):
882
898
  ...,
883
899
  description="The DeclarativeOAuth Specific URL templated string to obtain the `access_token`, `refresh_token` etc.\nThe placeholders are replaced during the processing to provide neccessary values.",
884
900
  examples=[
885
- "https://auth.host.com/oauth2/token?{client_id_key}={{client_id_key}}&{client_secret_key}={{client_secret_key}}&{auth_code_key}={{auth_code_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}"
901
+ "https://auth.host.com/oauth2/token?{{client_id_key}}={{client_id_value}}&{{client_secret_key}}={{client_secret_value}}&{{auth_code_key}}={{auth_code_value}}&{{redirect_uri_key}}={{{{redirect_uri_value}} | urlEncoder}}"
886
902
  ],
887
903
  title="Access Token URL",
888
904
  )
889
905
  access_token_headers: Optional[Dict[str, Any]] = Field(
890
906
  None,
891
907
  description="The DeclarativeOAuth Specific optional headers to inject while exchanging the `auth_code` to `access_token` during `completeOAuthFlow` step.",
892
- examples=[{"Authorization": "Basic {base64Encoder:{client_id}:{client_secret}}"}],
908
+ examples=[
909
+ {
910
+ "Authorization": "Basic {{ {{ client_id_value }}:{{ client_secret_value }} | base64Encoder }}"
911
+ }
912
+ ],
893
913
  title="Access Token Headers",
894
914
  )
895
915
  access_token_params: Optional[Dict[str, Any]] = Field(
@@ -897,15 +917,15 @@ class OauthConnectorInputSpecification(BaseModel):
897
917
  description="The DeclarativeOAuth Specific optional query parameters to inject while exchanging the `auth_code` to `access_token` during `completeOAuthFlow` step.\nWhen this property is provided, the query params will be encoded as `Json` and included in the outgoing API request.",
898
918
  examples=[
899
919
  {
900
- "{auth_code_key}": "{{auth_code_key}}",
901
- "{client_id_key}": "{{client_id_key}}",
902
- "{client_secret_key}": "{{client_secret_key}}",
920
+ "{{ auth_code_key }}": "{{ auth_code_value }}",
921
+ "{{ client_id_key }}": "{{ client_id_value }}",
922
+ "{{ client_secret_key }}": "{{ client_secret_value }}",
903
923
  }
904
924
  ],
905
925
  title="Access Token Query Params (Json Encoded)",
906
926
  )
907
- extract_output: List[str] = Field(
908
- ...,
927
+ extract_output: Optional[List[str]] = Field(
928
+ None,
909
929
  description="The DeclarativeOAuth Specific list of strings to indicate which keys should be extracted and returned back to the input config.",
910
930
  examples=[["access_token", "refresh_token", "other_field"]],
911
931
  title="Extract Output",
@@ -974,7 +994,7 @@ class OAuthConfigSpecification(BaseModel):
974
994
  )
975
995
  oauth_connector_input_specification: Optional[OauthConnectorInputSpecification] = Field(
976
996
  None,
977
- description='The DeclarativeOAuth specific blob.\nPertains to the fields defined by the connector relating to the OAuth flow.\n\nInterpolation capabilities:\n- The variables placeholders are declared as `{my_var}`.\n- The nested resolution variables like `{{my_nested_var}}` is allowed as well.\n\n- The allowed interpolation context is:\n + base64Encoder - encode to `base64`, {base64Encoder:{my_var_a}:{my_var_b}}\n + base64Decorer - decode from `base64` encoded string, {base64Decoder:{my_string_variable_or_string_value}}\n + urlEncoder - encode the input string to URL-like format, {urlEncoder:https://test.host.com/endpoint}\n + urlDecorer - decode the input url-encoded string into text format, {urlDecoder:https%3A%2F%2Fairbyte.io}\n + codeChallengeS256 - get the `codeChallenge` encoded value to provide additional data-provider specific authorisation values, {codeChallengeS256:{state_value}}\n\nExamples:\n - The TikTok Marketing DeclarativeOAuth spec:\n {\n "oauth_connector_input_specification": {\n "type": "object",\n "additionalProperties": false,\n "properties": {\n "consent_url": "https://ads.tiktok.com/marketing_api/auth?{client_id_key}={{client_id_key}}&{redirect_uri_key}={urlEncoder:{{redirect_uri_key}}}&{state_key}={{state_key}}",\n "access_token_url": "https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/",\n "access_token_params": {\n "{auth_code_key}": "{{auth_code_key}}",\n "{client_id_key}": "{{client_id_key}}",\n "{client_secret_key}": "{{client_secret_key}}"\n },\n "access_token_headers": {\n "Content-Type": "application/json",\n "Accept": "application/json"\n },\n "extract_output": ["data.access_token"],\n "client_id_key": "app_id",\n "client_secret_key": "secret",\n "auth_code_key": "auth_code"\n }\n }\n }',
997
+ description='The DeclarativeOAuth specific blob.\nPertains to the fields defined by the connector relating to the OAuth flow.\n\nInterpolation capabilities:\n- The variables placeholders are declared as `{{my_var}}`.\n- The nested resolution variables like `{{ {{my_nested_var}} }}` is allowed as well.\n\n- The allowed interpolation context is:\n + base64Encoder - encode to `base64`, {{ {{my_var_a}}:{{my_var_b}} | base64Encoder }}\n + base64Decorer - decode from `base64` encoded string, {{ {{my_string_variable_or_string_value}} | base64Decoder }}\n + urlEncoder - encode the input string to URL-like format, {{ https://test.host.com/endpoint | urlEncoder}}\n + urlDecorer - decode the input url-encoded string into text format, {{ urlDecoder:https%3A%2F%2Fairbyte.io | urlDecoder}}\n + codeChallengeS256 - get the `codeChallenge` encoded value to provide additional data-provider specific authorisation values, {{ {{state_value}} | codeChallengeS256 }}\n\nExamples:\n - The TikTok Marketing DeclarativeOAuth spec:\n {\n "oauth_connector_input_specification": {\n "type": "object",\n "additionalProperties": false,\n "properties": {\n "consent_url": "https://ads.tiktok.com/marketing_api/auth?{{client_id_key}}={{client_id_value}}&{{redirect_uri_key}}={{ {{redirect_uri_value}} | urlEncoder}}&{{state_key}}={{state_value}}",\n "access_token_url": "https://business-api.tiktok.com/open_api/v1.3/oauth2/access_token/",\n "access_token_params": {\n "{{ auth_code_key }}": "{{ auth_code_value }}",\n "{{ client_id_key }}": "{{ client_id_value }}",\n "{{ client_secret_key }}": "{{ client_secret_value }}"\n },\n "access_token_headers": {\n "Content-Type": "application/json",\n "Accept": "application/json"\n },\n "extract_output": ["data.access_token"],\n "client_id_key": "app_id",\n "client_secret_key": "secret",\n "auth_code_key": "auth_code"\n }\n }\n }',
978
998
  title="DeclarativeOAuth Connector Specification",
979
999
  )
980
1000
  complete_oauth_output_specification: Optional[Dict[str, Any]] = Field(
@@ -2058,6 +2078,10 @@ class AsyncRetriever(BaseModel):
2058
2078
  ...,
2059
2079
  description="Requester component that describes how to prepare HTTP requests to send to the source API to fetch the status of the running async job.",
2060
2080
  )
2081
+ url_requester: Optional[Union[CustomRequester, HttpRequester]] = Field(
2082
+ None,
2083
+ description="Requester component that describes how to prepare HTTP requests to send to the source API to extract the url from polling response by the completed async job.",
2084
+ )
2061
2085
  download_requester: Union[CustomRequester, HttpRequester] = Field(
2062
2086
  ...,
2063
2087
  description="Requester component that describes how to prepare HTTP requests to send to the source API to download the data provided by the completed async job.",
@@ -72,7 +72,6 @@ from airbyte_cdk.sources.declarative.decoders.composite_raw_decoder import (
72
72
  CsvParser,
73
73
  GzipParser,
74
74
  JsonLineParser,
75
- JsonParser,
76
75
  )
77
76
  from airbyte_cdk.sources.declarative.extractors import (
78
77
  DpathExtractor,
@@ -248,9 +247,6 @@ from airbyte_cdk.sources.declarative.models.declarative_component_schema import
248
247
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
249
248
  JsonLineParser as JsonLineParserModel,
250
249
  )
251
- from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
252
- JsonParser as JsonParserModel,
253
- )
254
250
  from airbyte_cdk.sources.declarative.models.declarative_component_schema import (
255
251
  JwtAuthenticator as JwtAuthenticatorModel,
256
252
  )
@@ -526,7 +522,6 @@ class ModelToComponentFactory:
526
522
  JsonDecoderModel: self.create_json_decoder,
527
523
  JsonlDecoderModel: self.create_jsonl_decoder,
528
524
  JsonLineParserModel: self.create_json_line_parser,
529
- JsonParserModel: self.create_json_parser,
530
525
  GzipJsonDecoderModel: self.create_gzipjson_decoder,
531
526
  GzipParserModel: self.create_gzip_parser,
532
527
  KeysToLowerModel: self.create_keys_to_lower_transformation,
@@ -1753,11 +1748,6 @@ class ModelToComponentFactory:
1753
1748
  def create_json_decoder(model: JsonDecoderModel, config: Config, **kwargs: Any) -> JsonDecoder:
1754
1749
  return JsonDecoder(parameters={})
1755
1750
 
1756
- @staticmethod
1757
- def create_json_parser(model: JsonParserModel, config: Config, **kwargs: Any) -> JsonParser:
1758
- encoding = model.encoding or "utf-8"
1759
- return JsonParser(encoding=encoding)
1760
-
1761
1751
  @staticmethod
1762
1752
  def create_jsonl_decoder(
1763
1753
  model: JsonlDecoderModel, config: Config, **kwargs: Any
@@ -1895,15 +1885,24 @@ class ModelToComponentFactory:
1895
1885
  expires_in_name=InterpolatedString.create(
1896
1886
  model.expires_in_name or "expires_in", parameters=model.parameters or {}
1897
1887
  ).eval(config),
1888
+ client_id_name=InterpolatedString.create(
1889
+ model.client_id_name or "client_id", parameters=model.parameters or {}
1890
+ ).eval(config),
1898
1891
  client_id=InterpolatedString.create(
1899
1892
  model.client_id, parameters=model.parameters or {}
1900
1893
  ).eval(config),
1894
+ client_secret_name=InterpolatedString.create(
1895
+ model.client_secret_name or "client_secret", parameters=model.parameters or {}
1896
+ ).eval(config),
1901
1897
  client_secret=InterpolatedString.create(
1902
1898
  model.client_secret, parameters=model.parameters or {}
1903
1899
  ).eval(config),
1904
1900
  access_token_config_path=model.refresh_token_updater.access_token_config_path,
1905
1901
  refresh_token_config_path=model.refresh_token_updater.refresh_token_config_path,
1906
1902
  token_expiry_date_config_path=model.refresh_token_updater.token_expiry_date_config_path,
1903
+ grant_type_name=InterpolatedString.create(
1904
+ model.grant_type_name or "grant_type", parameters=model.parameters or {}
1905
+ ).eval(config),
1907
1906
  grant_type=InterpolatedString.create(
1908
1907
  model.grant_type or "refresh_token", parameters=model.parameters or {}
1909
1908
  ).eval(config),
@@ -1921,11 +1920,15 @@ class ModelToComponentFactory:
1921
1920
  return DeclarativeOauth2Authenticator( # type: ignore
1922
1921
  access_token_name=model.access_token_name or "access_token",
1923
1922
  access_token_value=model.access_token_value,
1923
+ client_id_name=model.client_id_name or "client_id",
1924
1924
  client_id=model.client_id,
1925
+ client_secret_name=model.client_secret_name or "client_secret",
1925
1926
  client_secret=model.client_secret,
1926
1927
  expires_in_name=model.expires_in_name or "expires_in",
1928
+ grant_type_name=model.grant_type_name or "grant_type",
1927
1929
  grant_type=model.grant_type or "refresh_token",
1928
1930
  refresh_request_body=model.refresh_request_body,
1931
+ refresh_token_name=model.refresh_token_name or "refresh_token",
1929
1932
  refresh_token=model.refresh_token,
1930
1933
  scopes=model.scopes,
1931
1934
  token_expiry_date=model.token_expiry_date,
@@ -2297,7 +2300,7 @@ class ModelToComponentFactory:
2297
2300
  extractor=download_extractor,
2298
2301
  name=name,
2299
2302
  record_filter=None,
2300
- transformations=[],
2303
+ transformations=transformations,
2301
2304
  schema_normalization=TypeTransformer(TransformConfig.NoTransform),
2302
2305
  config=config,
2303
2306
  parameters={},
@@ -2334,6 +2337,16 @@ class ModelToComponentFactory:
2334
2337
  if model.delete_requester
2335
2338
  else None
2336
2339
  )
2340
+ url_requester = (
2341
+ self._create_component_from_model(
2342
+ model=model.url_requester,
2343
+ decoder=decoder,
2344
+ config=config,
2345
+ name=f"job extract_url - {name}",
2346
+ )
2347
+ if model.url_requester
2348
+ else None
2349
+ )
2337
2350
  status_extractor = self._create_component_from_model(
2338
2351
  model=model.status_extractor, decoder=decoder, config=config, name=name
2339
2352
  )
@@ -2344,6 +2357,7 @@ class ModelToComponentFactory:
2344
2357
  creation_requester=creation_requester,
2345
2358
  polling_requester=polling_requester,
2346
2359
  download_retriever=download_retriever,
2360
+ url_requester=url_requester,
2347
2361
  abort_requester=abort_requester,
2348
2362
  delete_requester=delete_requester,
2349
2363
  status_extractor=status_extractor,
@@ -0,0 +1,57 @@
1
+ # AsyncHttpJobRepository sequence diagram
2
+
3
+ - Components marked as optional are not required and can be ignored.
4
+ - if `url_requester` is not provided, `urls_extractor` will get urls from the `polling_job_response`
5
+ - interpolation_context, e.g. `create_job_response` or `polling_job_response` can be obtained from stream_slice
6
+
7
+
8
+ ```mermaid
9
+ ---
10
+ title: AsyncHttpJobRepository Sequence Diagram
11
+ ---
12
+ sequenceDiagram
13
+ participant AsyncHttpJobRepository as AsyncOrchestrator
14
+ participant CreationRequester as creation_requester
15
+ participant PollingRequester as polling_requester
16
+ participant UrlRequester as url_requester (Optional)
17
+ participant DownloadRetriever as download_retriever
18
+ participant AbortRequester as abort_requester (Optional)
19
+ participant DeleteRequester as delete_requester (Optional)
20
+ participant Reporting Server as Async Reporting Server
21
+
22
+ AsyncHttpJobRepository ->> CreationRequester: Initiate job creation
23
+ CreationRequester ->> Reporting Server: Create job request
24
+ Reporting Server -->> CreationRequester: Job ID response
25
+ CreationRequester -->> AsyncHttpJobRepository: Job ID
26
+
27
+ loop Poll for job status
28
+ AsyncHttpJobRepository ->> PollingRequester: Check job status
29
+ PollingRequester ->> Reporting Server: Status request (interpolation_context: `create_job_response`)
30
+ Reporting Server -->> PollingRequester: Status response
31
+ PollingRequester -->> AsyncHttpJobRepository: Job status
32
+ end
33
+
34
+ alt Status: Ready
35
+ AsyncHttpJobRepository ->> UrlRequester: Request download URLs (if applicable)
36
+ UrlRequester ->> Reporting Server: URL request (interpolation_context: `polling_job_response`)
37
+ Reporting Server -->> UrlRequester: Download URLs
38
+ UrlRequester -->> AsyncHttpJobRepository: Download URLs
39
+
40
+ AsyncHttpJobRepository ->> DownloadRetriever: Download reports
41
+ DownloadRetriever ->> Reporting Server: Retrieve report data (interpolation_context: `url`)
42
+ Reporting Server -->> DownloadRetriever: Report data
43
+ DownloadRetriever -->> AsyncHttpJobRepository: Report data
44
+ else Status: Failed
45
+ AsyncHttpJobRepository ->> AbortRequester: Send abort request
46
+ AbortRequester ->> Reporting Server: Abort job
47
+ Reporting Server -->> AbortRequester: Abort confirmation
48
+ AbortRequester -->> AsyncHttpJobRepository: Confirmation
49
+ end
50
+
51
+ AsyncHttpJobRepository ->> DeleteRequester: Send delete job request
52
+ DeleteRequester ->> Reporting Server: Delete job
53
+ Reporting Server -->> DeleteRequester: Deletion confirmation
54
+ DeleteRequester -->> AsyncHttpJobRepository: Confirmation
55
+
56
+
57
+ ```