studyfetch-sdk 0.1.0a14__tar.gz → 0.1.0a15__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 (204) hide show
  1. studyfetch_sdk-0.1.0a15/.release-please-manifest.json +3 -0
  2. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/CHANGELOG.md +10 -0
  3. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/PKG-INFO +1 -1
  4. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/api.md +11 -5
  5. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/pyproject.toml +1 -1
  6. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_version.py +1 -1
  7. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/components.py +0 -8
  8. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/materials/materials.py +76 -1
  9. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/upload/component.py +195 -7
  10. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/__init__.py +1 -0
  11. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/component_create_params.py +0 -3
  12. studyfetch_sdk-0.1.0a15/src/studyfetch_sdk/types/v1/material_search_params.py +27 -0
  13. studyfetch_sdk-0.1.0a15/src/studyfetch_sdk/types/v1/upload/__init__.py +9 -0
  14. studyfetch_sdk-0.1.0a15/src/studyfetch_sdk/types/v1/upload/component_complete_upload_params.py +20 -0
  15. studyfetch_sdk-0.1.0a15/src/studyfetch_sdk/types/v1/upload/component_get_presigned_url_params.py +23 -0
  16. studyfetch_sdk-0.1.0a15/src/studyfetch_sdk/types/v1/upload/component_get_presigned_url_response.py +15 -0
  17. studyfetch_sdk-0.1.0a15/src/studyfetch_sdk/types/v1/upload/component_upload_file_params.py +21 -0
  18. studyfetch_sdk-0.1.0a15/src/studyfetch_sdk/types/v1/upload/component_upload_url_params.py +23 -0
  19. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/test_components.py +0 -8
  20. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/test_materials.py +40 -6
  21. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/upload/test_component.py +154 -38
  22. studyfetch_sdk-0.1.0a14/.release-please-manifest.json +0 -3
  23. studyfetch_sdk-0.1.0a14/src/studyfetch_sdk/types/v1/upload/__init__.py +0 -3
  24. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/.gitignore +0 -0
  25. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/CONTRIBUTING.md +0 -0
  26. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/LICENSE +0 -0
  27. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/README.md +0 -0
  28. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/SECURITY.md +0 -0
  29. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/bin/check-release-environment +0 -0
  30. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/bin/publish-pypi +0 -0
  31. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/examples/.keep +0 -0
  32. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/mypy.ini +0 -0
  33. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/noxfile.py +0 -0
  34. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/release-please-config.json +0 -0
  35. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/requirements-dev.lock +0 -0
  36. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/requirements.lock +0 -0
  37. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/__init__.py +0 -0
  38. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_base_client.py +0 -0
  39. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_client.py +0 -0
  40. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_compat.py +0 -0
  41. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_constants.py +0 -0
  42. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_exceptions.py +0 -0
  43. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_files.py +0 -0
  44. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_models.py +0 -0
  45. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_qs.py +0 -0
  46. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_resource.py +0 -0
  47. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_response.py +0 -0
  48. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_streaming.py +0 -0
  49. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_types.py +0 -0
  50. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_utils/__init__.py +0 -0
  51. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_utils/_logs.py +0 -0
  52. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_utils/_proxy.py +0 -0
  53. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_utils/_reflection.py +0 -0
  54. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_utils/_resources_proxy.py +0 -0
  55. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_utils/_streams.py +0 -0
  56. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_utils/_sync.py +0 -0
  57. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_utils/_transform.py +0 -0
  58. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_utils/_typing.py +0 -0
  59. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/_utils/_utils.py +0 -0
  60. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/lib/.keep +0 -0
  61. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/py.typed +0 -0
  62. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/__init__.py +0 -0
  63. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/__init__.py +0 -0
  64. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/assignment_grader.py +0 -0
  65. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/audio_recaps/__init__.py +0 -0
  66. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/audio_recaps/audio_recaps.py +0 -0
  67. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/audio_recaps/sections.py +0 -0
  68. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/chat/__init__.py +0 -0
  69. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/chat/chat.py +0 -0
  70. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/chat/sessions.py +0 -0
  71. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/chat/test.py +0 -0
  72. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/embed/__init__.py +0 -0
  73. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/embed/component.py +0 -0
  74. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/embed/embed.py +0 -0
  75. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/explainers.py +0 -0
  76. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/flashcards.py +0 -0
  77. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/folders.py +0 -0
  78. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/materials/__init__.py +0 -0
  79. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/materials/bulk.py +0 -0
  80. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/materials/test.py +0 -0
  81. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/materials/upload.py +0 -0
  82. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/scenarios/__init__.py +0 -0
  83. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/scenarios/component.py +0 -0
  84. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/scenarios/scenarios.py +0 -0
  85. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/scenarios/sessions.py +0 -0
  86. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/scenarios/submissions/__init__.py +0 -0
  87. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/scenarios/submissions/submissions.py +0 -0
  88. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/scenarios/submissions/user.py +0 -0
  89. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/tests/__init__.py +0 -0
  90. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/tests/component.py +0 -0
  91. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/tests/tests.py +0 -0
  92. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/upload/__init__.py +0 -0
  93. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/upload/upload.py +0 -0
  94. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/usage/__init__.py +0 -0
  95. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/usage/analyst.py +0 -0
  96. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/usage/usage.py +0 -0
  97. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/resources/v1/v1.py +0 -0
  98. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/__init__.py +0 -0
  99. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/assignment_grader_create_params.py +0 -0
  100. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/assignment_grader_get_all_response.py +0 -0
  101. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/assignment_grader_response.py +0 -0
  102. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/audio_recaps/__init__.py +0 -0
  103. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/chat/__init__.py +0 -0
  104. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/chat/session_retrieve_params.py +0 -0
  105. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/chat_get_session_params.py +0 -0
  106. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/chat_send_message_params.py +0 -0
  107. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/chat_stream_params.py +0 -0
  108. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/component.py +0 -0
  109. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/component_generate_embed_params.py +0 -0
  110. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/component_generate_embed_response.py +0 -0
  111. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/component_list_params.py +0 -0
  112. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/component_list_response.py +0 -0
  113. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/component_update_params.py +0 -0
  114. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/embed/__init__.py +0 -0
  115. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/embed/component_interact_params.py +0 -0
  116. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/embed/component_retrieve_params.py +0 -0
  117. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/embed_get_theme_params.py +0 -0
  118. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/embed_verify_params.py +0 -0
  119. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/explainer_create_params.py +0 -0
  120. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/explainer_handle_webhook_params.py +0 -0
  121. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/flashcard_batch_process_params.py +0 -0
  122. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/flashcard_batch_process_response.py +0 -0
  123. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/flashcard_get_algorithm_response.py +0 -0
  124. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/flashcard_get_all_params.py +0 -0
  125. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/flashcard_get_due_params.py +0 -0
  126. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/flashcard_get_stats_params.py +0 -0
  127. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/flashcard_get_types_response.py +0 -0
  128. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/flashcard_rate_params.py +0 -0
  129. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/folder_create_params.py +0 -0
  130. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/folder_list_params.py +0 -0
  131. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/folder_update_params.py +0 -0
  132. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/material.py +0 -0
  133. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/material_create_params.py +0 -0
  134. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/material_get_download_url_params.py +0 -0
  135. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/material_list_params.py +0 -0
  136. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/material_list_response.py +0 -0
  137. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/materials/__init__.py +0 -0
  138. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/materials/upload_upload_file_params.py +0 -0
  139. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/materials/upload_upload_from_url_params.py +0 -0
  140. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/scenario_create_params.py +0 -0
  141. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/scenario_submit_answer_params.py +0 -0
  142. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/scenario_update_params.py +0 -0
  143. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/scenarios/__init__.py +0 -0
  144. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/scenarios/component_update_params.py +0 -0
  145. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/scenarios/submissions/__init__.py +0 -0
  146. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/test_create_params.py +0 -0
  147. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/test_retake_params.py +0 -0
  148. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/test_submit_answer_params.py +0 -0
  149. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/test_submit_params.py +0 -0
  150. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/tests/__init__.py +0 -0
  151. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/usage/__init__.py +0 -0
  152. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/usage/analyst_list_events_params.py +0 -0
  153. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/usage_get_stats_params.py +0 -0
  154. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/usage_get_summary_params.py +0 -0
  155. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/src/studyfetch_sdk/types/v1/usage_list_events_params.py +0 -0
  156. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/__init__.py +0 -0
  157. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/__init__.py +0 -0
  158. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/__init__.py +0 -0
  159. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/audio_recaps/__init__.py +0 -0
  160. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/audio_recaps/test_sections.py +0 -0
  161. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/chat/__init__.py +0 -0
  162. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/chat/test_sessions.py +0 -0
  163. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/chat/test_test.py +0 -0
  164. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/embed/__init__.py +0 -0
  165. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/embed/test_component.py +0 -0
  166. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/materials/__init__.py +0 -0
  167. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/materials/test_bulk.py +0 -0
  168. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/materials/test_test.py +0 -0
  169. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/materials/test_upload.py +0 -0
  170. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/scenarios/__init__.py +0 -0
  171. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/scenarios/submissions/__init__.py +0 -0
  172. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/scenarios/submissions/test_user.py +0 -0
  173. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/scenarios/test_component.py +0 -0
  174. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/scenarios/test_sessions.py +0 -0
  175. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/test_assignment_grader.py +0 -0
  176. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/test_audio_recaps.py +0 -0
  177. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/test_chat.py +0 -0
  178. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/test_embed.py +0 -0
  179. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/test_explainers.py +0 -0
  180. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/test_flashcards.py +0 -0
  181. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/test_folders.py +0 -0
  182. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/test_scenarios.py +0 -0
  183. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/test_tests.py +0 -0
  184. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/test_usage.py +0 -0
  185. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/tests/__init__.py +0 -0
  186. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/tests/test_component.py +0 -0
  187. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/upload/__init__.py +0 -0
  188. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/usage/__init__.py +0 -0
  189. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/api_resources/v1/usage/test_analyst.py +0 -0
  190. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/conftest.py +0 -0
  191. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/sample_file.txt +0 -0
  192. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/test_client.py +0 -0
  193. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/test_deepcopy.py +0 -0
  194. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/test_extract_files.py +0 -0
  195. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/test_files.py +0 -0
  196. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/test_models.py +0 -0
  197. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/test_qs.py +0 -0
  198. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/test_required_args.py +0 -0
  199. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/test_response.py +0 -0
  200. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/test_streaming.py +0 -0
  201. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/test_transform.py +0 -0
  202. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/test_utils/test_proxy.py +0 -0
  203. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/test_utils/test_typing.py +0 -0
  204. {studyfetch_sdk-0.1.0a14 → studyfetch_sdk-0.1.0a15}/tests/utils.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.1.0-alpha.15"
3
+ }
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.0-alpha.15 (2025-07-21)
4
+
5
+ Full Changelog: [v0.1.0-alpha.14...v0.1.0-alpha.15](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/compare/v0.1.0-alpha.14...v0.1.0-alpha.15)
6
+
7
+ ### Features
8
+
9
+ * **api:** api update ([39f6892](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/commit/39f6892d0d808a46611187b13724b45b792f5b4f))
10
+ * **api:** api update ([da33c21](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/commit/da33c213f0a6fcfaaa865a9819920d45d0297c9c))
11
+ * **api:** api update ([5277eb0](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/commit/5277eb0b4090384f5c35f533931259c5716f7a86))
12
+
3
13
  ## 0.1.0-alpha.14 (2025-07-21)
4
14
 
5
15
  Full Changelog: [v0.1.0-alpha.13...v0.1.0-alpha.14](https://github.com/GoStudyFetchGo/studyfetch-sdk-python/compare/v0.1.0-alpha.13...v0.1.0-alpha.14)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: studyfetch_sdk
3
- Version: 0.1.0a14
3
+ Version: 0.1.0a15
4
4
  Summary: The official Python library for the studyfetch-sdk API
5
5
  Project-URL: Homepage, https://github.com/GoStudyFetchGo/studyfetch-sdk-python
6
6
  Project-URL: Repository, https://github.com/GoStudyFetchGo/studyfetch-sdk-python
@@ -20,7 +20,7 @@ Methods:
20
20
  - <code title="post /api/v1/materials/{id}/move">client.v1.materials.<a href="./src/studyfetch_sdk/resources/v1/materials/materials.py">move</a>(id) -> None</code>
21
21
  - <code title="post /api/v1/materials/{id}/rename">client.v1.materials.<a href="./src/studyfetch_sdk/resources/v1/materials/materials.py">rename</a>(id) -> None</code>
22
22
  - <code title="post /api/v1/materials/{id}/reprocess">client.v1.materials.<a href="./src/studyfetch_sdk/resources/v1/materials/materials.py">reprocess</a>(id) -> None</code>
23
- - <code title="post /api/v1/materials/search">client.v1.materials.<a href="./src/studyfetch_sdk/resources/v1/materials/materials.py">search</a>() -> None</code>
23
+ - <code title="post /api/v1/materials/search">client.v1.materials.<a href="./src/studyfetch_sdk/resources/v1/materials/materials.py">search</a>(\*\*<a href="src/studyfetch_sdk/types/v1/material_search_params.py">params</a>) -> None</code>
24
24
 
25
25
  ### Upload
26
26
 
@@ -242,12 +242,18 @@ Methods:
242
242
 
243
243
  ### Component
244
244
 
245
+ Types:
246
+
247
+ ```python
248
+ from studyfetch_sdk.types.v1.upload import ComponentGetPresignedURLResponse
249
+ ```
250
+
245
251
  Methods:
246
252
 
247
- - <code title="post /api/v1/upload/component/{componentId}/complete">client.v1.upload.component.<a href="./src/studyfetch_sdk/resources/v1/upload/component.py">complete_upload</a>(component_id) -> None</code>
248
- - <code title="post /api/v1/upload/component/{componentId}/presigned-url">client.v1.upload.component.<a href="./src/studyfetch_sdk/resources/v1/upload/component.py">get_presigned_url</a>(component_id) -> None</code>
249
- - <code title="post /api/v1/upload/component/{componentId}/file">client.v1.upload.component.<a href="./src/studyfetch_sdk/resources/v1/upload/component.py">upload_file</a>(component_id) -> None</code>
250
- - <code title="post /api/v1/upload/component/{componentId}/url">client.v1.upload.component.<a href="./src/studyfetch_sdk/resources/v1/upload/component.py">upload_url</a>(component_id) -> None</code>
253
+ - <code title="post /api/v1/upload/component/{componentId}/complete">client.v1.upload.component.<a href="./src/studyfetch_sdk/resources/v1/upload/component.py">complete_upload</a>(component_id, \*\*<a href="src/studyfetch_sdk/types/v1/upload/component_complete_upload_params.py">params</a>) -> None</code>
254
+ - <code title="post /api/v1/upload/component/{componentId}/presigned-url">client.v1.upload.component.<a href="./src/studyfetch_sdk/resources/v1/upload/component.py">get_presigned_url</a>(component_id, \*\*<a href="src/studyfetch_sdk/types/v1/upload/component_get_presigned_url_params.py">params</a>) -> <a href="./src/studyfetch_sdk/types/v1/upload/component_get_presigned_url_response.py">ComponentGetPresignedURLResponse</a></code>
255
+ - <code title="post /api/v1/upload/component/{componentId}/file">client.v1.upload.component.<a href="./src/studyfetch_sdk/resources/v1/upload/component.py">upload_file</a>(component_id, \*\*<a href="src/studyfetch_sdk/types/v1/upload/component_upload_file_params.py">params</a>) -> None</code>
256
+ - <code title="post /api/v1/upload/component/{componentId}/url">client.v1.upload.component.<a href="./src/studyfetch_sdk/resources/v1/upload/component.py">upload_url</a>(component_id, \*\*<a href="src/studyfetch_sdk/types/v1/upload/component_upload_url_params.py">params</a>) -> None</code>
251
257
 
252
258
  ## AssignmentGrader
253
259
 
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "studyfetch_sdk"
3
- version = "0.1.0-alpha.14"
3
+ version = "0.1.0-alpha.15"
4
4
  description = "The official Python library for the studyfetch-sdk API"
5
5
  dynamic = ["readme"]
6
6
  license = "Apache-2.0"
@@ -1,4 +1,4 @@
1
1
  # File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
2
2
 
3
3
  __title__ = "studyfetch_sdk"
4
- __version__ = "0.1.0-alpha.14" # x-release-please-version
4
+ __version__ = "0.1.0-alpha.15" # x-release-please-version
@@ -56,7 +56,6 @@ class ComponentsResource(SyncAPIResource):
56
56
  *,
57
57
  config: component_create_params.Config,
58
58
  name: str,
59
- origin: Literal["chat", "classroom", "upload", "console", "api"],
60
59
  type: Literal[
61
60
  "chat", "flashcards", "scenarios", "practice_test", "audio_recap", "tutor_me", "explainers", "uploads"
62
61
  ],
@@ -77,8 +76,6 @@ class ComponentsResource(SyncAPIResource):
77
76
 
78
77
  name: Name of the component
79
78
 
80
- origin: Origin of the component
81
-
82
79
  type: Type of component to create
83
80
 
84
81
  description: Component description
@@ -99,7 +96,6 @@ class ComponentsResource(SyncAPIResource):
99
96
  {
100
97
  "config": config,
101
98
  "name": name,
102
- "origin": origin,
103
99
  "type": type,
104
100
  "description": description,
105
101
  "metadata": metadata,
@@ -448,7 +444,6 @@ class AsyncComponentsResource(AsyncAPIResource):
448
444
  *,
449
445
  config: component_create_params.Config,
450
446
  name: str,
451
- origin: Literal["chat", "classroom", "upload", "console", "api"],
452
447
  type: Literal[
453
448
  "chat", "flashcards", "scenarios", "practice_test", "audio_recap", "tutor_me", "explainers", "uploads"
454
449
  ],
@@ -469,8 +464,6 @@ class AsyncComponentsResource(AsyncAPIResource):
469
464
 
470
465
  name: Name of the component
471
466
 
472
- origin: Origin of the component
473
-
474
467
  type: Type of component to create
475
468
 
476
469
  description: Component description
@@ -491,7 +484,6 @@ class AsyncComponentsResource(AsyncAPIResource):
491
484
  {
492
485
  "config": config,
493
486
  "name": name,
494
- "origin": origin,
495
487
  "type": type,
496
488
  "description": description,
497
489
  "metadata": metadata,
@@ -2,6 +2,8 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from typing import List
6
+
5
7
  import httpx
6
8
 
7
9
  from .bulk import (
@@ -31,7 +33,12 @@ from .upload import (
31
33
  from ...._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
32
34
  from ...._utils import maybe_transform, async_maybe_transform
33
35
  from ...._compat import cached_property
34
- from ....types.v1 import material_list_params, material_create_params, material_get_download_url_params
36
+ from ....types.v1 import (
37
+ material_list_params,
38
+ material_create_params,
39
+ material_search_params,
40
+ material_get_download_url_params,
41
+ )
35
42
  from ...._resource import SyncAPIResource, AsyncAPIResource
36
43
  from ...._response import (
37
44
  to_raw_response_wrapper,
@@ -418,6 +425,10 @@ class MaterialsResource(SyncAPIResource):
418
425
  def search(
419
426
  self,
420
427
  *,
428
+ query: str,
429
+ folder_ids: List[str] | NotGiven = NOT_GIVEN,
430
+ material_ids: List[str] | NotGiven = NOT_GIVEN,
431
+ top_k: float | NotGiven = NOT_GIVEN,
421
432
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
422
433
  # The extra values given here take precedence over values defined on the client or passed to this method.
423
434
  extra_headers: Headers | None = None,
@@ -425,9 +436,39 @@ class MaterialsResource(SyncAPIResource):
425
436
  extra_body: Body | None = None,
426
437
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
427
438
  ) -> None:
439
+ """
440
+ Search materials using RAG
441
+
442
+ Args:
443
+ query: Search query
444
+
445
+ folder_ids: Optional: Limit search to materials within specific folders (includes
446
+ subfolders)
447
+
448
+ material_ids: Optional: Limit search to specific material IDs
449
+
450
+ top_k: Number of results to return (default: 5)
451
+
452
+ extra_headers: Send extra headers
453
+
454
+ extra_query: Add additional query parameters to the request
455
+
456
+ extra_body: Add additional JSON properties to the request
457
+
458
+ timeout: Override the client-level default timeout for this request, in seconds
459
+ """
428
460
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
429
461
  return self._post(
430
462
  "/api/v1/materials/search",
463
+ body=maybe_transform(
464
+ {
465
+ "query": query,
466
+ "folder_ids": folder_ids,
467
+ "material_ids": material_ids,
468
+ "top_k": top_k,
469
+ },
470
+ material_search_params.MaterialSearchParams,
471
+ ),
431
472
  options=make_request_options(
432
473
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
433
474
  ),
@@ -807,6 +848,10 @@ class AsyncMaterialsResource(AsyncAPIResource):
807
848
  async def search(
808
849
  self,
809
850
  *,
851
+ query: str,
852
+ folder_ids: List[str] | NotGiven = NOT_GIVEN,
853
+ material_ids: List[str] | NotGiven = NOT_GIVEN,
854
+ top_k: float | NotGiven = NOT_GIVEN,
810
855
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
811
856
  # The extra values given here take precedence over values defined on the client or passed to this method.
812
857
  extra_headers: Headers | None = None,
@@ -814,9 +859,39 @@ class AsyncMaterialsResource(AsyncAPIResource):
814
859
  extra_body: Body | None = None,
815
860
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
816
861
  ) -> None:
862
+ """
863
+ Search materials using RAG
864
+
865
+ Args:
866
+ query: Search query
867
+
868
+ folder_ids: Optional: Limit search to materials within specific folders (includes
869
+ subfolders)
870
+
871
+ material_ids: Optional: Limit search to specific material IDs
872
+
873
+ top_k: Number of results to return (default: 5)
874
+
875
+ extra_headers: Send extra headers
876
+
877
+ extra_query: Add additional query parameters to the request
878
+
879
+ extra_body: Add additional JSON properties to the request
880
+
881
+ timeout: Override the client-level default timeout for this request, in seconds
882
+ """
817
883
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
818
884
  return await self._post(
819
885
  "/api/v1/materials/search",
886
+ body=await async_maybe_transform(
887
+ {
888
+ "query": query,
889
+ "folder_ids": folder_ids,
890
+ "material_ids": material_ids,
891
+ "top_k": top_k,
892
+ },
893
+ material_search_params.MaterialSearchParams,
894
+ ),
820
895
  options=make_request_options(
821
896
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
822
897
  ),
@@ -2,9 +2,12 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from typing import Mapping, cast
6
+
5
7
  import httpx
6
8
 
7
- from ...._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven
9
+ from ...._types import NOT_GIVEN, Body, Query, Headers, NoneType, NotGiven, FileTypes
10
+ from ...._utils import extract_files, maybe_transform, deepcopy_minimal, async_maybe_transform
8
11
  from ...._compat import cached_property
9
12
  from ...._resource import SyncAPIResource, AsyncAPIResource
10
13
  from ...._response import (
@@ -14,6 +17,13 @@ from ...._response import (
14
17
  async_to_streamed_response_wrapper,
15
18
  )
16
19
  from ...._base_client import make_request_options
20
+ from ....types.v1.upload import (
21
+ component_upload_url_params,
22
+ component_upload_file_params,
23
+ component_complete_upload_params,
24
+ component_get_presigned_url_params,
25
+ )
26
+ from ....types.v1.upload.component_get_presigned_url_response import ComponentGetPresignedURLResponse
17
27
 
18
28
  __all__ = ["ComponentResource", "AsyncComponentResource"]
19
29
 
@@ -42,6 +52,9 @@ class ComponentResource(SyncAPIResource):
42
52
  self,
43
53
  component_id: str,
44
54
  *,
55
+ material_id: str,
56
+ organization_id: str,
57
+ s3_key: str,
45
58
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
46
59
  # The extra values given here take precedence over values defined on the client or passed to this method.
47
60
  extra_headers: Headers | None = None,
@@ -50,7 +63,15 @@ class ComponentResource(SyncAPIResource):
50
63
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
51
64
  ) -> None:
52
65
  """
66
+ Complete a file upload after using presigned URL
67
+
53
68
  Args:
69
+ material_id: The ID of the material that was uploaded
70
+
71
+ organization_id: The ID of the organization
72
+
73
+ s3_key: The S3 key of the uploaded file
74
+
54
75
  extra_headers: Send extra headers
55
76
 
56
77
  extra_query: Add additional query parameters to the request
@@ -64,6 +85,14 @@ class ComponentResource(SyncAPIResource):
64
85
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
65
86
  return self._post(
66
87
  f"/api/v1/upload/component/{component_id}/complete",
88
+ body=maybe_transform(
89
+ {
90
+ "material_id": material_id,
91
+ "organization_id": organization_id,
92
+ "s3_key": s3_key,
93
+ },
94
+ component_complete_upload_params.ComponentCompleteUploadParams,
95
+ ),
67
96
  options=make_request_options(
68
97
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
69
98
  ),
@@ -74,15 +103,29 @@ class ComponentResource(SyncAPIResource):
74
103
  self,
75
104
  component_id: str,
76
105
  *,
106
+ content_type: str,
107
+ filename: str,
108
+ folder_id: str,
109
+ organization_id: str,
77
110
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
78
111
  # The extra values given here take precedence over values defined on the client or passed to this method.
79
112
  extra_headers: Headers | None = None,
80
113
  extra_query: Query | None = None,
81
114
  extra_body: Body | None = None,
82
115
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
83
- ) -> None:
116
+ ) -> ComponentGetPresignedURLResponse:
84
117
  """
118
+ Get a presigned URL for direct file upload
119
+
85
120
  Args:
121
+ content_type: The MIME type of the file
122
+
123
+ filename: The name of the file to upload
124
+
125
+ folder_id: The ID of the folder to upload to
126
+
127
+ organization_id: The ID of the organization
128
+
86
129
  extra_headers: Send extra headers
87
130
 
88
131
  extra_query: Add additional query parameters to the request
@@ -93,19 +136,30 @@ class ComponentResource(SyncAPIResource):
93
136
  """
94
137
  if not component_id:
95
138
  raise ValueError(f"Expected a non-empty value for `component_id` but received {component_id!r}")
96
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
97
139
  return self._post(
98
140
  f"/api/v1/upload/component/{component_id}/presigned-url",
141
+ body=maybe_transform(
142
+ {
143
+ "content_type": content_type,
144
+ "filename": filename,
145
+ "folder_id": folder_id,
146
+ "organization_id": organization_id,
147
+ },
148
+ component_get_presigned_url_params.ComponentGetPresignedURLParams,
149
+ ),
99
150
  options=make_request_options(
100
151
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
101
152
  ),
102
- cast_to=NoneType,
153
+ cast_to=ComponentGetPresignedURLResponse,
103
154
  )
104
155
 
105
156
  def upload_file(
106
157
  self,
107
158
  component_id: str,
108
159
  *,
160
+ file: FileTypes,
161
+ folder_id: str,
162
+ organization_id: str,
109
163
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
110
164
  # The extra values given here take precedence over values defined on the client or passed to this method.
111
165
  extra_headers: Headers | None = None,
@@ -114,7 +168,15 @@ class ComponentResource(SyncAPIResource):
114
168
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
115
169
  ) -> None:
116
170
  """
171
+ Upload a file to a component
172
+
117
173
  Args:
174
+ file: The file to upload
175
+
176
+ folder_id: The ID of the folder to upload to
177
+
178
+ organization_id: The ID of the organization
179
+
118
180
  extra_headers: Send extra headers
119
181
 
120
182
  extra_query: Add additional query parameters to the request
@@ -126,8 +188,22 @@ class ComponentResource(SyncAPIResource):
126
188
  if not component_id:
127
189
  raise ValueError(f"Expected a non-empty value for `component_id` but received {component_id!r}")
128
190
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
191
+ body = deepcopy_minimal(
192
+ {
193
+ "file": file,
194
+ "folder_id": folder_id,
195
+ "organization_id": organization_id,
196
+ }
197
+ )
198
+ files = extract_files(cast(Mapping[str, object], body), paths=[["file"]])
199
+ # It should be noted that the actual Content-Type header that will be
200
+ # sent to the server will contain a `boundary` parameter, e.g.
201
+ # multipart/form-data; boundary=---abc--
202
+ extra_headers["Content-Type"] = "multipart/form-data"
129
203
  return self._post(
130
204
  f"/api/v1/upload/component/{component_id}/file",
205
+ body=maybe_transform(body, component_upload_file_params.ComponentUploadFileParams),
206
+ files=files,
131
207
  options=make_request_options(
132
208
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
133
209
  ),
@@ -138,6 +214,10 @@ class ComponentResource(SyncAPIResource):
138
214
  self,
139
215
  component_id: str,
140
216
  *,
217
+ folder_id: str,
218
+ name: str,
219
+ organization_id: str,
220
+ url: str,
141
221
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
142
222
  # The extra values given here take precedence over values defined on the client or passed to this method.
143
223
  extra_headers: Headers | None = None,
@@ -146,7 +226,17 @@ class ComponentResource(SyncAPIResource):
146
226
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
147
227
  ) -> None:
148
228
  """
229
+ Upload a file from URL to a component
230
+
149
231
  Args:
232
+ folder_id: The ID of the folder to upload to
233
+
234
+ name: The name for the uploaded file
235
+
236
+ organization_id: The ID of the organization
237
+
238
+ url: The URL of the file to upload
239
+
150
240
  extra_headers: Send extra headers
151
241
 
152
242
  extra_query: Add additional query parameters to the request
@@ -160,6 +250,15 @@ class ComponentResource(SyncAPIResource):
160
250
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
161
251
  return self._post(
162
252
  f"/api/v1/upload/component/{component_id}/url",
253
+ body=maybe_transform(
254
+ {
255
+ "folder_id": folder_id,
256
+ "name": name,
257
+ "organization_id": organization_id,
258
+ "url": url,
259
+ },
260
+ component_upload_url_params.ComponentUploadURLParams,
261
+ ),
163
262
  options=make_request_options(
164
263
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
165
264
  ),
@@ -191,6 +290,9 @@ class AsyncComponentResource(AsyncAPIResource):
191
290
  self,
192
291
  component_id: str,
193
292
  *,
293
+ material_id: str,
294
+ organization_id: str,
295
+ s3_key: str,
194
296
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
195
297
  # The extra values given here take precedence over values defined on the client or passed to this method.
196
298
  extra_headers: Headers | None = None,
@@ -199,7 +301,15 @@ class AsyncComponentResource(AsyncAPIResource):
199
301
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
200
302
  ) -> None:
201
303
  """
304
+ Complete a file upload after using presigned URL
305
+
202
306
  Args:
307
+ material_id: The ID of the material that was uploaded
308
+
309
+ organization_id: The ID of the organization
310
+
311
+ s3_key: The S3 key of the uploaded file
312
+
203
313
  extra_headers: Send extra headers
204
314
 
205
315
  extra_query: Add additional query parameters to the request
@@ -213,6 +323,14 @@ class AsyncComponentResource(AsyncAPIResource):
213
323
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
214
324
  return await self._post(
215
325
  f"/api/v1/upload/component/{component_id}/complete",
326
+ body=await async_maybe_transform(
327
+ {
328
+ "material_id": material_id,
329
+ "organization_id": organization_id,
330
+ "s3_key": s3_key,
331
+ },
332
+ component_complete_upload_params.ComponentCompleteUploadParams,
333
+ ),
216
334
  options=make_request_options(
217
335
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
218
336
  ),
@@ -223,15 +341,29 @@ class AsyncComponentResource(AsyncAPIResource):
223
341
  self,
224
342
  component_id: str,
225
343
  *,
344
+ content_type: str,
345
+ filename: str,
346
+ folder_id: str,
347
+ organization_id: str,
226
348
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
227
349
  # The extra values given here take precedence over values defined on the client or passed to this method.
228
350
  extra_headers: Headers | None = None,
229
351
  extra_query: Query | None = None,
230
352
  extra_body: Body | None = None,
231
353
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
232
- ) -> None:
354
+ ) -> ComponentGetPresignedURLResponse:
233
355
  """
356
+ Get a presigned URL for direct file upload
357
+
234
358
  Args:
359
+ content_type: The MIME type of the file
360
+
361
+ filename: The name of the file to upload
362
+
363
+ folder_id: The ID of the folder to upload to
364
+
365
+ organization_id: The ID of the organization
366
+
235
367
  extra_headers: Send extra headers
236
368
 
237
369
  extra_query: Add additional query parameters to the request
@@ -242,19 +374,30 @@ class AsyncComponentResource(AsyncAPIResource):
242
374
  """
243
375
  if not component_id:
244
376
  raise ValueError(f"Expected a non-empty value for `component_id` but received {component_id!r}")
245
- extra_headers = {"Accept": "*/*", **(extra_headers or {})}
246
377
  return await self._post(
247
378
  f"/api/v1/upload/component/{component_id}/presigned-url",
379
+ body=await async_maybe_transform(
380
+ {
381
+ "content_type": content_type,
382
+ "filename": filename,
383
+ "folder_id": folder_id,
384
+ "organization_id": organization_id,
385
+ },
386
+ component_get_presigned_url_params.ComponentGetPresignedURLParams,
387
+ ),
248
388
  options=make_request_options(
249
389
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
250
390
  ),
251
- cast_to=NoneType,
391
+ cast_to=ComponentGetPresignedURLResponse,
252
392
  )
253
393
 
254
394
  async def upload_file(
255
395
  self,
256
396
  component_id: str,
257
397
  *,
398
+ file: FileTypes,
399
+ folder_id: str,
400
+ organization_id: str,
258
401
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
259
402
  # The extra values given here take precedence over values defined on the client or passed to this method.
260
403
  extra_headers: Headers | None = None,
@@ -263,7 +406,15 @@ class AsyncComponentResource(AsyncAPIResource):
263
406
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
264
407
  ) -> None:
265
408
  """
409
+ Upload a file to a component
410
+
266
411
  Args:
412
+ file: The file to upload
413
+
414
+ folder_id: The ID of the folder to upload to
415
+
416
+ organization_id: The ID of the organization
417
+
267
418
  extra_headers: Send extra headers
268
419
 
269
420
  extra_query: Add additional query parameters to the request
@@ -275,8 +426,22 @@ class AsyncComponentResource(AsyncAPIResource):
275
426
  if not component_id:
276
427
  raise ValueError(f"Expected a non-empty value for `component_id` but received {component_id!r}")
277
428
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
429
+ body = deepcopy_minimal(
430
+ {
431
+ "file": file,
432
+ "folder_id": folder_id,
433
+ "organization_id": organization_id,
434
+ }
435
+ )
436
+ files = extract_files(cast(Mapping[str, object], body), paths=[["file"]])
437
+ # It should be noted that the actual Content-Type header that will be
438
+ # sent to the server will contain a `boundary` parameter, e.g.
439
+ # multipart/form-data; boundary=---abc--
440
+ extra_headers["Content-Type"] = "multipart/form-data"
278
441
  return await self._post(
279
442
  f"/api/v1/upload/component/{component_id}/file",
443
+ body=await async_maybe_transform(body, component_upload_file_params.ComponentUploadFileParams),
444
+ files=files,
280
445
  options=make_request_options(
281
446
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
282
447
  ),
@@ -287,6 +452,10 @@ class AsyncComponentResource(AsyncAPIResource):
287
452
  self,
288
453
  component_id: str,
289
454
  *,
455
+ folder_id: str,
456
+ name: str,
457
+ organization_id: str,
458
+ url: str,
290
459
  # Use the following arguments if you need to pass additional parameters to the API that aren't available via kwargs.
291
460
  # The extra values given here take precedence over values defined on the client or passed to this method.
292
461
  extra_headers: Headers | None = None,
@@ -295,7 +464,17 @@ class AsyncComponentResource(AsyncAPIResource):
295
464
  timeout: float | httpx.Timeout | None | NotGiven = NOT_GIVEN,
296
465
  ) -> None:
297
466
  """
467
+ Upload a file from URL to a component
468
+
298
469
  Args:
470
+ folder_id: The ID of the folder to upload to
471
+
472
+ name: The name for the uploaded file
473
+
474
+ organization_id: The ID of the organization
475
+
476
+ url: The URL of the file to upload
477
+
299
478
  extra_headers: Send extra headers
300
479
 
301
480
  extra_query: Add additional query parameters to the request
@@ -309,6 +488,15 @@ class AsyncComponentResource(AsyncAPIResource):
309
488
  extra_headers = {"Accept": "*/*", **(extra_headers or {})}
310
489
  return await self._post(
311
490
  f"/api/v1/upload/component/{component_id}/url",
491
+ body=await async_maybe_transform(
492
+ {
493
+ "folder_id": folder_id,
494
+ "name": name,
495
+ "organization_id": organization_id,
496
+ "url": url,
497
+ },
498
+ component_upload_url_params.ComponentUploadURLParams,
499
+ ),
312
500
  options=make_request_options(
313
501
  extra_headers=extra_headers, extra_query=extra_query, extra_body=extra_body, timeout=timeout
314
502
  ),
@@ -18,6 +18,7 @@ from .flashcard_rate_params import FlashcardRateParams as FlashcardRateParams
18
18
  from .embed_get_theme_params import EmbedGetThemeParams as EmbedGetThemeParams
19
19
  from .material_create_params import MaterialCreateParams as MaterialCreateParams
20
20
  from .material_list_response import MaterialListResponse as MaterialListResponse
21
+ from .material_search_params import MaterialSearchParams as MaterialSearchParams
21
22
  from .scenario_create_params import ScenarioCreateParams as ScenarioCreateParams
22
23
  from .scenario_update_params import ScenarioUpdateParams as ScenarioUpdateParams
23
24
  from .usage_get_stats_params import UsageGetStatsParams as UsageGetStatsParams
@@ -31,9 +31,6 @@ class ComponentCreateParams(TypedDict, total=False):
31
31
  name: Required[str]
32
32
  """Name of the component"""
33
33
 
34
- origin: Required[Literal["chat", "classroom", "upload", "console", "api"]]
35
- """Origin of the component"""
36
-
37
34
  type: Required[
38
35
  Literal["chat", "flashcards", "scenarios", "practice_test", "audio_recap", "tutor_me", "explainers", "uploads"]
39
36
  ]