openrouter 0.0.15__tar.gz → 0.0.17__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 (260) hide show
  1. {openrouter-0.0.15 → openrouter-0.0.17}/PKG-INFO +3 -1
  2. openrouter-0.0.17/README.md +249 -0
  3. {openrouter-0.0.15 → openrouter-0.0.17}/pyproject.toml +4 -2
  4. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/_version.py +3 -3
  5. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/analytics.py +5 -3
  6. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/api_keys.py +35 -15
  7. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/basesdk.py +6 -0
  8. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/chat.py +154 -14
  9. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/completions.py +2 -0
  10. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/__init__.py +299 -76
  11. openrouter-0.0.17/src/openrouter/components/_schema0.py +93 -0
  12. openrouter-0.0.17/src/openrouter/components/_schema3.py +228 -0
  13. openrouter-0.0.17/src/openrouter/components/chatgenerationparams.py +664 -0
  14. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagecontentitem.py +2 -1
  15. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagecontentitemaudio.py +6 -25
  16. openrouter-0.0.17/src/openrouter/components/chatmessagecontentitemcachecontrol.py +32 -0
  17. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagecontentitemtext.py +9 -2
  18. openrouter-0.0.17/src/openrouter/components/chatmessagecontentitemvideo.py +74 -0
  19. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatresponsechoice.py +6 -1
  20. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatstreamingmessagechunk.py +12 -1
  21. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/completionchoice.py +18 -5
  22. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/completioncreateparams.py +10 -10
  23. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/completionresponse.py +3 -0
  24. openrouter-0.0.17/src/openrouter/components/datacollection.py +19 -0
  25. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/message.py +10 -9
  26. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesannotation.py +11 -4
  27. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesreasoningeffort.py +2 -0
  28. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesnonstreamingresponse.py +13 -10
  29. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoning.py +1 -0
  30. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesrequest.py +194 -143
  31. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesstreamevent.py +110 -39
  32. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/outputmessage.py +10 -4
  33. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/parameter.py +1 -0
  34. openrouter-0.0.17/src/openrouter/components/pdfparserengine.py +16 -0
  35. openrouter-0.0.17/src/openrouter/components/pdfparseroptions.py +25 -0
  36. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/providername.py +9 -26
  37. openrouter-0.0.17/src/openrouter/components/providerpreferences.py +375 -0
  38. openrouter-0.0.17/src/openrouter/components/providersort.py +15 -0
  39. openrouter-0.0.17/src/openrouter/components/providersortconfig.py +71 -0
  40. openrouter-0.0.17/src/openrouter/components/providersortunion.py +23 -0
  41. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/publicendpoint.py +50 -45
  42. openrouter-0.0.17/src/openrouter/components/publicpricing.py +78 -0
  43. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseformattextconfig.py +9 -7
  44. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesoutputitem.py +12 -10
  45. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesoutputmessage.py +10 -5
  46. openrouter-0.0.17/src/openrouter/components/websearchengine.py +15 -0
  47. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/credits.py +6 -2
  48. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/embeddings.py +37 -27
  49. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/endpoints.py +9 -5
  50. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/generations.py +4 -2
  51. openrouter-0.0.17/src/openrouter/models/__init__.py +3 -0
  52. openrouter-0.0.17/src/openrouter/models/internal/__init__.py +54 -0
  53. openrouter-0.0.17/src/openrouter/models/internal/globals.py +41 -0
  54. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/models_.py +13 -7
  55. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/oauth.py +6 -2
  56. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/__init__.py +46 -49
  57. openrouter-0.0.17/src/openrouter/operations/createembeddings.py +193 -0
  58. openrouter-0.0.17/src/openrouter/operations/getcredits.py +32 -0
  59. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/getparameters.py +5 -77
  60. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/updatekeys.py +2 -2
  61. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/parameters.py +6 -4
  62. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/providers.py +5 -3
  63. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/responses.py +74 -36
  64. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/sdk.py +13 -0
  65. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/sdkconfiguration.py +2 -0
  66. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/forms.py +21 -10
  67. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/queryparams.py +14 -2
  68. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/retries.py +69 -5
  69. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/unmarshal_json_response.py +15 -1
  70. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter.egg-info/PKG-INFO +3 -1
  71. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter.egg-info/SOURCES.txt +15 -0
  72. openrouter-0.0.15/src/openrouter/components/chatgenerationparams.py +0 -291
  73. openrouter-0.0.15/src/openrouter/components/chatmessagecontentitemvideo.py +0 -33
  74. openrouter-0.0.15/src/openrouter/components/publicpricing.py +0 -73
  75. openrouter-0.0.15/src/openrouter/operations/createembeddings.py +0 -389
  76. openrouter-0.0.15/src/openrouter/operations/getcredits.py +0 -13
  77. {openrouter-0.0.15 → openrouter-0.0.17}/LICENSE +0 -0
  78. /openrouter-0.0.15/README.md → /openrouter-0.0.17/README-PYPI.md +0 -0
  79. {openrouter-0.0.15 → openrouter-0.0.17}/setup.cfg +0 -0
  80. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/__init__.py +0 -0
  81. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/_hooks/__init__.py +0 -0
  82. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/_hooks/registration.py +0 -0
  83. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/_hooks/sdkhooks.py +0 -0
  84. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/_hooks/types.py +0 -0
  85. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/beta.py +0 -0
  86. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/activityitem.py +0 -0
  87. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/assistantmessage.py +0 -0
  88. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/badgatewayresponseerrordata.py +0 -0
  89. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/badrequestresponseerrordata.py +0 -0
  90. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatcompletionfinishreason.py +0 -0
  91. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chaterror.py +0 -0
  92. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatgenerationtokenusage.py +0 -0
  93. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagecontentitemimage.py +0 -0
  94. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagetokenlogprob.py +0 -0
  95. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagetokenlogprobs.py +0 -0
  96. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagetoolcall.py +0 -0
  97. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatresponse.py +0 -0
  98. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatstreamingchoice.py +0 -0
  99. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatstreamingmessagetoolcall.py +0 -0
  100. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatstreamingresponsechunk.py +0 -0
  101. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatstreamoptions.py +0 -0
  102. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/completionlogprobs.py +0 -0
  103. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/completionusage.py +0 -0
  104. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/createchargerequest.py +0 -0
  105. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/defaultparameters.py +0 -0
  106. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/edgenetworktimeoutresponseerrordata.py +0 -0
  107. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/endpointstatus.py +0 -0
  108. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/filecitation.py +0 -0
  109. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/filepath.py +0 -0
  110. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/forbiddenresponseerrordata.py +0 -0
  111. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/imagegenerationstatus.py +0 -0
  112. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/inputmodality.py +0 -0
  113. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/instructtype.py +0 -0
  114. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/internalserverresponseerrordata.py +0 -0
  115. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/jsonschemaconfig.py +0 -0
  116. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/listendpointsresponse.py +0 -0
  117. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/model.py +0 -0
  118. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/modelarchitecture.py +0 -0
  119. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/modelgroup.py +0 -0
  120. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/modelscountresponse.py +0 -0
  121. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/modelslistresponse.py +0 -0
  122. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/namedtoolchoice.py +0 -0
  123. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/notfoundresponseerrordata.py +0 -0
  124. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesincludable.py +0 -0
  125. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesincompletedetails.py +0 -0
  126. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesinput_union.py +0 -0
  127. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesprompt.py +0 -0
  128. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesreasoningconfig.py +0 -0
  129. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesrefusalcontent.py +0 -0
  130. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesresponsestatus.py +0 -0
  131. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesservicetier.py +0 -0
  132. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsestoolchoice_union.py +0 -0
  133. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsestruncation.py +0 -0
  134. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseseasyinputmessage.py +0 -0
  135. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseserrorevent.py +0 -0
  136. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesfunctioncalloutput.py +0 -0
  137. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesfunctiontoolcall.py +0 -0
  138. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesimagegencallcompleted.py +0 -0
  139. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesimagegencallgenerating.py +0 -0
  140. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesimagegencallinprogress.py +0 -0
  141. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesimagegencallpartialimage.py +0 -0
  142. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesinput.py +0 -0
  143. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesinputmessageitem.py +0 -0
  144. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseslogprobs.py +0 -0
  145. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoningconfig.py +0 -0
  146. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoningdeltaevent.py +0 -0
  147. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoningdoneevent.py +0 -0
  148. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoningsummarypartaddedevent.py +0 -0
  149. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoningsummarytextdeltaevent.py +0 -0
  150. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoningsummarytextdoneevent.py +0 -0
  151. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesresponsetext.py +0 -0
  152. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsestoplogprobs.py +0 -0
  153. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesusage.py +0 -0
  154. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseswebsearch20250826tool.py +0 -0
  155. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseswebsearchpreview20250311tool.py +0 -0
  156. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseswebsearchpreviewtool.py +0 -0
  157. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseswebsearchtool.py +0 -0
  158. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/outputitemimagegenerationcall.py +0 -0
  159. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/outputmodality.py +0 -0
  160. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/payloadtoolargeresponseerrordata.py +0 -0
  161. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/paymentrequiredresponseerrordata.py +0 -0
  162. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/perrequestlimits.py +0 -0
  163. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/provideroverloadedresponseerrordata.py +0 -0
  164. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/quantization.py +0 -0
  165. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/reasoningsummarytext.py +0 -0
  166. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/reasoningsummaryverbosity.py +0 -0
  167. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/reasoningtextcontent.py +0 -0
  168. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/requesttimeoutresponseerrordata.py +0 -0
  169. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseformatjsonschema.py +0 -0
  170. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseformattextgrammar.py +0 -0
  171. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseinputaudio.py +0 -0
  172. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseinputfile.py +0 -0
  173. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseinputimage.py +0 -0
  174. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseinputtext.py +0 -0
  175. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseoutputtext.py +0 -0
  176. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseserrorfield.py +0 -0
  177. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesformatjsonobject.py +0 -0
  178. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesformattext.py +0 -0
  179. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesformattextjsonschemaconfig.py +0 -0
  180. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesimagegenerationcall.py +0 -0
  181. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesoutputitemfilesearchcall.py +0 -0
  182. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesoutputitemfunctioncall.py +0 -0
  183. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesoutputitemreasoning.py +0 -0
  184. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsessearchcontextsize.py +0 -0
  185. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseswebsearchcalloutput.py +0 -0
  186. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseswebsearchuserlocation.py +0 -0
  187. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsetextconfig.py +0 -0
  188. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/security.py +0 -0
  189. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/serviceunavailableresponseerrordata.py +0 -0
  190. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/systemmessage.py +0 -0
  191. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/toolcallstatus.py +0 -0
  192. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/tooldefinitionjson.py +0 -0
  193. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/toolresponsemessage.py +0 -0
  194. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/toomanyrequestsresponseerrordata.py +0 -0
  195. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/topproviderinfo.py +0 -0
  196. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/unauthorizedresponseerrordata.py +0 -0
  197. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/unprocessableentityresponseerrordata.py +0 -0
  198. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/urlcitation.py +0 -0
  199. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/usermessage.py +0 -0
  200. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/websearchpreviewtooluserlocation.py +0 -0
  201. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/websearchstatus.py +0 -0
  202. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/__init__.py +0 -0
  203. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/badgatewayresponse_error.py +0 -0
  204. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/badrequestresponse_error.py +0 -0
  205. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/chaterror.py +0 -0
  206. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/edgenetworktimeoutresponse_error.py +0 -0
  207. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/forbiddenresponse_error.py +0 -0
  208. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/internalserverresponse_error.py +0 -0
  209. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/no_response_error.py +0 -0
  210. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/notfoundresponse_error.py +0 -0
  211. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/openrouterdefaulterror.py +0 -0
  212. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/openroutererror.py +0 -0
  213. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/payloadtoolargeresponse_error.py +0 -0
  214. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/paymentrequiredresponse_error.py +0 -0
  215. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/provideroverloadedresponse_error.py +0 -0
  216. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/requesttimeoutresponse_error.py +0 -0
  217. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/responsevalidationerror.py +0 -0
  218. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/serviceunavailableresponse_error.py +0 -0
  219. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/toomanyrequestsresponse_error.py +0 -0
  220. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/unauthorizedresponse_error.py +0 -0
  221. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/unprocessableentityresponse_error.py +0 -0
  222. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/httpclient.py +0 -0
  223. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/createauthkeyscode.py +0 -0
  224. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/createcoinbasecharge.py +0 -0
  225. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/createkeys.py +0 -0
  226. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/createresponses.py +0 -0
  227. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/deletekeys.py +0 -0
  228. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/exchangeauthcodeforapikey.py +0 -0
  229. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/getcurrentkey.py +0 -0
  230. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/getgeneration.py +0 -0
  231. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/getkey.py +0 -0
  232. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/getmodels.py +0 -0
  233. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/getuseractivity.py +0 -0
  234. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/list.py +0 -0
  235. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/listendpoints.py +0 -0
  236. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/listendpointszdr.py +0 -0
  237. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/listmodelsuser.py +0 -0
  238. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/listproviders.py +0 -0
  239. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/sendchatcompletionrequest.py +0 -0
  240. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/py.typed +0 -0
  241. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/types/__init__.py +0 -0
  242. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/types/basemodel.py +0 -0
  243. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/__init__.py +0 -0
  244. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/annotations.py +0 -0
  245. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/datetimes.py +0 -0
  246. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/enums.py +0 -0
  247. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/eventstreaming.py +0 -0
  248. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/headers.py +0 -0
  249. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/logger.py +0 -0
  250. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/metadata.py +0 -0
  251. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/oauth_create_authorization_url.py +0 -0
  252. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/oauth_create_sha256_code_challenge.py +0 -0
  253. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/requestbodies.py +0 -0
  254. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/security.py +0 -0
  255. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/serializers.py +0 -0
  256. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/url.py +0 -0
  257. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/values.py +0 -0
  258. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter.egg-info/dependency_links.txt +0 -0
  259. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter.egg-info/requires.txt +0 -0
  260. {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter.egg-info/top_level.txt +0 -0
@@ -1,8 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: openrouter
3
- Version: 0.0.15
3
+ Version: 0.0.17
4
4
  Summary: Official Python Client SDK for OpenRouter.
5
5
  Author: OpenRouter
6
+ License: Apache-2.0
7
+ Project-URL: repository, https://github.com/OpenRouterTeam/python-sdk.git
6
8
  Requires-Python: >=3.9.2
7
9
  Description-Content-Type: text/markdown
8
10
  License-File: LICENSE
@@ -0,0 +1,249 @@
1
+ # OpenRouter SDK (Beta)
2
+
3
+ The [OpenRouter SDK](https://openrouter.ai/docs/sdks/python) is a Python toolkit designed to help you build AI-powered features and solutions. Giving you easy access to over 300 models across providers in an easy and type-safe way.
4
+
5
+ To learn more about how to use the OpenRouter SDK, check out our [API Reference](https://openrouter.ai/docs/sdks/python/reference) and [Documentation](https://openrouter.ai/docs/sdks/python).
6
+
7
+ <!-- No Summary [summary] -->
8
+
9
+ <!-- No Table of Contents [toc] -->
10
+
11
+ <!-- Start SDK Installation [installation] -->
12
+ ## SDK Installation
13
+
14
+ > [!NOTE]
15
+ > **Python version upgrade policy**
16
+ >
17
+ > Once a Python version reaches its [official end of life date](https://devguide.python.org/versions/), a 3-month grace period is provided for users to upgrade. Following this grace period, the minimum python version supported in the SDK will be updated.
18
+
19
+ The SDK can be installed with *uv*, *pip*, or *poetry* package managers.
20
+
21
+ ### uv
22
+
23
+ *uv* is a fast Python package installer and resolver, designed as a drop-in replacement for pip and pip-tools. It's recommended for its speed and modern Python tooling capabilities.
24
+
25
+ ```bash
26
+ uv add openrouter
27
+ ```
28
+
29
+ ### PIP
30
+
31
+ *PIP* is the default package installer for Python, enabling easy installation and management of packages from PyPI via the command line.
32
+
33
+ ```bash
34
+ pip install openrouter
35
+ ```
36
+
37
+ ### Poetry
38
+
39
+ *Poetry* is a modern tool that simplifies dependency management and package publishing by using a single `pyproject.toml` file to handle project metadata and dependencies.
40
+
41
+ ```bash
42
+ poetry add openrouter
43
+ ```
44
+
45
+ ### Shell and script usage with `uv`
46
+
47
+ You can use this SDK in a Python shell with [uv](https://docs.astral.sh/uv/) and the `uvx` command that comes with it like so:
48
+
49
+ ```shell
50
+ uvx --from openrouter python
51
+ ```
52
+
53
+ It's also possible to write a standalone Python script without needing to set up a whole project like so:
54
+
55
+ ```python
56
+ #!/usr/bin/env -S uv run --script
57
+ # /// script
58
+ # requires-python = ">=3.9"
59
+ # dependencies = [
60
+ # "openrouter",
61
+ # ]
62
+ # ///
63
+
64
+ from openrouter import OpenRouter
65
+
66
+ sdk = OpenRouter(
67
+ # SDK arguments
68
+ )
69
+
70
+ # Rest of script here...
71
+ ```
72
+
73
+ Once that is saved to a file, you can run it with `uv run script.py` where
74
+ `script.py` can be replaced with the actual file name.
75
+ <!-- End SDK Installation [installation] -->
76
+
77
+ <!-- Start Requirements [requirements] -->
78
+ ## Requirements
79
+
80
+ This SDK requires Python 3.9 or higher. For Python version support policy, see the SDK Installation section above.
81
+ <!-- End Requirements [requirements] -->
82
+
83
+ <!-- Start IDE Support [idesupport] -->
84
+ ## IDE Support
85
+
86
+ ### PyCharm
87
+
88
+ Generally, the SDK will work well with most IDEs out of the box. However, when using PyCharm, you can enjoy much better integration with Pydantic by installing an additional plugin.
89
+
90
+ - [PyCharm Pydantic Plugin](https://docs.pydantic.dev/latest/integrations/pycharm/)
91
+ <!-- End IDE Support [idesupport] -->
92
+
93
+ <!-- No SDK Example Usage [usage] -->
94
+ ## SDK Usage
95
+
96
+ ```python
97
+ # Synchronous Example
98
+ from openrouter import OpenRouter
99
+ import os
100
+
101
+
102
+ with OpenRouter(
103
+ api_key=os.getenv("OPENROUTER_API_KEY", ""),
104
+ ) as open_router:
105
+
106
+ res = open_router.chat.send(messages=[
107
+ {
108
+ "role": "user",
109
+ "content": "Hello, how are you?",
110
+ },
111
+ ], model="anthropic/claude-4.5-sonnet", provider={
112
+ "zdr": True,
113
+ "sort": "price",
114
+ }, stream=True)
115
+
116
+ for event in event_stream:
117
+ # handle event
118
+ print(event, flush=True)
119
+ ```
120
+
121
+ </br>
122
+
123
+ The same SDK client can also be used to make asynchronous requests by importing asyncio.
124
+
125
+ ```python
126
+ # Asynchronous Example
127
+ import asyncio
128
+ from openrouter import OpenRouter
129
+ import os
130
+
131
+ async def main():
132
+
133
+ async with OpenRouter(
134
+ api_key=os.getenv("OPENROUTER_API_KEY", ""),
135
+ ) as open_router:
136
+
137
+ res = await open_router.chat.send_async(messages=[
138
+ {
139
+ "role": "user",
140
+ "content": "Hello, how are you?",
141
+ },
142
+ ], model="anthropic/claude-4.5-sonnet", provider={
143
+ "zdr": True,
144
+ "sort": "price",
145
+ }, stream=True)
146
+
147
+ async for event in event_stream:
148
+ # handle event
149
+ print(event, flush=True)
150
+
151
+ asyncio.run(main())
152
+ ```
153
+
154
+ <!-- No Authentication [security] -->
155
+
156
+ <!-- No Available Resources and Operations [operations] -->
157
+
158
+ <!-- No Standalone functions [standalone-funcs] -->
159
+
160
+ <!-- No React hooks with TanStack Query [react-query] -->
161
+
162
+ <!-- No Server-sent event streaming [eventstream] -->
163
+
164
+ <!-- No Retries [retries] -->
165
+
166
+ <!-- No Error Handling [errors] -->
167
+
168
+ <!-- No Server Selection [server] -->
169
+
170
+ <!-- No Custom HTTP Client [http-client] -->
171
+
172
+ <!-- Start Resource Management [resource-management] -->
173
+ ## Resource Management
174
+
175
+ The `OpenRouter` class implements the context manager protocol and registers a finalizer function to close the underlying sync and async HTTPX clients it uses under the hood. This will close HTTP connections, release memory and free up other resources held by the SDK. In short-lived Python programs and notebooks that make a few SDK method calls, resource management may not be a concern. However, in longer-lived programs, it is beneficial to create a single SDK instance via a [context manager][context-manager] and reuse it across the application.
176
+
177
+ [context-manager]: https://docs.python.org/3/reference/datamodel.html#context-managers
178
+
179
+ ```python
180
+ from openrouter import OpenRouter
181
+ import os
182
+ def main():
183
+
184
+ with OpenRouter(
185
+ api_key=os.getenv("OPENROUTER_API_KEY", ""),
186
+ ) as open_router:
187
+ # Rest of application here...
188
+
189
+
190
+ # Or when using async:
191
+ async def amain():
192
+
193
+ async with OpenRouter(
194
+ api_key=os.getenv("OPENROUTER_API_KEY", ""),
195
+ ) as open_router:
196
+ # Rest of application here...
197
+ ```
198
+ <!-- End Resource Management [resource-management] -->
199
+
200
+ <!-- Start Debugging [debug] -->
201
+ ## Debugging
202
+
203
+ You can setup your SDK to emit debug logs for SDK requests and responses.
204
+
205
+ You can pass your own logger class directly into your SDK.
206
+ ```python
207
+ from openrouter import OpenRouter
208
+ import logging
209
+
210
+ logging.basicConfig(level=logging.DEBUG)
211
+ s = OpenRouter(debug_logger=logging.getLogger("openrouter"))
212
+ ```
213
+
214
+ You can also enable a default debug logger by setting an environment variable `OPENROUTER_DEBUG` to true.
215
+ <!-- End Debugging [debug] -->
216
+
217
+ <!-- Placeholder for Future Speakeasy SDK Sections -->
218
+
219
+ # Development
220
+
221
+ ## Running Tests
222
+
223
+ To run the test suite, you'll need to set up your environment with an OpenRouter API key.
224
+
225
+ ### Local Development
226
+
227
+ 1. Copy the example environment file:
228
+
229
+ ```bash
230
+ cp .env.example .env
231
+ ```
232
+
233
+ 2. Edit `.env` and add your OpenRouter API key:
234
+
235
+ ```bash
236
+ OPENROUTER_API_KEY=your_api_key_here
237
+ ```
238
+
239
+ 3. Run the tests:
240
+
241
+ ```bash
242
+ pytest
243
+ ```
244
+
245
+ ## Maturity
246
+
247
+ This SDK is in beta, and there may be breaking changes between versions without a major version update. Therefore, we recommend pinning usage
248
+ to a specific package version. This way, you can install the same version each time without breaking changes unless you are intentionally
249
+ looking for the latest version.
@@ -1,15 +1,17 @@
1
1
  [project]
2
2
  name = "openrouter"
3
- version = "0.0.15"
3
+ version = "0.0.17"
4
4
  description = "Official Python Client SDK for OpenRouter."
5
5
  authors = [{ name = "OpenRouter" },]
6
- readme = "README.md"
6
+ readme = "README-PYPI.md"
7
7
  requires-python = ">=3.9.2"
8
8
  dependencies = [
9
9
  "httpcore >=1.0.9",
10
10
  "httpx >=0.28.1",
11
11
  "pydantic >=2.11.2",
12
12
  ]
13
+ urls.repository = "https://github.com/OpenRouterTeam/python-sdk.git"
14
+ license = { text = "Apache-2.0" }
13
15
 
14
16
  [dependency-groups]
15
17
  dev = [
@@ -3,10 +3,10 @@
3
3
  import importlib.metadata
4
4
 
5
5
  __title__: str = "openrouter"
6
- __version__: str = "0.0.15"
6
+ __version__: str = "0.0.17"
7
7
  __openapi_doc_version__: str = "1.0.0"
8
- __gen_version__: str = "2.753.6"
9
- __user_agent__: str = "speakeasy-sdk/python 0.0.15 2.753.6 1.0.0 openrouter"
8
+ __gen_version__: str = "2.768.0"
9
+ __user_agent__: str = "speakeasy-sdk/python 0.0.17 2.768.0 1.0.0 openrouter"
10
10
 
11
11
  try:
12
12
  if __package__ is not None:
@@ -6,7 +6,7 @@ from openrouter._hooks import HookContext
6
6
  from openrouter.types import OptionalNullable, UNSET
7
7
  from openrouter.utils import get_security_from_env
8
8
  from openrouter.utils.unmarshal_json_response import unmarshal_json_response
9
- from typing import Any, List, Mapping, Optional
9
+ from typing import Any, Mapping, Optional
10
10
 
11
11
 
12
12
  class Analytics(BaseSDK):
@@ -20,7 +20,7 @@ class Analytics(BaseSDK):
20
20
  server_url: Optional[str] = None,
21
21
  timeout_ms: Optional[int] = None,
22
22
  http_headers: Optional[Mapping[str, str]] = None,
23
- ) -> List[components.ActivityItem]:
23
+ ) -> operations.GetUserActivityResponse:
24
24
  r"""Get user activity grouped by endpoint
25
25
 
26
26
  Returns user activity data grouped by endpoint for the last 30 (completed) UTC days
@@ -58,6 +58,7 @@ class Analytics(BaseSDK):
58
58
  accept_header_value="application/json",
59
59
  http_headers=http_headers,
60
60
  security=self.sdk_configuration.security,
61
+ allow_empty_value=None,
61
62
  timeout_ms=timeout_ms,
62
63
  )
63
64
 
@@ -128,7 +129,7 @@ class Analytics(BaseSDK):
128
129
  server_url: Optional[str] = None,
129
130
  timeout_ms: Optional[int] = None,
130
131
  http_headers: Optional[Mapping[str, str]] = None,
131
- ) -> List[components.ActivityItem]:
132
+ ) -> operations.GetUserActivityResponse:
132
133
  r"""Get user activity grouped by endpoint
133
134
 
134
135
  Returns user activity data grouped by endpoint for the last 30 (completed) UTC days
@@ -166,6 +167,7 @@ class Analytics(BaseSDK):
166
167
  accept_header_value="application/json",
167
168
  http_headers=http_headers,
168
169
  security=self.sdk_configuration.security,
170
+ allow_empty_value=None,
169
171
  timeout_ms=timeout_ms,
170
172
  )
171
173
 
@@ -7,7 +7,7 @@ from openrouter._hooks import HookContext
7
7
  from openrouter.types import OptionalNullable, UNSET
8
8
  from openrouter.utils import get_security_from_env
9
9
  from openrouter.utils.unmarshal_json_response import unmarshal_json_response
10
- from typing import Any, List, Mapping, Optional
10
+ from typing import Any, Mapping, Optional
11
11
 
12
12
 
13
13
  class APIKeys(BaseSDK):
@@ -22,7 +22,7 @@ class APIKeys(BaseSDK):
22
22
  server_url: Optional[str] = None,
23
23
  timeout_ms: Optional[int] = None,
24
24
  http_headers: Optional[Mapping[str, str]] = None,
25
- ) -> List[operations.ListData]:
25
+ ) -> operations.ListResponse:
26
26
  r"""List API keys
27
27
 
28
28
  :param include_disabled: Whether to include disabled API keys in the response
@@ -60,6 +60,7 @@ class APIKeys(BaseSDK):
60
60
  accept_header_value="application/json",
61
61
  http_headers=http_headers,
62
62
  security=self.sdk_configuration.security,
63
+ allow_empty_value=None,
63
64
  timeout_ms=timeout_ms,
64
65
  )
65
66
 
@@ -126,7 +127,7 @@ class APIKeys(BaseSDK):
126
127
  server_url: Optional[str] = None,
127
128
  timeout_ms: Optional[int] = None,
128
129
  http_headers: Optional[Mapping[str, str]] = None,
129
- ) -> List[operations.ListData]:
130
+ ) -> operations.ListResponse:
130
131
  r"""List API keys
131
132
 
132
133
  :param include_disabled: Whether to include disabled API keys in the response
@@ -164,6 +165,7 @@ class APIKeys(BaseSDK):
164
165
  accept_header_value="application/json",
165
166
  http_headers=http_headers,
166
167
  security=self.sdk_configuration.security,
168
+ allow_empty_value=None,
167
169
  timeout_ms=timeout_ms,
168
170
  )
169
171
 
@@ -233,7 +235,7 @@ class APIKeys(BaseSDK):
233
235
  server_url: Optional[str] = None,
234
236
  timeout_ms: Optional[int] = None,
235
237
  http_headers: Optional[Mapping[str, str]] = None,
236
- ) -> operations.CreateKeysData:
238
+ ) -> operations.CreateKeysResponse:
237
239
  r"""Create a new API key
238
240
 
239
241
  :param name: Name for the new API key
@@ -280,6 +282,7 @@ class APIKeys(BaseSDK):
280
282
  get_serialized_body=lambda: utils.serialize_request_body(
281
283
  request, False, False, "json", operations.CreateKeysRequest
282
284
  ),
285
+ allow_empty_value=None,
283
286
  timeout_ms=timeout_ms,
284
287
  )
285
288
 
@@ -354,7 +357,7 @@ class APIKeys(BaseSDK):
354
357
  server_url: Optional[str] = None,
355
358
  timeout_ms: Optional[int] = None,
356
359
  http_headers: Optional[Mapping[str, str]] = None,
357
- ) -> operations.CreateKeysData:
360
+ ) -> operations.CreateKeysResponse:
358
361
  r"""Create a new API key
359
362
 
360
363
  :param name: Name for the new API key
@@ -401,6 +404,7 @@ class APIKeys(BaseSDK):
401
404
  get_serialized_body=lambda: utils.serialize_request_body(
402
405
  request, False, False, "json", operations.CreateKeysRequest
403
406
  ),
407
+ allow_empty_value=None,
404
408
  timeout_ms=timeout_ms,
405
409
  )
406
410
 
@@ -476,7 +480,7 @@ class APIKeys(BaseSDK):
476
480
  server_url: Optional[str] = None,
477
481
  timeout_ms: Optional[int] = None,
478
482
  http_headers: Optional[Mapping[str, str]] = None,
479
- ) -> operations.UpdateKeysData:
483
+ ) -> operations.UpdateKeysResponse:
480
484
  r"""Update an API key
481
485
 
482
486
  :param hash: The hash identifier of the API key to update
@@ -502,7 +506,7 @@ class APIKeys(BaseSDK):
502
506
 
503
507
  request = operations.UpdateKeysRequest(
504
508
  hash=hash,
505
- body=operations.UpdateKeysRequestBody(
509
+ request_body=operations.UpdateKeysRequestBody(
506
510
  name=name,
507
511
  disabled=disabled,
508
512
  limit=limit,
@@ -525,8 +529,13 @@ class APIKeys(BaseSDK):
525
529
  http_headers=http_headers,
526
530
  security=self.sdk_configuration.security,
527
531
  get_serialized_body=lambda: utils.serialize_request_body(
528
- request.body, False, False, "json", operations.UpdateKeysRequestBody
532
+ request.request_body,
533
+ False,
534
+ False,
535
+ "json",
536
+ operations.UpdateKeysRequestBody,
529
537
  ),
538
+ allow_empty_value=None,
530
539
  timeout_ms=timeout_ms,
531
540
  )
532
541
 
@@ -607,7 +616,7 @@ class APIKeys(BaseSDK):
607
616
  server_url: Optional[str] = None,
608
617
  timeout_ms: Optional[int] = None,
609
618
  http_headers: Optional[Mapping[str, str]] = None,
610
- ) -> operations.UpdateKeysData:
619
+ ) -> operations.UpdateKeysResponse:
611
620
  r"""Update an API key
612
621
 
613
622
  :param hash: The hash identifier of the API key to update
@@ -633,7 +642,7 @@ class APIKeys(BaseSDK):
633
642
 
634
643
  request = operations.UpdateKeysRequest(
635
644
  hash=hash,
636
- body=operations.UpdateKeysRequestBody(
645
+ request_body=operations.UpdateKeysRequestBody(
637
646
  name=name,
638
647
  disabled=disabled,
639
648
  limit=limit,
@@ -656,8 +665,13 @@ class APIKeys(BaseSDK):
656
665
  http_headers=http_headers,
657
666
  security=self.sdk_configuration.security,
658
667
  get_serialized_body=lambda: utils.serialize_request_body(
659
- request.body, False, False, "json", operations.UpdateKeysRequestBody
668
+ request.request_body,
669
+ False,
670
+ False,
671
+ "json",
672
+ operations.UpdateKeysRequestBody,
660
673
  ),
674
+ allow_empty_value=None,
661
675
  timeout_ms=timeout_ms,
662
676
  )
663
677
 
@@ -769,6 +783,7 @@ class APIKeys(BaseSDK):
769
783
  accept_header_value="application/json",
770
784
  http_headers=http_headers,
771
785
  security=self.sdk_configuration.security,
786
+ allow_empty_value=None,
772
787
  timeout_ms=timeout_ms,
773
788
  )
774
789
 
@@ -875,6 +890,7 @@ class APIKeys(BaseSDK):
875
890
  accept_header_value="application/json",
876
891
  http_headers=http_headers,
877
892
  security=self.sdk_configuration.security,
893
+ allow_empty_value=None,
878
894
  timeout_ms=timeout_ms,
879
895
  )
880
896
 
@@ -945,7 +961,7 @@ class APIKeys(BaseSDK):
945
961
  server_url: Optional[str] = None,
946
962
  timeout_ms: Optional[int] = None,
947
963
  http_headers: Optional[Mapping[str, str]] = None,
948
- ) -> operations.GetKeyData:
964
+ ) -> operations.GetKeyResponse:
949
965
  r"""Get a single API key
950
966
 
951
967
  :param hash: The hash identifier of the API key to retrieve
@@ -981,6 +997,7 @@ class APIKeys(BaseSDK):
981
997
  accept_header_value="application/json",
982
998
  http_headers=http_headers,
983
999
  security=self.sdk_configuration.security,
1000
+ allow_empty_value=None,
984
1001
  timeout_ms=timeout_ms,
985
1002
  )
986
1003
 
@@ -1051,7 +1068,7 @@ class APIKeys(BaseSDK):
1051
1068
  server_url: Optional[str] = None,
1052
1069
  timeout_ms: Optional[int] = None,
1053
1070
  http_headers: Optional[Mapping[str, str]] = None,
1054
- ) -> operations.GetKeyData:
1071
+ ) -> operations.GetKeyResponse:
1055
1072
  r"""Get a single API key
1056
1073
 
1057
1074
  :param hash: The hash identifier of the API key to retrieve
@@ -1087,6 +1104,7 @@ class APIKeys(BaseSDK):
1087
1104
  accept_header_value="application/json",
1088
1105
  http_headers=http_headers,
1089
1106
  security=self.sdk_configuration.security,
1107
+ allow_empty_value=None,
1090
1108
  timeout_ms=timeout_ms,
1091
1109
  )
1092
1110
 
@@ -1156,7 +1174,7 @@ class APIKeys(BaseSDK):
1156
1174
  server_url: Optional[str] = None,
1157
1175
  timeout_ms: Optional[int] = None,
1158
1176
  http_headers: Optional[Mapping[str, str]] = None,
1159
- ) -> operations.GetCurrentKeyData:
1177
+ ) -> operations.GetCurrentKeyResponse:
1160
1178
  r"""Get current API key
1161
1179
 
1162
1180
  Get information on the API key associated with the current authentication session
@@ -1188,6 +1206,7 @@ class APIKeys(BaseSDK):
1188
1206
  accept_header_value="application/json",
1189
1207
  http_headers=http_headers,
1190
1208
  security=self.sdk_configuration.security,
1209
+ allow_empty_value=None,
1191
1210
  timeout_ms=timeout_ms,
1192
1211
  )
1193
1212
 
@@ -1247,7 +1266,7 @@ class APIKeys(BaseSDK):
1247
1266
  server_url: Optional[str] = None,
1248
1267
  timeout_ms: Optional[int] = None,
1249
1268
  http_headers: Optional[Mapping[str, str]] = None,
1250
- ) -> operations.GetCurrentKeyData:
1269
+ ) -> operations.GetCurrentKeyResponse:
1251
1270
  r"""Get current API key
1252
1271
 
1253
1272
  Get information on the API key associated with the current authentication session
@@ -1279,6 +1298,7 @@ class APIKeys(BaseSDK):
1279
1298
  accept_header_value="application/json",
1280
1299
  http_headers=http_headers,
1281
1300
  security=self.sdk_configuration.security,
1301
+ allow_empty_value=None,
1282
1302
  timeout_ms=timeout_ms,
1283
1303
  )
1284
1304
 
@@ -60,6 +60,7 @@ class BaseSDK:
60
60
  ] = None,
61
61
  url_override: Optional[str] = None,
62
62
  http_headers: Optional[Mapping[str, str]] = None,
63
+ allow_empty_value: Optional[List[str]] = None,
63
64
  ) -> httpx.Request:
64
65
  client = self.sdk_configuration.async_client
65
66
  return self._build_request_with_client(
@@ -80,6 +81,7 @@ class BaseSDK:
80
81
  get_serialized_body,
81
82
  url_override,
82
83
  http_headers,
84
+ allow_empty_value,
83
85
  )
84
86
 
85
87
  def _build_request(
@@ -102,6 +104,7 @@ class BaseSDK:
102
104
  ] = None,
103
105
  url_override: Optional[str] = None,
104
106
  http_headers: Optional[Mapping[str, str]] = None,
107
+ allow_empty_value: Optional[List[str]] = None,
105
108
  ) -> httpx.Request:
106
109
  client = self.sdk_configuration.client
107
110
  return self._build_request_with_client(
@@ -122,6 +125,7 @@ class BaseSDK:
122
125
  get_serialized_body,
123
126
  url_override,
124
127
  http_headers,
128
+ allow_empty_value,
125
129
  )
126
130
 
127
131
  def _build_request_with_client(
@@ -145,6 +149,7 @@ class BaseSDK:
145
149
  ] = None,
146
150
  url_override: Optional[str] = None,
147
151
  http_headers: Optional[Mapping[str, str]] = None,
152
+ allow_empty_value: Optional[List[str]] = None,
148
153
  ) -> httpx.Request:
149
154
  query_params = {}
150
155
 
@@ -160,6 +165,7 @@ class BaseSDK:
160
165
  query_params = utils.get_query_params(
161
166
  request if request_has_query_params else None,
162
167
  _globals if request_has_query_params else None,
168
+ allow_empty_value,
163
169
  )
164
170
  else:
165
171
  # Pick up the query parameter from the override so they can be