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.
- {openrouter-0.0.15 → openrouter-0.0.17}/PKG-INFO +3 -1
- openrouter-0.0.17/README.md +249 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/pyproject.toml +4 -2
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/_version.py +3 -3
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/analytics.py +5 -3
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/api_keys.py +35 -15
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/basesdk.py +6 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/chat.py +154 -14
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/completions.py +2 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/__init__.py +299 -76
- openrouter-0.0.17/src/openrouter/components/_schema0.py +93 -0
- openrouter-0.0.17/src/openrouter/components/_schema3.py +228 -0
- openrouter-0.0.17/src/openrouter/components/chatgenerationparams.py +664 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagecontentitem.py +2 -1
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagecontentitemaudio.py +6 -25
- openrouter-0.0.17/src/openrouter/components/chatmessagecontentitemcachecontrol.py +32 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagecontentitemtext.py +9 -2
- openrouter-0.0.17/src/openrouter/components/chatmessagecontentitemvideo.py +74 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatresponsechoice.py +6 -1
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatstreamingmessagechunk.py +12 -1
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/completionchoice.py +18 -5
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/completioncreateparams.py +10 -10
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/completionresponse.py +3 -0
- openrouter-0.0.17/src/openrouter/components/datacollection.py +19 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/message.py +10 -9
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesannotation.py +11 -4
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesreasoningeffort.py +2 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesnonstreamingresponse.py +13 -10
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoning.py +1 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesrequest.py +194 -143
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesstreamevent.py +110 -39
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/outputmessage.py +10 -4
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/parameter.py +1 -0
- openrouter-0.0.17/src/openrouter/components/pdfparserengine.py +16 -0
- openrouter-0.0.17/src/openrouter/components/pdfparseroptions.py +25 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/providername.py +9 -26
- openrouter-0.0.17/src/openrouter/components/providerpreferences.py +375 -0
- openrouter-0.0.17/src/openrouter/components/providersort.py +15 -0
- openrouter-0.0.17/src/openrouter/components/providersortconfig.py +71 -0
- openrouter-0.0.17/src/openrouter/components/providersortunion.py +23 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/publicendpoint.py +50 -45
- openrouter-0.0.17/src/openrouter/components/publicpricing.py +78 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseformattextconfig.py +9 -7
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesoutputitem.py +12 -10
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesoutputmessage.py +10 -5
- openrouter-0.0.17/src/openrouter/components/websearchengine.py +15 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/credits.py +6 -2
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/embeddings.py +37 -27
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/endpoints.py +9 -5
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/generations.py +4 -2
- openrouter-0.0.17/src/openrouter/models/__init__.py +3 -0
- openrouter-0.0.17/src/openrouter/models/internal/__init__.py +54 -0
- openrouter-0.0.17/src/openrouter/models/internal/globals.py +41 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/models_.py +13 -7
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/oauth.py +6 -2
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/__init__.py +46 -49
- openrouter-0.0.17/src/openrouter/operations/createembeddings.py +193 -0
- openrouter-0.0.17/src/openrouter/operations/getcredits.py +32 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/getparameters.py +5 -77
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/updatekeys.py +2 -2
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/parameters.py +6 -4
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/providers.py +5 -3
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/responses.py +74 -36
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/sdk.py +13 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/sdkconfiguration.py +2 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/forms.py +21 -10
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/queryparams.py +14 -2
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/retries.py +69 -5
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/unmarshal_json_response.py +15 -1
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter.egg-info/PKG-INFO +3 -1
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter.egg-info/SOURCES.txt +15 -0
- openrouter-0.0.15/src/openrouter/components/chatgenerationparams.py +0 -291
- openrouter-0.0.15/src/openrouter/components/chatmessagecontentitemvideo.py +0 -33
- openrouter-0.0.15/src/openrouter/components/publicpricing.py +0 -73
- openrouter-0.0.15/src/openrouter/operations/createembeddings.py +0 -389
- openrouter-0.0.15/src/openrouter/operations/getcredits.py +0 -13
- {openrouter-0.0.15 → openrouter-0.0.17}/LICENSE +0 -0
- /openrouter-0.0.15/README.md → /openrouter-0.0.17/README-PYPI.md +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/setup.cfg +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/__init__.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/_hooks/__init__.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/_hooks/registration.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/_hooks/sdkhooks.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/_hooks/types.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/beta.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/activityitem.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/assistantmessage.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/badgatewayresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/badrequestresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatcompletionfinishreason.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chaterror.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatgenerationtokenusage.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagecontentitemimage.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagetokenlogprob.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagetokenlogprobs.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatmessagetoolcall.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatresponse.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatstreamingchoice.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatstreamingmessagetoolcall.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatstreamingresponsechunk.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/chatstreamoptions.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/completionlogprobs.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/completionusage.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/createchargerequest.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/defaultparameters.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/edgenetworktimeoutresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/endpointstatus.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/filecitation.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/filepath.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/forbiddenresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/imagegenerationstatus.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/inputmodality.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/instructtype.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/internalserverresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/jsonschemaconfig.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/listendpointsresponse.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/model.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/modelarchitecture.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/modelgroup.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/modelscountresponse.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/modelslistresponse.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/namedtoolchoice.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/notfoundresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesincludable.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesincompletedetails.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesinput_union.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesprompt.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesreasoningconfig.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesrefusalcontent.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesresponsestatus.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsesservicetier.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsestoolchoice_union.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openairesponsestruncation.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseseasyinputmessage.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseserrorevent.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesfunctioncalloutput.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesfunctiontoolcall.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesimagegencallcompleted.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesimagegencallgenerating.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesimagegencallinprogress.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesimagegencallpartialimage.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesinput.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesinputmessageitem.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseslogprobs.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoningconfig.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoningdeltaevent.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoningdoneevent.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoningsummarypartaddedevent.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoningsummarytextdeltaevent.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesreasoningsummarytextdoneevent.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesresponsetext.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsestoplogprobs.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponsesusage.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseswebsearch20250826tool.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseswebsearchpreview20250311tool.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseswebsearchpreviewtool.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/openresponseswebsearchtool.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/outputitemimagegenerationcall.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/outputmodality.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/payloadtoolargeresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/paymentrequiredresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/perrequestlimits.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/provideroverloadedresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/quantization.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/reasoningsummarytext.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/reasoningsummaryverbosity.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/reasoningtextcontent.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/requesttimeoutresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseformatjsonschema.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseformattextgrammar.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseinputaudio.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseinputfile.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseinputimage.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseinputtext.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseoutputtext.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseserrorfield.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesformatjsonobject.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesformattext.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesformattextjsonschemaconfig.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesimagegenerationcall.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesoutputitemfilesearchcall.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesoutputitemfunctioncall.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsesoutputitemreasoning.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsessearchcontextsize.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseswebsearchcalloutput.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responseswebsearchuserlocation.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/responsetextconfig.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/security.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/serviceunavailableresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/systemmessage.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/toolcallstatus.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/tooldefinitionjson.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/toolresponsemessage.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/toomanyrequestsresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/topproviderinfo.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/unauthorizedresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/unprocessableentityresponseerrordata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/urlcitation.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/usermessage.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/websearchpreviewtooluserlocation.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/components/websearchstatus.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/__init__.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/badgatewayresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/badrequestresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/chaterror.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/edgenetworktimeoutresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/forbiddenresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/internalserverresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/no_response_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/notfoundresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/openrouterdefaulterror.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/openroutererror.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/payloadtoolargeresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/paymentrequiredresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/provideroverloadedresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/requesttimeoutresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/responsevalidationerror.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/serviceunavailableresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/toomanyrequestsresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/unauthorizedresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/errors/unprocessableentityresponse_error.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/httpclient.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/createauthkeyscode.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/createcoinbasecharge.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/createkeys.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/createresponses.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/deletekeys.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/exchangeauthcodeforapikey.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/getcurrentkey.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/getgeneration.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/getkey.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/getmodels.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/getuseractivity.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/list.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/listendpoints.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/listendpointszdr.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/listmodelsuser.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/listproviders.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/operations/sendchatcompletionrequest.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/py.typed +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/types/__init__.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/types/basemodel.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/__init__.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/annotations.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/datetimes.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/enums.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/eventstreaming.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/headers.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/logger.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/metadata.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/oauth_create_authorization_url.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/oauth_create_sha256_code_challenge.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/requestbodies.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/security.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/serializers.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/url.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter/utils/values.py +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter.egg-info/dependency_links.txt +0 -0
- {openrouter-0.0.15 → openrouter-0.0.17}/src/openrouter.egg-info/requires.txt +0 -0
- {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.
|
|
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.
|
|
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.
|
|
6
|
+
__version__: str = "0.0.17"
|
|
7
7
|
__openapi_doc_version__: str = "1.0.0"
|
|
8
|
-
__gen_version__: str = "2.
|
|
9
|
-
__user_agent__: str = "speakeasy-sdk/python 0.0.
|
|
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,
|
|
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
|
-
) ->
|
|
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
|
-
) ->
|
|
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,
|
|
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
|
-
) ->
|
|
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
|
-
) ->
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|