litellm_client 1.0.0

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 (913) hide show
  1. checksums.yaml +7 -0
  2. data/Gemfile +9 -0
  3. data/README.md +741 -0
  4. data/Rakefile +10 -0
  5. data/docs/AddTeamCallback.md +22 -0
  6. data/docs/Annotations.md +15 -0
  7. data/docs/AnthropicPassThroughApi.md +367 -0
  8. data/docs/ApiBase.md +15 -0
  9. data/docs/ApiKey.md +15 -0
  10. data/docs/ApiVersion.md +15 -0
  11. data/docs/ApplyGuardrailRequest.md +24 -0
  12. data/docs/ApplyGuardrailResponse.md +18 -0
  13. data/docs/AssemblyAIEUPassThroughApi.md +357 -0
  14. data/docs/AssemblyAIPassThroughApi.md +357 -0
  15. data/docs/AssistantsApi.md +1141 -0
  16. data/docs/AudioApi.md +289 -0
  17. data/docs/AuditLogResponse.md +34 -0
  18. data/docs/AuditLoggingApi.md +173 -0
  19. data/docs/AwsAccessKeyId.md +15 -0
  20. data/docs/AwsRegionName.md +15 -0
  21. data/docs/AwsSecretAccessKey.md +15 -0
  22. data/docs/AzurePassThroughApi.md +367 -0
  23. data/docs/BaseModel.md +15 -0
  24. data/docs/BatchApi.md +913 -0
  25. data/docs/BatchSize.md +15 -0
  26. data/docs/BedrockPassThroughApi.md +367 -0
  27. data/docs/BlockKeyRequest.md +18 -0
  28. data/docs/BlockTeamRequest.md +18 -0
  29. data/docs/BlockUsers.md +18 -0
  30. data/docs/BodyTestModelConnectionHealthTestConnectionPost.md +20 -0
  31. data/docs/BreakdownMetrics.md +24 -0
  32. data/docs/BudgetConfig.md +24 -0
  33. data/docs/BudgetDeleteRequest.md +18 -0
  34. data/docs/BudgetDuration.md +15 -0
  35. data/docs/BudgetManagementApi.md +436 -0
  36. data/docs/BudgetNewRequest.md +34 -0
  37. data/docs/BudgetRequest.md +18 -0
  38. data/docs/BudgetSpendTrackingApi.md +694 -0
  39. data/docs/Bytes.md +15 -0
  40. data/docs/CacheControl.md +18 -0
  41. data/docs/CachePingResponse.md +28 -0
  42. data/docs/CachingApi.md +421 -0
  43. data/docs/CallTypes.md +15 -0
  44. data/docs/ChatCompletionAnnotation.md +20 -0
  45. data/docs/ChatCompletionAnnotationURLCitation.md +24 -0
  46. data/docs/ChatCompletionAudioResponse.md +24 -0
  47. data/docs/ChatCompletionCachedContent.md +18 -0
  48. data/docs/ChatCompletionRedactedThinkingBlock.md +22 -0
  49. data/docs/ChatCompletionThinkingBlock.md +24 -0
  50. data/docs/ChatCompletionTokenLogprob.md +24 -0
  51. data/docs/ChatCompletionsApi.md +299 -0
  52. data/docs/ChoiceLogprobs.md +18 -0
  53. data/docs/Choices.md +26 -0
  54. data/docs/Choices1Inner.md +26 -0
  55. data/docs/CoherePassThroughApi.md +367 -0
  56. data/docs/CompletionsApi.md +299 -0
  57. data/docs/ConfigurableClientsideAuthParams.md +15 -0
  58. data/docs/ConfigurableClientsideAuthParamsAnyOfInner.md +18 -0
  59. data/docs/ConfigurableClientsideParamsCustomAuth.md +18 -0
  60. data/docs/Content.md +15 -0
  61. data/docs/Content1.md +15 -0
  62. data/docs/CreateCredentialItem.md +24 -0
  63. data/docs/CreateGuardrailRequest.md +18 -0
  64. data/docs/CreatedAt.md +15 -0
  65. data/docs/CreatedBy.md +15 -0
  66. data/docs/CredentialItem.md +22 -0
  67. data/docs/CredentialManagementApi.md +444 -0
  68. data/docs/CustomLlmProvider.md +15 -0
  69. data/docs/CustomLlmProvider1.md +15 -0
  70. data/docs/CustomerManagementApi.md +508 -0
  71. data/docs/DailySpendData.md +22 -0
  72. data/docs/DailySpendMetadata.md +40 -0
  73. data/docs/DefaultApi.md +811 -0
  74. data/docs/DefaultInternalUserParams.md +24 -0
  75. data/docs/DefaultTeamSSOParams.md +26 -0
  76. data/docs/DefaultTeamSettingsResponse.md +20 -0
  77. data/docs/DeleteCustomerRequest.md +18 -0
  78. data/docs/DeleteOrganizationRequest.md +18 -0
  79. data/docs/DeleteTeamRequest.md +18 -0
  80. data/docs/DeleteUserRequest.md +18 -0
  81. data/docs/Deployment.md +22 -0
  82. data/docs/Description.md +15 -0
  83. data/docs/Destructivehint.md +15 -0
  84. data/docs/EmailEvent.md +15 -0
  85. data/docs/EmailEventSettings.md +20 -0
  86. data/docs/EmailEventSettingsResponse.md +18 -0
  87. data/docs/EmailEventSettingsUpdateRequest.md +18 -0
  88. data/docs/EmailManagementApi.md +217 -0
  89. data/docs/EmbeddingsApi.md +299 -0
  90. data/docs/Endtime.md +15 -0
  91. data/docs/ErrorResponse.md +18 -0
  92. data/docs/Expires.md +15 -0
  93. data/docs/FilesApi.md +1165 -0
  94. data/docs/FineTuningApi.md +607 -0
  95. data/docs/FunctionCall.md +20 -0
  96. data/docs/GenerateKeyRequest.md +74 -0
  97. data/docs/GenerateKeyResponse.md +88 -0
  98. data/docs/GetTeamMemberPermissionsResponse.md +22 -0
  99. data/docs/GoogleAIStudioPassThroughApi.md +332 -0
  100. data/docs/Guardrail.md +28 -0
  101. data/docs/GuardrailInfoLiteLLMParamsResponse.md +24 -0
  102. data/docs/GuardrailInfoResponse.md +30 -0
  103. data/docs/GuardrailsApi.md +791 -0
  104. data/docs/HTTPValidationError.md +18 -0
  105. data/docs/HealthApi.md +820 -0
  106. data/docs/Hyperparameters.md +22 -0
  107. data/docs/IPAddress.md +18 -0
  108. data/docs/Id.md +15 -0
  109. data/docs/Idempotenthint.md +15 -0
  110. data/docs/ImagesApi.md +455 -0
  111. data/docs/InputCostPerPixel.md +15 -0
  112. data/docs/InputCostPerSecond.md +15 -0
  113. data/docs/InputCostPerToken.md +15 -0
  114. data/docs/Integrations.md +15 -0
  115. data/docs/InternalUserManagementApi.md +475 -0
  116. data/docs/InternalUserSettingsResponse.md +20 -0
  117. data/docs/KeyHealthResponse.md +20 -0
  118. data/docs/KeyListResponseObject.md +24 -0
  119. data/docs/KeyListResponseObjectKeysInner.md +134 -0
  120. data/docs/KeyManagementApi.md +780 -0
  121. data/docs/KeyMetadata.md +20 -0
  122. data/docs/KeyMetricWithMetadata.md +20 -0
  123. data/docs/KeyRequest.md +20 -0
  124. data/docs/LakeraCategoryThresholds.md +20 -0
  125. data/docs/LangfusePassThroughApi.md +332 -0
  126. data/docs/LearningRateMultiplier.md +15 -0
  127. data/docs/ListGuardrailsResponse.md +18 -0
  128. data/docs/ListMCPToolsRestAPIResponseObject.md +26 -0
  129. data/docs/ListMCPToolsRestAPIResponseObjectAnnotations.md +26 -0
  130. data/docs/ListMCPToolsRestAPIResponseObjectMcpInfo.md +22 -0
  131. data/docs/LiteLLMBudgetTable.md +32 -0
  132. data/docs/LiteLLMEndUserTable.md +30 -0
  133. data/docs/LiteLLMFineTuningJobCreate.md +32 -0
  134. data/docs/LiteLLMFineTuningJobCreateHyperparameters.md +22 -0
  135. data/docs/LiteLLMMCPServerTable.md +38 -0
  136. data/docs/LiteLLMManagedVectorStore.md +32 -0
  137. data/docs/LiteLLMManagedVectorStoreListResponse.md +26 -0
  138. data/docs/LiteLLMModelTable.md +26 -0
  139. data/docs/LiteLLMObjectPermissionBase.md +20 -0
  140. data/docs/LiteLLMObjectPermissionTable.md +22 -0
  141. data/docs/LiteLLMOrganizationMembershipTable.md +34 -0
  142. data/docs/LiteLLMOrganizationTableUpdate.md +32 -0
  143. data/docs/LiteLLMOrganizationTableWithMembers.md +48 -0
  144. data/docs/LiteLLMParams.md +88 -0
  145. data/docs/LiteLLMSpendLogs.md +54 -0
  146. data/docs/LiteLLMTeamMembership.md +24 -0
  147. data/docs/LiteLLMTeamTable.md +62 -0
  148. data/docs/LiteLLMUserTable.md +56 -0
  149. data/docs/LiteLLMUserTableWithKeyCount.md +58 -0
  150. data/docs/LiteLLMVerificationToken.md +80 -0
  151. data/docs/LitellmCredentialName.md +15 -0
  152. data/docs/LitellmParams.md +92 -0
  153. data/docs/LitellmTraceId.md +15 -0
  154. data/docs/LitellmUserRoles.md +15 -0
  155. data/docs/LlmUtilsApi.md +219 -0
  156. data/docs/LoggingCallbackStatus.md +22 -0
  157. data/docs/Logprobs.md +18 -0
  158. data/docs/MCPInfo.md +22 -0
  159. data/docs/MaxBudget.md +15 -0
  160. data/docs/MaxFileSizeMb.md +15 -0
  161. data/docs/MaxRetries.md +15 -0
  162. data/docs/McpApi.md +519 -0
  163. data/docs/Member.md +22 -0
  164. data/docs/Member1.md +22 -0
  165. data/docs/Member2.md +22 -0
  166. data/docs/MergeReasoningContentInChoices.md +15 -0
  167. data/docs/Message.md +34 -0
  168. data/docs/MessageAudio.md +24 -0
  169. data/docs/MessageFunctionCall.md +20 -0
  170. data/docs/Messages.md +15 -0
  171. data/docs/MetricWithMetadata.md +20 -0
  172. data/docs/MistralPassThroughApi.md +367 -0
  173. data/docs/MockResponse.md +28 -0
  174. data/docs/Mode.md +15 -0
  175. data/docs/Mode1.md +15 -0
  176. data/docs/Model.md +15 -0
  177. data/docs/ModelAliases.md +15 -0
  178. data/docs/ModelInfo.md +15 -0
  179. data/docs/ModelInfoDelete.md +18 -0
  180. data/docs/ModelManagementApi.md +679 -0
  181. data/docs/ModelResponse.md +28 -0
  182. data/docs/ModerationsApi.md +145 -0
  183. data/docs/NEpochs.md +15 -0
  184. data/docs/Name.md +15 -0
  185. data/docs/NewCustomerRequest.md +46 -0
  186. data/docs/NewMCPServerRequest.md +30 -0
  187. data/docs/NewOrganizationRequest.md +42 -0
  188. data/docs/NewOrganizationResponse.md +44 -0
  189. data/docs/NewTeamRequest.md +52 -0
  190. data/docs/NewUserRequest.md +76 -0
  191. data/docs/NewUserResponse.md +96 -0
  192. data/docs/OpenAIPassThroughApi.md +367 -0
  193. data/docs/Openworldhint.md +15 -0
  194. data/docs/OrgMember.md +22 -0
  195. data/docs/Organization.md +15 -0
  196. data/docs/OrganizationAddMemberResponse.md +22 -0
  197. data/docs/OrganizationManagementApi.md +652 -0
  198. data/docs/OrganizationMemberAddRequest.md +22 -0
  199. data/docs/OrganizationMemberDeleteRequest.md +22 -0
  200. data/docs/OrganizationMemberUpdateRequest.md +26 -0
  201. data/docs/OrganizationRequest.md +18 -0
  202. data/docs/OutputCostPerPixel.md +15 -0
  203. data/docs/OutputCostPerSecond.md +15 -0
  204. data/docs/OutputCostPerToken.md +15 -0
  205. data/docs/PaginatedAuditLogResponse.md +26 -0
  206. data/docs/PassThroughApi.md +4562 -0
  207. data/docs/PassThroughEndpointResponse.md +18 -0
  208. data/docs/PassThroughGenericEndpoint.md +22 -0
  209. data/docs/PatchGuardrailLitellmParams.md +20 -0
  210. data/docs/PatchGuardrailRequest.md +22 -0
  211. data/docs/PiiAction.md +15 -0
  212. data/docs/PiiEntityType.md +15 -0
  213. data/docs/ProviderBudgetResponse.md +18 -0
  214. data/docs/ProviderBudgetResponseObject.md +24 -0
  215. data/docs/ProviderSpecificFields.md +15 -0
  216. data/docs/RawRequestTypedDict.md +24 -0
  217. data/docs/Readonlyhint.md +15 -0
  218. data/docs/ReasoningContent.md +15 -0
  219. data/docs/RegenerateKeyRequest.md +76 -0
  220. data/docs/RegionName.md +15 -0
  221. data/docs/RerankApi.md +208 -0
  222. data/docs/Resources.md +15 -0
  223. data/docs/Response.md +15 -0
  224. data/docs/ResponsesApi.md +577 -0
  225. data/docs/Rpm.md +15 -0
  226. data/docs/SCIMGroup.md +28 -0
  227. data/docs/SCIMListResponse.md +26 -0
  228. data/docs/SCIMMember.md +20 -0
  229. data/docs/SCIMPatchOp.md +20 -0
  230. data/docs/SCIMPatchOperation.md +22 -0
  231. data/docs/SCIMUser.md +36 -0
  232. data/docs/SCIMUserEmail.md +22 -0
  233. data/docs/SCIMUserGroup.md +22 -0
  234. data/docs/SCIMUserName.md +28 -0
  235. data/docs/SCIMV2Api.md +889 -0
  236. data/docs/SSOConfig.md +40 -0
  237. data/docs/SSOSettingsApi.md +430 -0
  238. data/docs/SSOSettingsResponse.md +20 -0
  239. data/docs/Seed.md +15 -0
  240. data/docs/Service.md +15 -0
  241. data/docs/SpendAnalyticsPaginatedResponse.md +20 -0
  242. data/docs/SpendCalculateRequest.md +22 -0
  243. data/docs/SpendMetrics.md +34 -0
  244. data/docs/Starttime.md +15 -0
  245. data/docs/StreamTimeout.md +15 -0
  246. data/docs/Suffix.md +15 -0
  247. data/docs/SystemFingerprint.md +15 -0
  248. data/docs/TagConfig.md +30 -0
  249. data/docs/TagDeleteRequest.md +18 -0
  250. data/docs/TagInfoRequest.md +18 -0
  251. data/docs/TagManagementApi.md +450 -0
  252. data/docs/TagNewRequest.md +24 -0
  253. data/docs/TagUpdateRequest.md +24 -0
  254. data/docs/TeamAddMemberResponse.md +66 -0
  255. data/docs/TeamId.md +15 -0
  256. data/docs/TeamListResponse.md +26 -0
  257. data/docs/TeamManagementApi.md +1433 -0
  258. data/docs/TeamMemberAddRequest.md +22 -0
  259. data/docs/TeamMemberDeleteRequest.md +22 -0
  260. data/docs/TeamMemberUpdateRequest.md +26 -0
  261. data/docs/TeamMemberUpdateResponse.md +24 -0
  262. data/docs/TeamModelAddRequest.md +20 -0
  263. data/docs/TeamModelDeleteRequest.md +20 -0
  264. data/docs/TeamPublicModelName.md +15 -0
  265. data/docs/ThinkingBlocks.md +15 -0
  266. data/docs/ThinkingBlocksAnyOfInner.md +26 -0
  267. data/docs/Tier.md +15 -0
  268. data/docs/Timeout.md +15 -0
  269. data/docs/Title.md +15 -0
  270. data/docs/TokenCountRequest.md +22 -0
  271. data/docs/TokenCountResponse.md +24 -0
  272. data/docs/ToolAnnotations.md +26 -0
  273. data/docs/ToolCalls.md +15 -0
  274. data/docs/TopLogprob.md +22 -0
  275. data/docs/Tpm.md +15 -0
  276. data/docs/TransformRequestBody.md +20 -0
  277. data/docs/UiDiscoveryEndpoints.md +20 -0
  278. data/docs/UpdateCustomerRequest.md +30 -0
  279. data/docs/UpdateDeployment.md +22 -0
  280. data/docs/UpdateGuardrailRequest.md +18 -0
  281. data/docs/UpdateKeyRequest.md +74 -0
  282. data/docs/UpdateLiteLLMParams.md +88 -0
  283. data/docs/UpdateMCPServerRequest.md +30 -0
  284. data/docs/UpdateTeamMemberPermissionsRequest.md +20 -0
  285. data/docs/UpdateTeamRequest.md +44 -0
  286. data/docs/UpdateUserRequest.md +66 -0
  287. data/docs/UpdatedAt.md +15 -0
  288. data/docs/UpdatedBy.md +15 -0
  289. data/docs/UseInPassThrough.md +15 -0
  290. data/docs/UseLitellmProxy.md +15 -0
  291. data/docs/UserAPIKeyAuth.md +134 -0
  292. data/docs/UserListResponse.md +26 -0
  293. data/docs/VLLMPassThroughApi.md +367 -0
  294. data/docs/ValidationError.md +22 -0
  295. data/docs/ValidationErrorLocInner.md +15 -0
  296. data/docs/ValidationFile.md +15 -0
  297. data/docs/VectorStoreDeleteRequest.md +18 -0
  298. data/docs/VectorStoreManagementApi.md +227 -0
  299. data/docs/VectorStoreMetadata.md +15 -0
  300. data/docs/VertexAIPassThroughApi.md +692 -0
  301. data/docs/VertexCredentials.md +15 -0
  302. data/docs/VertexLocation.md +15 -0
  303. data/docs/VertexProject.md +15 -0
  304. data/docs/WatsonxRegionName.md +15 -0
  305. data/git_push.sh +57 -0
  306. data/lib/litellm_client/api/anthropic_pass_through_api.rb +337 -0
  307. data/lib/litellm_client/api/assembly_ai_pass_through_api.rb +327 -0
  308. data/lib/litellm_client/api/assembly_aieu_pass_through_api.rb +327 -0
  309. data/lib/litellm_client/api/assistants_api.rb +994 -0
  310. data/lib/litellm_client/api/audio_api.rb +274 -0
  311. data/lib/litellm_client/api/audit_logging_api.rb +187 -0
  312. data/lib/litellm_client/api/azure_pass_through_api.rb +337 -0
  313. data/lib/litellm_client/api/batch_api.rb +792 -0
  314. data/lib/litellm_client/api/bedrock_pass_through_api.rb +337 -0
  315. data/lib/litellm_client/api/budget_management_api.rb +415 -0
  316. data/lib/litellm_client/api/budget_spend_tracking_api.rb +649 -0
  317. data/lib/litellm_client/api/caching_api.rb +364 -0
  318. data/lib/litellm_client/api/chat_completions_api.rb +260 -0
  319. data/lib/litellm_client/api/cohere_pass_through_api.rb +337 -0
  320. data/lib/litellm_client/api/completions_api.rb +260 -0
  321. data/lib/litellm_client/api/credential_management_api.rb +415 -0
  322. data/lib/litellm_client/api/customer_management_api.rb +483 -0
  323. data/lib/litellm_client/api/default_api.rb +728 -0
  324. data/lib/litellm_client/api/email_management_api.rb +204 -0
  325. data/lib/litellm_client/api/embeddings_api.rb +260 -0
  326. data/lib/litellm_client/api/files_api.rb +1064 -0
  327. data/lib/litellm_client/api/fine_tuning_api.rb +570 -0
  328. data/lib/litellm_client/api/google_ai_studio_pass_through_api.rb +337 -0
  329. data/lib/litellm_client/api/guardrails_api.rb +723 -0
  330. data/lib/litellm_client/api/health_api.rb +723 -0
  331. data/lib/litellm_client/api/images_api.rb +419 -0
  332. data/lib/litellm_client/api/internal_user_management_api.rb +472 -0
  333. data/lib/litellm_client/api/key_management_api.rb +735 -0
  334. data/lib/litellm_client/api/langfuse_pass_through_api.rb +337 -0
  335. data/lib/litellm_client/api/llm_utils_api.rb +218 -0
  336. data/lib/litellm_client/api/mcp_api.rb +467 -0
  337. data/lib/litellm_client/api/mistral_pass_through_api.rb +337 -0
  338. data/lib/litellm_client/api/model_management_api.rb +618 -0
  339. data/lib/litellm_client/api/moderations_api.rb +136 -0
  340. data/lib/litellm_client/api/open_ai_pass_through_api.rb +337 -0
  341. data/lib/litellm_client/api/organization_management_api.rb +619 -0
  342. data/lib/litellm_client/api/pass_through_api.rb +4097 -0
  343. data/lib/litellm_client/api/rerank_api.rb +187 -0
  344. data/lib/litellm_client/api/responses_api.rb +514 -0
  345. data/lib/litellm_client/api/scimv2_api.rb +862 -0
  346. data/lib/litellm_client/api/sso_settings_api.rb +397 -0
  347. data/lib/litellm_client/api/tag_management_api.rb +429 -0
  348. data/lib/litellm_client/api/team_management_api.rb +1339 -0
  349. data/lib/litellm_client/api/vector_store_management_api.rb +221 -0
  350. data/lib/litellm_client/api/vertex_ai_pass_through_api.rb +652 -0
  351. data/lib/litellm_client/api/vllm_pass_through_api.rb +337 -0
  352. data/lib/litellm_client/api_client.rb +393 -0
  353. data/lib/litellm_client/api_error.rb +58 -0
  354. data/lib/litellm_client/configuration.rb +308 -0
  355. data/lib/litellm_client/models/add_team_callback.rb +309 -0
  356. data/lib/litellm_client/models/annotations.rb +104 -0
  357. data/lib/litellm_client/models/api_base.rb +104 -0
  358. data/lib/litellm_client/models/api_key.rb +104 -0
  359. data/lib/litellm_client/models/api_version.rb +104 -0
  360. data/lib/litellm_client/models/apply_guardrail_request.rb +285 -0
  361. data/lib/litellm_client/models/apply_guardrail_response.rb +237 -0
  362. data/lib/litellm_client/models/audit_log_response.rb +418 -0
  363. data/lib/litellm_client/models/aws_access_key_id.rb +104 -0
  364. data/lib/litellm_client/models/aws_region_name.rb +104 -0
  365. data/lib/litellm_client/models/aws_secret_access_key.rb +104 -0
  366. data/lib/litellm_client/models/base_model.rb +104 -0
  367. data/lib/litellm_client/models/batch_size.rb +104 -0
  368. data/lib/litellm_client/models/block_key_request.rb +237 -0
  369. data/lib/litellm_client/models/block_team_request.rb +237 -0
  370. data/lib/litellm_client/models/block_users.rb +239 -0
  371. data/lib/litellm_client/models/body_test_model_connection_health_test_connection_post.rb +267 -0
  372. data/lib/litellm_client/models/breakdown_metrics.rb +256 -0
  373. data/lib/litellm_client/models/budget_config.rb +251 -0
  374. data/lib/litellm_client/models/budget_delete_request.rb +237 -0
  375. data/lib/litellm_client/models/budget_duration.rb +104 -0
  376. data/lib/litellm_client/models/budget_new_request.rb +303 -0
  377. data/lib/litellm_client/models/budget_request.rb +239 -0
  378. data/lib/litellm_client/models/bytes.rb +104 -0
  379. data/lib/litellm_client/models/cache_control.rb +104 -0
  380. data/lib/litellm_client/models/cache_ping_response.rb +305 -0
  381. data/lib/litellm_client/models/call_types.rb +102 -0
  382. data/lib/litellm_client/models/chat_completion_annotation.rb +263 -0
  383. data/lib/litellm_client/models/chat_completion_annotation_url_citation.rb +247 -0
  384. data/lib/litellm_client/models/chat_completion_audio_response.rb +315 -0
  385. data/lib/litellm_client/models/chat_completion_cached_content.rb +261 -0
  386. data/lib/litellm_client/models/chat_completion_redacted_thinking_block.rb +280 -0
  387. data/lib/litellm_client/models/chat_completion_thinking_block.rb +289 -0
  388. data/lib/litellm_client/models/chat_completion_token_logprob.rb +300 -0
  389. data/lib/litellm_client/models/choice_logprobs.rb +220 -0
  390. data/lib/litellm_client/models/choices.rb +307 -0
  391. data/lib/litellm_client/models/choices1_inner.rb +104 -0
  392. data/lib/litellm_client/models/configurable_clientside_auth_params.rb +104 -0
  393. data/lib/litellm_client/models/configurable_clientside_auth_params_any_of_inner.rb +104 -0
  394. data/lib/litellm_client/models/configurable_clientside_params_custom_auth.rb +237 -0
  395. data/lib/litellm_client/models/content.rb +104 -0
  396. data/lib/litellm_client/models/content1.rb +104 -0
  397. data/lib/litellm_client/models/create_credential_item.rb +287 -0
  398. data/lib/litellm_client/models/create_guardrail_request.rb +237 -0
  399. data/lib/litellm_client/models/created_at.rb +104 -0
  400. data/lib/litellm_client/models/created_by.rb +104 -0
  401. data/lib/litellm_client/models/credential_item.rb +293 -0
  402. data/lib/litellm_client/models/custom_llm_provider.rb +104 -0
  403. data/lib/litellm_client/models/custom_llm_provider1.rb +104 -0
  404. data/lib/litellm_client/models/daily_spend_data.rb +272 -0
  405. data/lib/litellm_client/models/daily_spend_metadata.rb +343 -0
  406. data/lib/litellm_client/models/default_internal_user_params.rb +288 -0
  407. data/lib/litellm_client/models/default_team_settings_response.rb +268 -0
  408. data/lib/litellm_client/models/default_team_sso_params.rb +264 -0
  409. data/lib/litellm_client/models/delete_customer_request.rb +240 -0
  410. data/lib/litellm_client/models/delete_organization_request.rb +239 -0
  411. data/lib/litellm_client/models/delete_team_request.rb +239 -0
  412. data/lib/litellm_client/models/delete_user_request.rb +239 -0
  413. data/lib/litellm_client/models/deployment.rb +289 -0
  414. data/lib/litellm_client/models/description.rb +104 -0
  415. data/lib/litellm_client/models/destructivehint.rb +104 -0
  416. data/lib/litellm_client/models/email_event.rb +40 -0
  417. data/lib/litellm_client/models/email_event_settings.rb +285 -0
  418. data/lib/litellm_client/models/email_event_settings_response.rb +239 -0
  419. data/lib/litellm_client/models/email_event_settings_update_request.rb +239 -0
  420. data/lib/litellm_client/models/endtime.rb +104 -0
  421. data/lib/litellm_client/models/error_response.rb +239 -0
  422. data/lib/litellm_client/models/expires.rb +104 -0
  423. data/lib/litellm_client/models/function_call.rb +246 -0
  424. data/lib/litellm_client/models/generate_key_request.rb +527 -0
  425. data/lib/litellm_client/models/generate_key_response.rb +613 -0
  426. data/lib/litellm_client/models/get_team_member_permissions_response.rb +278 -0
  427. data/lib/litellm_client/models/guardrail.rb +271 -0
  428. data/lib/litellm_client/models/guardrail_info_lite_llm_params_response.rb +286 -0
  429. data/lib/litellm_client/models/guardrail_info_response.rb +334 -0
  430. data/lib/litellm_client/models/http_validation_error.rb +222 -0
  431. data/lib/litellm_client/models/hyperparameters.rb +241 -0
  432. data/lib/litellm_client/models/id.rb +104 -0
  433. data/lib/litellm_client/models/idempotenthint.rb +104 -0
  434. data/lib/litellm_client/models/input_cost_per_pixel.rb +104 -0
  435. data/lib/litellm_client/models/input_cost_per_second.rb +104 -0
  436. data/lib/litellm_client/models/input_cost_per_token.rb +104 -0
  437. data/lib/litellm_client/models/integrations.rb +104 -0
  438. data/lib/litellm_client/models/internal_user_settings_response.rb +268 -0
  439. data/lib/litellm_client/models/ip_address.rb +237 -0
  440. data/lib/litellm_client/models/key_health_response.rb +264 -0
  441. data/lib/litellm_client/models/key_list_response_object.rb +252 -0
  442. data/lib/litellm_client/models/key_list_response_object_keys_inner.rb +104 -0
  443. data/lib/litellm_client/models/key_metadata.rb +232 -0
  444. data/lib/litellm_client/models/key_metric_with_metadata.rb +247 -0
  445. data/lib/litellm_client/models/key_request.rb +235 -0
  446. data/lib/litellm_client/models/lakera_category_thresholds.rb +229 -0
  447. data/lib/litellm_client/models/learning_rate_multiplier.rb +104 -0
  448. data/lib/litellm_client/models/list_guardrails_response.rb +239 -0
  449. data/lib/litellm_client/models/list_mcp_tools_rest_api_response_object.rb +293 -0
  450. data/lib/litellm_client/models/list_mcp_tools_rest_api_response_object_annotations.rb +104 -0
  451. data/lib/litellm_client/models/list_mcp_tools_rest_api_response_object_mcp_info.rb +104 -0
  452. data/lib/litellm_client/models/lite_llm_budget_table.rb +294 -0
  453. data/lib/litellm_client/models/lite_llm_end_user_table.rb +348 -0
  454. data/lib/litellm_client/models/lite_llm_fine_tuning_job_create.rb +317 -0
  455. data/lib/litellm_client/models/lite_llm_fine_tuning_job_create_hyperparameters.rb +104 -0
  456. data/lib/litellm_client/models/lite_llm_managed_vector_store.rb +290 -0
  457. data/lib/litellm_client/models/lite_llm_managed_vector_store_list_response.rb +296 -0
  458. data/lib/litellm_client/models/lite_llm_model_table.rb +293 -0
  459. data/lib/litellm_client/models/lite_llm_object_permission_base.rb +235 -0
  460. data/lib/litellm_client/models/lite_llm_object_permission_table.rb +262 -0
  461. data/lib/litellm_client/models/lite_llm_organization_membership_table.rb +367 -0
  462. data/lib/litellm_client/models/lite_llm_organization_table_update.rb +296 -0
  463. data/lib/litellm_client/models/lite_llm_organization_table_with_members.rb +477 -0
  464. data/lib/litellm_client/models/lite_llm_params.rb +553 -0
  465. data/lib/litellm_client/models/lite_llm_spend_logs.rb +457 -0
  466. data/lib/litellm_client/models/lite_llm_team_membership.rb +285 -0
  467. data/lib/litellm_client/models/lite_llm_team_table.rb +466 -0
  468. data/lib/litellm_client/models/lite_llm_user_table.rb +438 -0
  469. data/lib/litellm_client/models/lite_llm_user_table_with_key_count.rb +449 -0
  470. data/lib/litellm_client/models/lite_llm_verification_token.rb +546 -0
  471. data/lib/litellm_client/models/lite_llmmcp_server_table.rb +424 -0
  472. data/lib/litellm_client/models/litellm_credential_name.rb +104 -0
  473. data/lib/litellm_client/models/litellm_params.rb +632 -0
  474. data/lib/litellm_client/models/litellm_trace_id.rb +104 -0
  475. data/lib/litellm_client/models/litellm_user_roles.rb +45 -0
  476. data/lib/litellm_client/models/logging_callback_status.rb +275 -0
  477. data/lib/litellm_client/models/logprobs.rb +105 -0
  478. data/lib/litellm_client/models/max_budget.rb +104 -0
  479. data/lib/litellm_client/models/max_file_size_mb.rb +104 -0
  480. data/lib/litellm_client/models/max_retries.rb +104 -0
  481. data/lib/litellm_client/models/mcp_info.rb +240 -0
  482. data/lib/litellm_client/models/member.rb +281 -0
  483. data/lib/litellm_client/models/member1.rb +104 -0
  484. data/lib/litellm_client/models/member2.rb +104 -0
  485. data/lib/litellm_client/models/merge_reasoning_content_in_choices.rb +104 -0
  486. data/lib/litellm_client/models/message.rb +384 -0
  487. data/lib/litellm_client/models/message_audio.rb +104 -0
  488. data/lib/litellm_client/models/message_function_call.rb +104 -0
  489. data/lib/litellm_client/models/messages.rb +105 -0
  490. data/lib/litellm_client/models/metric_with_metadata.rb +248 -0
  491. data/lib/litellm_client/models/mock_response.rb +106 -0
  492. data/lib/litellm_client/models/mode.rb +104 -0
  493. data/lib/litellm_client/models/mode1.rb +105 -0
  494. data/lib/litellm_client/models/model.rb +104 -0
  495. data/lib/litellm_client/models/model_aliases.rb +104 -0
  496. data/lib/litellm_client/models/model_info.rb +104 -0
  497. data/lib/litellm_client/models/model_info_delete.rb +237 -0
  498. data/lib/litellm_client/models/model_response.rb +335 -0
  499. data/lib/litellm_client/models/n_epochs.rb +104 -0
  500. data/lib/litellm_client/models/name.rb +104 -0
  501. data/lib/litellm_client/models/new_customer_request.rb +415 -0
  502. data/lib/litellm_client/models/new_mcp_server_request.rb +357 -0
  503. data/lib/litellm_client/models/new_organization_request.rb +362 -0
  504. data/lib/litellm_client/models/new_organization_response.rb +470 -0
  505. data/lib/litellm_client/models/new_team_request.rb +406 -0
  506. data/lib/litellm_client/models/new_user_request.rb +570 -0
  507. data/lib/litellm_client/models/new_user_response.rb +689 -0
  508. data/lib/litellm_client/models/openworldhint.rb +104 -0
  509. data/lib/litellm_client/models/org_member.rb +281 -0
  510. data/lib/litellm_client/models/organization.rb +104 -0
  511. data/lib/litellm_client/models/organization_add_member_response.rb +293 -0
  512. data/lib/litellm_client/models/organization_member_add_request.rb +273 -0
  513. data/lib/litellm_client/models/organization_member_delete_request.rb +257 -0
  514. data/lib/litellm_client/models/organization_member_update_request.rb +299 -0
  515. data/lib/litellm_client/models/organization_request.rb +239 -0
  516. data/lib/litellm_client/models/output_cost_per_pixel.rb +104 -0
  517. data/lib/litellm_client/models/output_cost_per_second.rb +104 -0
  518. data/lib/litellm_client/models/output_cost_per_token.rb +104 -0
  519. data/lib/litellm_client/models/paginated_audit_log_response.rb +348 -0
  520. data/lib/litellm_client/models/pass_through_endpoint_response.rb +239 -0
  521. data/lib/litellm_client/models/pass_through_generic_endpoint.rb +294 -0
  522. data/lib/litellm_client/models/patch_guardrail_litellm_params.rb +233 -0
  523. data/lib/litellm_client/models/patch_guardrail_request.rb +243 -0
  524. data/lib/litellm_client/models/pii_action.rb +40 -0
  525. data/lib/litellm_client/models/pii_entity_type.rb +77 -0
  526. data/lib/litellm_client/models/provider_budget_response.rb +223 -0
  527. data/lib/litellm_client/models/provider_budget_response_object.rb +256 -0
  528. data/lib/litellm_client/models/provider_specific_fields.rb +104 -0
  529. data/lib/litellm_client/models/raw_request_typed_dict.rb +255 -0
  530. data/lib/litellm_client/models/readonlyhint.rb +104 -0
  531. data/lib/litellm_client/models/reasoning_content.rb +104 -0
  532. data/lib/litellm_client/models/regenerate_key_request.rb +537 -0
  533. data/lib/litellm_client/models/region_name.rb +104 -0
  534. data/lib/litellm_client/models/resources.rb +104 -0
  535. data/lib/litellm_client/models/response.rb +105 -0
  536. data/lib/litellm_client/models/rpm.rb +104 -0
  537. data/lib/litellm_client/models/scim_group.rb +309 -0
  538. data/lib/litellm_client/models/scim_list_response.rb +294 -0
  539. data/lib/litellm_client/models/scim_member.rb +247 -0
  540. data/lib/litellm_client/models/scim_patch_op.rb +250 -0
  541. data/lib/litellm_client/models/scim_patch_operation.rb +257 -0
  542. data/lib/litellm_client/models/scim_user.rb +368 -0
  543. data/lib/litellm_client/models/scim_user_email.rb +257 -0
  544. data/lib/litellm_client/models/scim_user_group.rb +257 -0
  545. data/lib/litellm_client/models/scim_user_name.rb +303 -0
  546. data/lib/litellm_client/models/seed.rb +104 -0
  547. data/lib/litellm_client/models/service.rb +104 -0
  548. data/lib/litellm_client/models/spend_analytics_paginated_response.rb +248 -0
  549. data/lib/litellm_client/models/spend_calculate_request.rb +245 -0
  550. data/lib/litellm_client/models/spend_metrics.rb +310 -0
  551. data/lib/litellm_client/models/sso_config.rb +332 -0
  552. data/lib/litellm_client/models/sso_settings_response.rb +268 -0
  553. data/lib/litellm_client/models/starttime.rb +104 -0
  554. data/lib/litellm_client/models/stream_timeout.rb +105 -0
  555. data/lib/litellm_client/models/suffix.rb +104 -0
  556. data/lib/litellm_client/models/system_fingerprint.rb +104 -0
  557. data/lib/litellm_client/models/tag_config.rb +333 -0
  558. data/lib/litellm_client/models/tag_delete_request.rb +237 -0
  559. data/lib/litellm_client/models/tag_info_request.rb +239 -0
  560. data/lib/litellm_client/models/tag_new_request.rb +271 -0
  561. data/lib/litellm_client/models/tag_update_request.rb +271 -0
  562. data/lib/litellm_client/models/team_add_member_response.rb +522 -0
  563. data/lib/litellm_client/models/team_id.rb +104 -0
  564. data/lib/litellm_client/models/team_list_response.rb +344 -0
  565. data/lib/litellm_client/models/team_member_add_request.rb +273 -0
  566. data/lib/litellm_client/models/team_member_delete_request.rb +257 -0
  567. data/lib/litellm_client/models/team_member_update_request.rb +311 -0
  568. data/lib/litellm_client/models/team_member_update_response.rb +283 -0
  569. data/lib/litellm_client/models/team_model_add_request.rb +266 -0
  570. data/lib/litellm_client/models/team_model_delete_request.rb +266 -0
  571. data/lib/litellm_client/models/team_public_model_name.rb +104 -0
  572. data/lib/litellm_client/models/thinking_blocks.rb +104 -0
  573. data/lib/litellm_client/models/thinking_blocks_any_of_inner.rb +104 -0
  574. data/lib/litellm_client/models/tier.rb +104 -0
  575. data/lib/litellm_client/models/timeout.rb +105 -0
  576. data/lib/litellm_client/models/title.rb +104 -0
  577. data/lib/litellm_client/models/token_count_request.rb +259 -0
  578. data/lib/litellm_client/models/token_count_response.rb +315 -0
  579. data/lib/litellm_client/models/tool_annotations.rb +257 -0
  580. data/lib/litellm_client/models/tool_calls.rb +104 -0
  581. data/lib/litellm_client/models/top_logprob.rb +272 -0
  582. data/lib/litellm_client/models/tpm.rb +104 -0
  583. data/lib/litellm_client/models/transform_request_body.rb +287 -0
  584. data/lib/litellm_client/models/ui_discovery_endpoints.rb +249 -0
  585. data/lib/litellm_client/models/update_customer_request.rb +333 -0
  586. data/lib/litellm_client/models/update_deployment.rb +241 -0
  587. data/lib/litellm_client/models/update_guardrail_request.rb +237 -0
  588. data/lib/litellm_client/models/update_key_request.rb +543 -0
  589. data/lib/litellm_client/models/update_lite_llm_params.rb +535 -0
  590. data/lib/litellm_client/models/update_mcp_server_request.rb +373 -0
  591. data/lib/litellm_client/models/update_team_member_permissions_request.rb +266 -0
  592. data/lib/litellm_client/models/update_team_request.rb +378 -0
  593. data/lib/litellm_client/models/update_user_request.rb +515 -0
  594. data/lib/litellm_client/models/updated_at.rb +104 -0
  595. data/lib/litellm_client/models/updated_by.rb +104 -0
  596. data/lib/litellm_client/models/use_in_pass_through.rb +104 -0
  597. data/lib/litellm_client/models/use_litellm_proxy.rb +104 -0
  598. data/lib/litellm_client/models/user_api_key_auth.rb +861 -0
  599. data/lib/litellm_client/models/user_list_response.rb +344 -0
  600. data/lib/litellm_client/models/validation_error.rb +291 -0
  601. data/lib/litellm_client/models/validation_error_loc_inner.rb +104 -0
  602. data/lib/litellm_client/models/validation_file.rb +104 -0
  603. data/lib/litellm_client/models/vector_store_delete_request.rb +237 -0
  604. data/lib/litellm_client/models/vector_store_metadata.rb +104 -0
  605. data/lib/litellm_client/models/vertex_credentials.rb +105 -0
  606. data/lib/litellm_client/models/vertex_location.rb +104 -0
  607. data/lib/litellm_client/models/vertex_project.rb +104 -0
  608. data/lib/litellm_client/models/watsonx_region_name.rb +104 -0
  609. data/lib/litellm_client/version.rb +15 -0
  610. data/lib/litellm_client.rb +339 -0
  611. data/litellm_client.gemspec +39 -0
  612. data/spec/api/anthropic_pass_through_api_spec.rb +95 -0
  613. data/spec/api/assembly_ai_pass_through_api_spec.rb +90 -0
  614. data/spec/api/assembly_aieu_pass_through_api_spec.rb +90 -0
  615. data/spec/api/assistants_api_spec.rb +221 -0
  616. data/spec/api/audio_api_spec.rb +81 -0
  617. data/spec/api/audit_logging_api_spec.rb +69 -0
  618. data/spec/api/azure_pass_through_api_spec.rb +95 -0
  619. data/spec/api/batch_api_spec.rb +191 -0
  620. data/spec/api/bedrock_pass_through_api_spec.rb +95 -0
  621. data/spec/api/budget_management_api_spec.rb +106 -0
  622. data/spec/api/budget_spend_tracking_api_spec.rb +158 -0
  623. data/spec/api/caching_api_spec.rb +101 -0
  624. data/spec/api/chat_completions_api_spec.rb +83 -0
  625. data/spec/api/cohere_pass_through_api_spec.rb +95 -0
  626. data/spec/api/completions_api_spec.rb +83 -0
  627. data/spec/api/credential_management_api_spec.rb +109 -0
  628. data/spec/api/customer_management_api_spec.rb +118 -0
  629. data/spec/api/default_api_spec.rb +168 -0
  630. data/spec/api/email_management_api_spec.rb +69 -0
  631. data/spec/api/embeddings_api_spec.rb +83 -0
  632. data/spec/api/files_api_spec.rb +242 -0
  633. data/spec/api/fine_tuning_api_spec.rb +139 -0
  634. data/spec/api/google_ai_studio_pass_through_api_spec.rb +95 -0
  635. data/spec/api/guardrails_api_spec.rb +165 -0
  636. data/spec/api/health_api_spec.rb +170 -0
  637. data/spec/api/images_api_spec.rb +110 -0
  638. data/spec/api/internal_user_management_api_spec.rb +121 -0
  639. data/spec/api/key_management_api_spec.rb +173 -0
  640. data/spec/api/langfuse_pass_through_api_spec.rb +95 -0
  641. data/spec/api/llm_utils_api_spec.rb +69 -0
  642. data/spec/api/mcp_api_spec.rb +120 -0
  643. data/spec/api/mistral_pass_through_api_spec.rb +95 -0
  644. data/spec/api/model_management_api_spec.rb +150 -0
  645. data/spec/api/moderations_api_spec.rb +57 -0
  646. data/spec/api/open_ai_pass_through_api_spec.rb +95 -0
  647. data/spec/api/organization_management_api_spec.rb +142 -0
  648. data/spec/api/pass_through_api_spec.rb +805 -0
  649. data/spec/api/rerank_api_spec.rb +65 -0
  650. data/spec/api/responses_api_spec.rb +129 -0
  651. data/spec/api/scimv2_api_spec.rb +187 -0
  652. data/spec/api/sso_settings_api_spec.rb +104 -0
  653. data/spec/api/tag_management_api_spec.rb +112 -0
  654. data/spec/api/team_management_api_spec.rb +283 -0
  655. data/spec/api/vector_store_management_api_spec.rb +72 -0
  656. data/spec/api/vertex_ai_pass_through_api_spec.rb +155 -0
  657. data/spec/api/vllm_pass_through_api_spec.rb +95 -0
  658. data/spec/models/add_team_callback_spec.rb +52 -0
  659. data/spec/models/annotations_spec.rb +21 -0
  660. data/spec/models/api_base_spec.rb +21 -0
  661. data/spec/models/api_key_spec.rb +21 -0
  662. data/spec/models/api_version_spec.rb +21 -0
  663. data/spec/models/apply_guardrail_request_spec.rb +54 -0
  664. data/spec/models/apply_guardrail_response_spec.rb +36 -0
  665. data/spec/models/audit_log_response_spec.rb +84 -0
  666. data/spec/models/aws_access_key_id_spec.rb +21 -0
  667. data/spec/models/aws_region_name_spec.rb +21 -0
  668. data/spec/models/aws_secret_access_key_spec.rb +21 -0
  669. data/spec/models/base_model_spec.rb +21 -0
  670. data/spec/models/batch_size_spec.rb +21 -0
  671. data/spec/models/block_key_request_spec.rb +36 -0
  672. data/spec/models/block_team_request_spec.rb +36 -0
  673. data/spec/models/block_users_spec.rb +36 -0
  674. data/spec/models/body_test_model_connection_health_test_connection_post_spec.rb +46 -0
  675. data/spec/models/breakdown_metrics_spec.rb +54 -0
  676. data/spec/models/budget_config_spec.rb +54 -0
  677. data/spec/models/budget_delete_request_spec.rb +36 -0
  678. data/spec/models/budget_duration_spec.rb +21 -0
  679. data/spec/models/budget_new_request_spec.rb +84 -0
  680. data/spec/models/budget_request_spec.rb +36 -0
  681. data/spec/models/bytes_spec.rb +21 -0
  682. data/spec/models/cache_control_spec.rb +21 -0
  683. data/spec/models/cache_ping_response_spec.rb +66 -0
  684. data/spec/models/call_types_spec.rb +30 -0
  685. data/spec/models/chat_completion_annotation_spec.rb +46 -0
  686. data/spec/models/chat_completion_annotation_url_citation_spec.rb +54 -0
  687. data/spec/models/chat_completion_audio_response_spec.rb +54 -0
  688. data/spec/models/chat_completion_cached_content_spec.rb +40 -0
  689. data/spec/models/chat_completion_redacted_thinking_block_spec.rb +52 -0
  690. data/spec/models/chat_completion_thinking_block_spec.rb +58 -0
  691. data/spec/models/chat_completion_token_logprob_spec.rb +54 -0
  692. data/spec/models/choice_logprobs_spec.rb +36 -0
  693. data/spec/models/choices1_inner_spec.rb +21 -0
  694. data/spec/models/choices_spec.rb +60 -0
  695. data/spec/models/configurable_clientside_auth_params_any_of_inner_spec.rb +21 -0
  696. data/spec/models/configurable_clientside_auth_params_spec.rb +21 -0
  697. data/spec/models/configurable_clientside_params_custom_auth_spec.rb +36 -0
  698. data/spec/models/content1_spec.rb +21 -0
  699. data/spec/models/content_spec.rb +21 -0
  700. data/spec/models/create_credential_item_spec.rb +54 -0
  701. data/spec/models/create_guardrail_request_spec.rb +36 -0
  702. data/spec/models/created_at_spec.rb +21 -0
  703. data/spec/models/created_by_spec.rb +21 -0
  704. data/spec/models/credential_item_spec.rb +48 -0
  705. data/spec/models/custom_llm_provider1_spec.rb +21 -0
  706. data/spec/models/custom_llm_provider_spec.rb +21 -0
  707. data/spec/models/daily_spend_data_spec.rb +48 -0
  708. data/spec/models/daily_spend_metadata_spec.rb +102 -0
  709. data/spec/models/default_internal_user_params_spec.rb +58 -0
  710. data/spec/models/default_team_settings_response_spec.rb +42 -0
  711. data/spec/models/default_team_sso_params_spec.rb +60 -0
  712. data/spec/models/delete_customer_request_spec.rb +36 -0
  713. data/spec/models/delete_organization_request_spec.rb +36 -0
  714. data/spec/models/delete_team_request_spec.rb +36 -0
  715. data/spec/models/delete_user_request_spec.rb +36 -0
  716. data/spec/models/deployment_spec.rb +48 -0
  717. data/spec/models/description_spec.rb +21 -0
  718. data/spec/models/destructivehint_spec.rb +21 -0
  719. data/spec/models/email_event_settings_response_spec.rb +36 -0
  720. data/spec/models/email_event_settings_spec.rb +42 -0
  721. data/spec/models/email_event_settings_update_request_spec.rb +36 -0
  722. data/spec/models/email_event_spec.rb +30 -0
  723. data/spec/models/endtime_spec.rb +21 -0
  724. data/spec/models/error_response_spec.rb +36 -0
  725. data/spec/models/expires_spec.rb +21 -0
  726. data/spec/models/function_call_spec.rb +42 -0
  727. data/spec/models/generate_key_request_spec.rb +204 -0
  728. data/spec/models/generate_key_response_spec.rb +246 -0
  729. data/spec/models/get_team_member_permissions_response_spec.rb +48 -0
  730. data/spec/models/guardrail_info_lite_llm_params_response_spec.rb +54 -0
  731. data/spec/models/guardrail_info_response_spec.rb +76 -0
  732. data/spec/models/guardrail_spec.rb +66 -0
  733. data/spec/models/http_validation_error_spec.rb +36 -0
  734. data/spec/models/hyperparameters_spec.rb +48 -0
  735. data/spec/models/id_spec.rb +21 -0
  736. data/spec/models/idempotenthint_spec.rb +21 -0
  737. data/spec/models/input_cost_per_pixel_spec.rb +21 -0
  738. data/spec/models/input_cost_per_second_spec.rb +21 -0
  739. data/spec/models/input_cost_per_token_spec.rb +21 -0
  740. data/spec/models/integrations_spec.rb +21 -0
  741. data/spec/models/internal_user_settings_response_spec.rb +42 -0
  742. data/spec/models/ip_address_spec.rb +36 -0
  743. data/spec/models/key_health_response_spec.rb +46 -0
  744. data/spec/models/key_list_response_object_keys_inner_spec.rb +21 -0
  745. data/spec/models/key_list_response_object_spec.rb +54 -0
  746. data/spec/models/key_metadata_spec.rb +42 -0
  747. data/spec/models/key_metric_with_metadata_spec.rb +42 -0
  748. data/spec/models/key_request_spec.rb +42 -0
  749. data/spec/models/lakera_category_thresholds_spec.rb +42 -0
  750. data/spec/models/learning_rate_multiplier_spec.rb +21 -0
  751. data/spec/models/list_guardrails_response_spec.rb +36 -0
  752. data/spec/models/list_mcp_tools_rest_api_response_object_annotations_spec.rb +21 -0
  753. data/spec/models/list_mcp_tools_rest_api_response_object_mcp_info_spec.rb +21 -0
  754. data/spec/models/list_mcp_tools_rest_api_response_object_spec.rb +60 -0
  755. data/spec/models/lite_llm_budget_table_spec.rb +78 -0
  756. data/spec/models/lite_llm_end_user_table_spec.rb +76 -0
  757. data/spec/models/lite_llm_fine_tuning_job_create_hyperparameters_spec.rb +21 -0
  758. data/spec/models/lite_llm_fine_tuning_job_create_spec.rb +78 -0
  759. data/spec/models/lite_llm_managed_vector_store_list_response_spec.rb +64 -0
  760. data/spec/models/lite_llm_managed_vector_store_spec.rb +78 -0
  761. data/spec/models/lite_llm_model_table_spec.rb +60 -0
  762. data/spec/models/lite_llm_object_permission_base_spec.rb +42 -0
  763. data/spec/models/lite_llm_object_permission_table_spec.rb +48 -0
  764. data/spec/models/lite_llm_organization_membership_table_spec.rb +84 -0
  765. data/spec/models/lite_llm_organization_table_update_spec.rb +78 -0
  766. data/spec/models/lite_llm_organization_table_with_members_spec.rb +126 -0
  767. data/spec/models/lite_llm_params_spec.rb +246 -0
  768. data/spec/models/lite_llm_spend_logs_spec.rb +144 -0
  769. data/spec/models/lite_llm_team_membership_spec.rb +54 -0
  770. data/spec/models/lite_llm_team_table_spec.rb +168 -0
  771. data/spec/models/lite_llm_user_table_spec.rb +150 -0
  772. data/spec/models/lite_llm_user_table_with_key_count_spec.rb +156 -0
  773. data/spec/models/lite_llm_verification_token_spec.rb +222 -0
  774. data/spec/models/lite_llmmcp_server_table_spec.rb +108 -0
  775. data/spec/models/litellm_credential_name_spec.rb +21 -0
  776. data/spec/models/litellm_params_spec.rb +258 -0
  777. data/spec/models/litellm_trace_id_spec.rb +21 -0
  778. data/spec/models/litellm_user_roles_spec.rb +30 -0
  779. data/spec/models/logging_callback_status_spec.rb +52 -0
  780. data/spec/models/logprobs_spec.rb +21 -0
  781. data/spec/models/max_budget_spec.rb +21 -0
  782. data/spec/models/max_file_size_mb_spec.rb +21 -0
  783. data/spec/models/max_retries_spec.rb +21 -0
  784. data/spec/models/mcp_info_spec.rb +48 -0
  785. data/spec/models/member1_spec.rb +21 -0
  786. data/spec/models/member2_spec.rb +21 -0
  787. data/spec/models/member_spec.rb +52 -0
  788. data/spec/models/merge_reasoning_content_in_choices_spec.rb +21 -0
  789. data/spec/models/message_audio_spec.rb +21 -0
  790. data/spec/models/message_function_call_spec.rb +21 -0
  791. data/spec/models/message_spec.rb +88 -0
  792. data/spec/models/messages_spec.rb +21 -0
  793. data/spec/models/metric_with_metadata_spec.rb +42 -0
  794. data/spec/models/mock_response_spec.rb +21 -0
  795. data/spec/models/mode1_spec.rb +21 -0
  796. data/spec/models/mode_spec.rb +21 -0
  797. data/spec/models/model_aliases_spec.rb +21 -0
  798. data/spec/models/model_info_delete_spec.rb +36 -0
  799. data/spec/models/model_info_spec.rb +21 -0
  800. data/spec/models/model_response_spec.rb +66 -0
  801. data/spec/models/model_spec.rb +21 -0
  802. data/spec/models/n_epochs_spec.rb +21 -0
  803. data/spec/models/name_spec.rb +21 -0
  804. data/spec/models/new_customer_request_spec.rb +124 -0
  805. data/spec/models/new_mcp_server_request_spec.rb +84 -0
  806. data/spec/models/new_organization_request_spec.rb +108 -0
  807. data/spec/models/new_organization_response_spec.rb +114 -0
  808. data/spec/models/new_team_request_spec.rb +138 -0
  809. data/spec/models/new_user_request_spec.rb +214 -0
  810. data/spec/models/new_user_response_spec.rb +274 -0
  811. data/spec/models/openworldhint_spec.rb +21 -0
  812. data/spec/models/org_member_spec.rb +52 -0
  813. data/spec/models/organization_add_member_response_spec.rb +48 -0
  814. data/spec/models/organization_member_add_request_spec.rb +48 -0
  815. data/spec/models/organization_member_delete_request_spec.rb +48 -0
  816. data/spec/models/organization_member_update_request_spec.rb +60 -0
  817. data/spec/models/organization_request_spec.rb +36 -0
  818. data/spec/models/organization_spec.rb +21 -0
  819. data/spec/models/output_cost_per_pixel_spec.rb +21 -0
  820. data/spec/models/output_cost_per_second_spec.rb +21 -0
  821. data/spec/models/output_cost_per_token_spec.rb +21 -0
  822. data/spec/models/paginated_audit_log_response_spec.rb +60 -0
  823. data/spec/models/pass_through_endpoint_response_spec.rb +36 -0
  824. data/spec/models/pass_through_generic_endpoint_spec.rb +48 -0
  825. data/spec/models/patch_guardrail_litellm_params_spec.rb +42 -0
  826. data/spec/models/patch_guardrail_request_spec.rb +48 -0
  827. data/spec/models/pii_action_spec.rb +30 -0
  828. data/spec/models/pii_entity_type_spec.rb +30 -0
  829. data/spec/models/provider_budget_response_object_spec.rb +54 -0
  830. data/spec/models/provider_budget_response_spec.rb +36 -0
  831. data/spec/models/provider_specific_fields_spec.rb +21 -0
  832. data/spec/models/raw_request_typed_dict_spec.rb +54 -0
  833. data/spec/models/readonlyhint_spec.rb +21 -0
  834. data/spec/models/reasoning_content_spec.rb +21 -0
  835. data/spec/models/regenerate_key_request_spec.rb +210 -0
  836. data/spec/models/region_name_spec.rb +21 -0
  837. data/spec/models/resources_spec.rb +21 -0
  838. data/spec/models/response_spec.rb +21 -0
  839. data/spec/models/rpm_spec.rb +21 -0
  840. data/spec/models/scim_group_spec.rb +66 -0
  841. data/spec/models/scim_list_response_spec.rb +60 -0
  842. data/spec/models/scim_member_spec.rb +42 -0
  843. data/spec/models/scim_patch_op_spec.rb +42 -0
  844. data/spec/models/scim_patch_operation_spec.rb +48 -0
  845. data/spec/models/scim_user_email_spec.rb +48 -0
  846. data/spec/models/scim_user_group_spec.rb +48 -0
  847. data/spec/models/scim_user_name_spec.rb +66 -0
  848. data/spec/models/scim_user_spec.rb +90 -0
  849. data/spec/models/seed_spec.rb +21 -0
  850. data/spec/models/service_spec.rb +21 -0
  851. data/spec/models/spend_analytics_paginated_response_spec.rb +42 -0
  852. data/spec/models/spend_calculate_request_spec.rb +48 -0
  853. data/spec/models/spend_metrics_spec.rb +84 -0
  854. data/spec/models/sso_config_spec.rb +102 -0
  855. data/spec/models/sso_settings_response_spec.rb +42 -0
  856. data/spec/models/starttime_spec.rb +21 -0
  857. data/spec/models/stream_timeout_spec.rb +21 -0
  858. data/spec/models/suffix_spec.rb +21 -0
  859. data/spec/models/system_fingerprint_spec.rb +21 -0
  860. data/spec/models/tag_config_spec.rb +72 -0
  861. data/spec/models/tag_delete_request_spec.rb +36 -0
  862. data/spec/models/tag_info_request_spec.rb +36 -0
  863. data/spec/models/tag_new_request_spec.rb +54 -0
  864. data/spec/models/tag_update_request_spec.rb +54 -0
  865. data/spec/models/team_add_member_response_spec.rb +180 -0
  866. data/spec/models/team_id_spec.rb +21 -0
  867. data/spec/models/team_list_response_spec.rb +60 -0
  868. data/spec/models/team_member_add_request_spec.rb +48 -0
  869. data/spec/models/team_member_delete_request_spec.rb +48 -0
  870. data/spec/models/team_member_update_request_spec.rb +64 -0
  871. data/spec/models/team_member_update_response_spec.rb +54 -0
  872. data/spec/models/team_model_add_request_spec.rb +42 -0
  873. data/spec/models/team_model_delete_request_spec.rb +42 -0
  874. data/spec/models/team_public_model_name_spec.rb +21 -0
  875. data/spec/models/thinking_blocks_any_of_inner_spec.rb +21 -0
  876. data/spec/models/thinking_blocks_spec.rb +21 -0
  877. data/spec/models/tier_spec.rb +21 -0
  878. data/spec/models/timeout_spec.rb +21 -0
  879. data/spec/models/title_spec.rb +21 -0
  880. data/spec/models/token_count_request_spec.rb +48 -0
  881. data/spec/models/token_count_response_spec.rb +54 -0
  882. data/spec/models/tool_annotations_spec.rb +60 -0
  883. data/spec/models/tool_calls_spec.rb +21 -0
  884. data/spec/models/top_logprob_spec.rb +48 -0
  885. data/spec/models/tpm_spec.rb +21 -0
  886. data/spec/models/transform_request_body_spec.rb +42 -0
  887. data/spec/models/ui_discovery_endpoints_spec.rb +42 -0
  888. data/spec/models/update_customer_request_spec.rb +76 -0
  889. data/spec/models/update_deployment_spec.rb +48 -0
  890. data/spec/models/update_guardrail_request_spec.rb +36 -0
  891. data/spec/models/update_key_request_spec.rb +204 -0
  892. data/spec/models/update_lite_llm_params_spec.rb +246 -0
  893. data/spec/models/update_mcp_server_request_spec.rb +84 -0
  894. data/spec/models/update_team_member_permissions_request_spec.rb +42 -0
  895. data/spec/models/update_team_request_spec.rb +114 -0
  896. data/spec/models/update_user_request_spec.rb +184 -0
  897. data/spec/models/updated_at_spec.rb +21 -0
  898. data/spec/models/updated_by_spec.rb +21 -0
  899. data/spec/models/use_in_pass_through_spec.rb +21 -0
  900. data/spec/models/use_litellm_proxy_spec.rb +21 -0
  901. data/spec/models/user_api_key_auth_spec.rb +388 -0
  902. data/spec/models/user_list_response_spec.rb +60 -0
  903. data/spec/models/validation_error_loc_inner_spec.rb +21 -0
  904. data/spec/models/validation_error_spec.rb +48 -0
  905. data/spec/models/validation_file_spec.rb +21 -0
  906. data/spec/models/vector_store_delete_request_spec.rb +36 -0
  907. data/spec/models/vector_store_metadata_spec.rb +21 -0
  908. data/spec/models/vertex_credentials_spec.rb +21 -0
  909. data/spec/models/vertex_location_spec.rb +21 -0
  910. data/spec/models/vertex_project_spec.rb +21 -0
  911. data/spec/models/watsonx_region_name_spec.rb +21 -0
  912. data/spec/spec_helper.rb +111 -0
  913. metadata +1298 -0
@@ -0,0 +1,735 @@
1
+ =begin
2
+ #LiteLLM API
3
+
4
+ #Proxy Server to call 100+ LLMs in the OpenAI format. [**Customize Swagger Docs**](https://docs.litellm.ai/docs/proxy/enterprise#swagger-docs---custom-routes--branding) 👉 [```LiteLLM Admin Panel on /ui```](/ui/). Create, Edit Keys with SSO 💸 [```LiteLLM Model Cost Map```](https://models.litellm.ai/).
5
+
6
+ The version of the OpenAPI document: 1.72.6
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.13.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module LiteLLMClient
16
+ class KeyManagementApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Block Key
23
+ # Block an Virtual key from making any requests. Parameters: - key: str - The key to block. Can be either the unhashed key (sk-...) or the hashed key value Example: ```bash curl --location 'http://0.0.0.0:4000/key/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ \"key\": \"sk-Fn8Ej39NxjAXrvpUGKghGw\" }' ``` Note: This is an admin-only endpoint. Only proxy admins can block keys.
24
+ # @param block_key_request [BlockKeyRequest]
25
+ # @param [Hash] opts the optional parameters
26
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
27
+ # @return [LiteLLMVerificationToken]
28
+ def block_key_key_block_post(block_key_request, opts = {})
29
+ data, _status_code, _headers = block_key_key_block_post_with_http_info(block_key_request, opts)
30
+ data
31
+ end
32
+
33
+ # Block Key
34
+ # Block an Virtual key from making any requests. Parameters: - key: str - The key to block. Can be either the unhashed key (sk-...) or the hashed key value Example: ```bash curl --location 'http://0.0.0.0:4000/key/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ \"key\": \"sk-Fn8Ej39NxjAXrvpUGKghGw\" }' ``` Note: This is an admin-only endpoint. Only proxy admins can block keys.
35
+ # @param block_key_request [BlockKeyRequest]
36
+ # @param [Hash] opts the optional parameters
37
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
38
+ # @return [Array<(LiteLLMVerificationToken, Integer, Hash)>] LiteLLMVerificationToken data, response status code and response headers
39
+ def block_key_key_block_post_with_http_info(block_key_request, opts = {})
40
+ if @api_client.config.debugging
41
+ @api_client.config.logger.debug 'Calling API: KeyManagementApi.block_key_key_block_post ...'
42
+ end
43
+ # verify the required parameter 'block_key_request' is set
44
+ if @api_client.config.client_side_validation && block_key_request.nil?
45
+ fail ArgumentError, "Missing the required parameter 'block_key_request' when calling KeyManagementApi.block_key_key_block_post"
46
+ end
47
+ # resource path
48
+ local_var_path = '/key/block'
49
+
50
+ # query parameters
51
+ query_params = opts[:query_params] || {}
52
+
53
+ # header parameters
54
+ header_params = opts[:header_params] || {}
55
+ # HTTP header 'Accept' (if needed)
56
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
57
+ # HTTP header 'Content-Type'
58
+ content_type = @api_client.select_header_content_type(['application/json'])
59
+ if !content_type.nil?
60
+ header_params['Content-Type'] = content_type
61
+ end
62
+ header_params[:'litellm-changed-by'] = opts[:'litellm_changed_by'] if !opts[:'litellm_changed_by'].nil?
63
+
64
+ # form parameters
65
+ form_params = opts[:form_params] || {}
66
+
67
+ # http body (model)
68
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(block_key_request)
69
+
70
+ # return_type
71
+ return_type = opts[:debug_return_type] || 'LiteLLMVerificationToken'
72
+
73
+ # auth_names
74
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader']
75
+
76
+ new_options = opts.merge(
77
+ :operation => :"KeyManagementApi.block_key_key_block_post",
78
+ :header_params => header_params,
79
+ :query_params => query_params,
80
+ :form_params => form_params,
81
+ :body => post_body,
82
+ :auth_names => auth_names,
83
+ :return_type => return_type
84
+ )
85
+
86
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
87
+ if @api_client.config.debugging
88
+ @api_client.config.logger.debug "API called: KeyManagementApi#block_key_key_block_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
89
+ end
90
+ return data, status_code, headers
91
+ end
92
+
93
+ # Delete Key Fn
94
+ # Delete a key from the key management system. Parameters:: - keys (List[str]): A list of keys or hashed keys to delete. Example {\"keys\": [\"sk-QWrxEynunsNpV1zT48HIrw\", \"837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be\"]} - key_aliases (List[str]): A list of key aliases to delete. Can be passed instead of `keys`.Example {\"key_aliases\": [\"alias1\", \"alias2\"]} Returns: - deleted_keys (List[str]): A list of deleted keys. Example {\"deleted_keys\": [\"sk-QWrxEynunsNpV1zT48HIrw\", \"837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be\"]} Example: ```bash curl --location 'http://0.0.0.0:4000/key/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ \"keys\": [\"sk-QWrxEynunsNpV1zT48HIrw\"] }' ``` Raises: HTTPException: If an error occurs during key deletion.
95
+ # @param key_request [KeyRequest]
96
+ # @param [Hash] opts the optional parameters
97
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
98
+ # @return [Object]
99
+ def delete_key_fn_key_delete_post(key_request, opts = {})
100
+ data, _status_code, _headers = delete_key_fn_key_delete_post_with_http_info(key_request, opts)
101
+ data
102
+ end
103
+
104
+ # Delete Key Fn
105
+ # Delete a key from the key management system. Parameters:: - keys (List[str]): A list of keys or hashed keys to delete. Example {\&quot;keys\&quot;: [\&quot;sk-QWrxEynunsNpV1zT48HIrw\&quot;, \&quot;837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be\&quot;]} - key_aliases (List[str]): A list of key aliases to delete. Can be passed instead of &#x60;keys&#x60;.Example {\&quot;key_aliases\&quot;: [\&quot;alias1\&quot;, \&quot;alias2\&quot;]} Returns: - deleted_keys (List[str]): A list of deleted keys. Example {\&quot;deleted_keys\&quot;: [\&quot;sk-QWrxEynunsNpV1zT48HIrw\&quot;, \&quot;837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be\&quot;]} Example: &#x60;&#x60;&#x60;bash curl --location &#39;http://0.0.0.0:4000/key/delete&#39; --header &#39;Authorization: Bearer sk-1234&#39; --header &#39;Content-Type: application/json&#39; --data &#39;{ \&quot;keys\&quot;: [\&quot;sk-QWrxEynunsNpV1zT48HIrw\&quot;] }&#39; &#x60;&#x60;&#x60; Raises: HTTPException: If an error occurs during key deletion.
106
+ # @param key_request [KeyRequest]
107
+ # @param [Hash] opts the optional parameters
108
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
109
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
110
+ def delete_key_fn_key_delete_post_with_http_info(key_request, opts = {})
111
+ if @api_client.config.debugging
112
+ @api_client.config.logger.debug 'Calling API: KeyManagementApi.delete_key_fn_key_delete_post ...'
113
+ end
114
+ # verify the required parameter 'key_request' is set
115
+ if @api_client.config.client_side_validation && key_request.nil?
116
+ fail ArgumentError, "Missing the required parameter 'key_request' when calling KeyManagementApi.delete_key_fn_key_delete_post"
117
+ end
118
+ # resource path
119
+ local_var_path = '/key/delete'
120
+
121
+ # query parameters
122
+ query_params = opts[:query_params] || {}
123
+
124
+ # header parameters
125
+ header_params = opts[:header_params] || {}
126
+ # HTTP header 'Accept' (if needed)
127
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
128
+ # HTTP header 'Content-Type'
129
+ content_type = @api_client.select_header_content_type(['application/json'])
130
+ if !content_type.nil?
131
+ header_params['Content-Type'] = content_type
132
+ end
133
+ header_params[:'litellm-changed-by'] = opts[:'litellm_changed_by'] if !opts[:'litellm_changed_by'].nil?
134
+
135
+ # form parameters
136
+ form_params = opts[:form_params] || {}
137
+
138
+ # http body (model)
139
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(key_request)
140
+
141
+ # return_type
142
+ return_type = opts[:debug_return_type] || 'Object'
143
+
144
+ # auth_names
145
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader']
146
+
147
+ new_options = opts.merge(
148
+ :operation => :"KeyManagementApi.delete_key_fn_key_delete_post",
149
+ :header_params => header_params,
150
+ :query_params => query_params,
151
+ :form_params => form_params,
152
+ :body => post_body,
153
+ :auth_names => auth_names,
154
+ :return_type => return_type
155
+ )
156
+
157
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
158
+ if @api_client.config.debugging
159
+ @api_client.config.logger.debug "API called: KeyManagementApi#delete_key_fn_key_delete_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
160
+ end
161
+ return data, status_code, headers
162
+ end
163
+
164
+ # Generate Key Fn
165
+ # Generate an API key based on the provided data. Docs: https://docs.litellm.ai/docs/proxy/virtual_keys Parameters: - duration: Optional[str] - Specify the length of time the token is valid for. You can set duration as seconds (\"30s\"), minutes (\"30m\"), hours (\"30h\"), days (\"30d\"). - key_alias: Optional[str] - User defined key alias - key: Optional[str] - User defined key value. If not set, a 16-digit unique sk-key is created for you. - team_id: Optional[str] - The team id of the key - user_id: Optional[str] - The user id of the key - budget_id: Optional[str] - The budget id associated with the key. Created by calling `/budget/new`. - models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models) - aliases: Optional[dict] - Any alias mappings, on top of anything in the config.yaml model list. - https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---upgradedowngrade-models - config: Optional[dict] - any key-specific configs, overrides config in config.yaml - spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by proxy whenever key is used. https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend - send_invite_email: Optional[bool] - Whether to send an invite email to the user_id, with the generate key - max_budget: Optional[float] - Specify max budget for a given key. - budget_duration: Optional[str] - Budget is reset at the end of specified duration. If not set, budget is never reset. You can set duration as seconds (\"30s\"), minutes (\"30m\"), hours (\"30h\"), days (\"30d\"). - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x. - metadata: Optional[dict] - Metadata for key, store information for key. Example metadata = {\"team\": \"core-infra\", \"app\": \"app2\", \"email\": \"ishaan@berri.ai\" } - guardrails: Optional[List[str]] - List of active guardrails for the key - permissions: Optional[dict] - key-specific permissions. Currently just used for turning off pii masking (if connected). Example - {\"pii\": false} - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\"gpt-4\": {\"budget_limit\": 0.0005, \"time_period\": \"30d\"}}}. IF null or {} then no model specific budget. - model_rpm_limit: Optional[dict] - key-specific model rpm limit. Example - {\"text-davinci-002\": 1000, \"gpt-3.5-turbo\": 1000}. IF null or {} then no model specific rpm limit. - model_tpm_limit: Optional[dict] - key-specific model tpm limit. Example - {\"text-davinci-002\": 1000, \"gpt-3.5-turbo\": 1000}. IF null or {} then no model specific tpm limit. - allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - [\"no-cache\", \"no-store\"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request - blocked: Optional[bool] - Whether the key is blocked. - rpm_limit: Optional[int] - Specify rpm limit for a given key (Requests per minute) - tpm_limit: Optional[int] - Specify tpm limit for a given key (Tokens per minute) - soft_budget: Optional[float] - Specify soft budget for a given key. Will trigger a slack alert when this soft budget is reached. - tags: Optional[List[str]] - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). - enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - [\"/chat/completions\", \"/embeddings\", \"/keys/*\"] - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"]}. IF null or {} then no object permission. Examples: 1. Allow users to turn on/off pii masking ```bash curl --location 'http://0.0.0.0:4000/key/generate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ \"permissions\": {\"allow_pii_controls\": true} }' ``` Returns: - key: (str) The generated api key - expires: (datetime) Datetime object for when key expires. - user_id: (str) Unique user id - used for tracking spend across multiple keys for same user id.
166
+ # @param generate_key_request [GenerateKeyRequest]
167
+ # @param [Hash] opts the optional parameters
168
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
169
+ # @return [GenerateKeyResponse]
170
+ def generate_key_fn_key_generate_post(generate_key_request, opts = {})
171
+ data, _status_code, _headers = generate_key_fn_key_generate_post_with_http_info(generate_key_request, opts)
172
+ data
173
+ end
174
+
175
+ # Generate Key Fn
176
+ # Generate an API key based on the provided data. Docs: https://docs.litellm.ai/docs/proxy/virtual_keys Parameters: - duration: Optional[str] - Specify the length of time the token is valid for. You can set duration as seconds (\&quot;30s\&quot;), minutes (\&quot;30m\&quot;), hours (\&quot;30h\&quot;), days (\&quot;30d\&quot;). - key_alias: Optional[str] - User defined key alias - key: Optional[str] - User defined key value. If not set, a 16-digit unique sk-key is created for you. - team_id: Optional[str] - The team id of the key - user_id: Optional[str] - The user id of the key - budget_id: Optional[str] - The budget id associated with the key. Created by calling &#x60;/budget/new&#x60;. - models: Optional[list] - Model_name&#39;s a user is allowed to call. (if empty, key is allowed to call all models) - aliases: Optional[dict] - Any alias mappings, on top of anything in the config.yaml model list. - https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---upgradedowngrade-models - config: Optional[dict] - any key-specific configs, overrides config in config.yaml - spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by proxy whenever key is used. https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend - send_invite_email: Optional[bool] - Whether to send an invite email to the user_id, with the generate key - max_budget: Optional[float] - Specify max budget for a given key. - budget_duration: Optional[str] - Budget is reset at the end of specified duration. If not set, budget is never reset. You can set duration as seconds (\&quot;30s\&quot;), minutes (\&quot;30m\&quot;), hours (\&quot;30h\&quot;), days (\&quot;30d\&quot;). - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user&#39;s parallel requests &gt; x. - metadata: Optional[dict] - Metadata for key, store information for key. Example metadata &#x3D; {\&quot;team\&quot;: \&quot;core-infra\&quot;, \&quot;app\&quot;: \&quot;app2\&quot;, \&quot;email\&quot;: \&quot;ishaan@berri.ai\&quot; } - guardrails: Optional[List[str]] - List of active guardrails for the key - permissions: Optional[dict] - key-specific permissions. Currently just used for turning off pii masking (if connected). Example - {\&quot;pii\&quot;: false} - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\&quot;gpt-4\&quot;: {\&quot;budget_limit\&quot;: 0.0005, \&quot;time_period\&quot;: \&quot;30d\&quot;}}}. IF null or {} then no model specific budget. - model_rpm_limit: Optional[dict] - key-specific model rpm limit. Example - {\&quot;text-davinci-002\&quot;: 1000, \&quot;gpt-3.5-turbo\&quot;: 1000}. IF null or {} then no model specific rpm limit. - model_tpm_limit: Optional[dict] - key-specific model tpm limit. Example - {\&quot;text-davinci-002\&quot;: 1000, \&quot;gpt-3.5-turbo\&quot;: 1000}. IF null or {} then no model specific tpm limit. - allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - [\&quot;no-cache\&quot;, \&quot;no-store\&quot;]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request - blocked: Optional[bool] - Whether the key is blocked. - rpm_limit: Optional[int] - Specify rpm limit for a given key (Requests per minute) - tpm_limit: Optional[int] - Specify tpm limit for a given key (Tokens per minute) - soft_budget: Optional[float] - Specify soft budget for a given key. Will trigger a slack alert when this soft budget is reached. - tags: Optional[List[str]] - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing). - enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - [\&quot;/chat/completions\&quot;, \&quot;/embeddings\&quot;, \&quot;/keys/*\&quot;] - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {\&quot;vector_stores\&quot;: [\&quot;vector_store_1\&quot;, \&quot;vector_store_2\&quot;]}. IF null or {} then no object permission. Examples: 1. Allow users to turn on/off pii masking &#x60;&#x60;&#x60;bash curl --location &#39;http://0.0.0.0:4000/key/generate&#39; --header &#39;Authorization: Bearer sk-1234&#39; --header &#39;Content-Type: application/json&#39; --data &#39;{ \&quot;permissions\&quot;: {\&quot;allow_pii_controls\&quot;: true} }&#39; &#x60;&#x60;&#x60; Returns: - key: (str) The generated api key - expires: (datetime) Datetime object for when key expires. - user_id: (str) Unique user id - used for tracking spend across multiple keys for same user id.
177
+ # @param generate_key_request [GenerateKeyRequest]
178
+ # @param [Hash] opts the optional parameters
179
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
180
+ # @return [Array<(GenerateKeyResponse, Integer, Hash)>] GenerateKeyResponse data, response status code and response headers
181
+ def generate_key_fn_key_generate_post_with_http_info(generate_key_request, opts = {})
182
+ if @api_client.config.debugging
183
+ @api_client.config.logger.debug 'Calling API: KeyManagementApi.generate_key_fn_key_generate_post ...'
184
+ end
185
+ # verify the required parameter 'generate_key_request' is set
186
+ if @api_client.config.client_side_validation && generate_key_request.nil?
187
+ fail ArgumentError, "Missing the required parameter 'generate_key_request' when calling KeyManagementApi.generate_key_fn_key_generate_post"
188
+ end
189
+ # resource path
190
+ local_var_path = '/key/generate'
191
+
192
+ # query parameters
193
+ query_params = opts[:query_params] || {}
194
+
195
+ # header parameters
196
+ header_params = opts[:header_params] || {}
197
+ # HTTP header 'Accept' (if needed)
198
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
199
+ # HTTP header 'Content-Type'
200
+ content_type = @api_client.select_header_content_type(['application/json'])
201
+ if !content_type.nil?
202
+ header_params['Content-Type'] = content_type
203
+ end
204
+ header_params[:'litellm-changed-by'] = opts[:'litellm_changed_by'] if !opts[:'litellm_changed_by'].nil?
205
+
206
+ # form parameters
207
+ form_params = opts[:form_params] || {}
208
+
209
+ # http body (model)
210
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(generate_key_request)
211
+
212
+ # return_type
213
+ return_type = opts[:debug_return_type] || 'GenerateKeyResponse'
214
+
215
+ # auth_names
216
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader']
217
+
218
+ new_options = opts.merge(
219
+ :operation => :"KeyManagementApi.generate_key_fn_key_generate_post",
220
+ :header_params => header_params,
221
+ :query_params => query_params,
222
+ :form_params => form_params,
223
+ :body => post_body,
224
+ :auth_names => auth_names,
225
+ :return_type => return_type
226
+ )
227
+
228
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
229
+ if @api_client.config.debugging
230
+ @api_client.config.logger.debug "API called: KeyManagementApi#generate_key_fn_key_generate_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
231
+ end
232
+ return data, status_code, headers
233
+ end
234
+
235
+ # Info Key Fn
236
+ # Retrieve information about a key. Parameters: key: Optional[str] = Query parameter representing the key in the request user_api_key_dict: UserAPIKeyAuth = Dependency representing the user's API key Returns: Dict containing the key and its associated information Example Curl: ``` curl -X GET \"http://0.0.0.0:4000/key/info?key=sk-02Wr4IAlN3NvPXvL5JVvDA\" -H \"Authorization: Bearer sk-1234\" ``` Example Curl - if no key is passed, it will use the Key Passed in Authorization Header ``` curl -X GET \"http://0.0.0.0:4000/key/info\" -H \"Authorization: Bearer sk-02Wr4IAlN3NvPXvL5JVvDA\" ```
237
+ # @param [Hash] opts the optional parameters
238
+ # @option opts [String] :key Key in the request parameters
239
+ # @return [Object]
240
+ def info_key_fn_key_info_get(opts = {})
241
+ data, _status_code, _headers = info_key_fn_key_info_get_with_http_info(opts)
242
+ data
243
+ end
244
+
245
+ # Info Key Fn
246
+ # Retrieve information about a key. Parameters: key: Optional[str] &#x3D; Query parameter representing the key in the request user_api_key_dict: UserAPIKeyAuth &#x3D; Dependency representing the user&#39;s API key Returns: Dict containing the key and its associated information Example Curl: &#x60;&#x60;&#x60; curl -X GET \&quot;http://0.0.0.0:4000/key/info?key&#x3D;sk-02Wr4IAlN3NvPXvL5JVvDA\&quot; -H \&quot;Authorization: Bearer sk-1234\&quot; &#x60;&#x60;&#x60; Example Curl - if no key is passed, it will use the Key Passed in Authorization Header &#x60;&#x60;&#x60; curl -X GET \&quot;http://0.0.0.0:4000/key/info\&quot; -H \&quot;Authorization: Bearer sk-02Wr4IAlN3NvPXvL5JVvDA\&quot; &#x60;&#x60;&#x60;
247
+ # @param [Hash] opts the optional parameters
248
+ # @option opts [String] :key Key in the request parameters
249
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
250
+ def info_key_fn_key_info_get_with_http_info(opts = {})
251
+ if @api_client.config.debugging
252
+ @api_client.config.logger.debug 'Calling API: KeyManagementApi.info_key_fn_key_info_get ...'
253
+ end
254
+ # resource path
255
+ local_var_path = '/key/info'
256
+
257
+ # query parameters
258
+ query_params = opts[:query_params] || {}
259
+ query_params[:'key'] = opts[:'key'] if !opts[:'key'].nil?
260
+
261
+ # header parameters
262
+ header_params = opts[:header_params] || {}
263
+ # HTTP header 'Accept' (if needed)
264
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
265
+
266
+ # form parameters
267
+ form_params = opts[:form_params] || {}
268
+
269
+ # http body (model)
270
+ post_body = opts[:debug_body]
271
+
272
+ # return_type
273
+ return_type = opts[:debug_return_type] || 'Object'
274
+
275
+ # auth_names
276
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader']
277
+
278
+ new_options = opts.merge(
279
+ :operation => :"KeyManagementApi.info_key_fn_key_info_get",
280
+ :header_params => header_params,
281
+ :query_params => query_params,
282
+ :form_params => form_params,
283
+ :body => post_body,
284
+ :auth_names => auth_names,
285
+ :return_type => return_type
286
+ )
287
+
288
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
289
+ if @api_client.config.debugging
290
+ @api_client.config.logger.debug "API called: KeyManagementApi#info_key_fn_key_info_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
291
+ end
292
+ return data, status_code, headers
293
+ end
294
+
295
+ # Key Health
296
+ # Check the health of the key Checks: - If key based logging is configured correctly - sends a test log Usage Pass the key in the request header ```bash curl -X POST \"http://localhost:4000/key/health\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" ``` Response when logging callbacks are setup correctly: ```json { \"key\": \"healthy\", \"logging_callbacks\": { \"callbacks\": [ \"gcs_bucket\" ], \"status\": \"healthy\", \"details\": \"No logger exceptions triggered, system is healthy. Manually check if logs were sent to ['gcs_bucket']\" } } ``` Response when logging callbacks are not setup correctly: ```json { \"key\": \"unhealthy\", \"logging_callbacks\": { \"callbacks\": [ \"gcs_bucket\" ], \"status\": \"unhealthy\", \"details\": \"Logger exceptions triggered, system is unhealthy: Failed to load vertex credentials. Check to see if credentials containing partial/invalid information.\" } } ```
297
+ # @param [Hash] opts the optional parameters
298
+ # @return [KeyHealthResponse]
299
+ def key_health_key_health_post(opts = {})
300
+ data, _status_code, _headers = key_health_key_health_post_with_http_info(opts)
301
+ data
302
+ end
303
+
304
+ # Key Health
305
+ # Check the health of the key Checks: - If key based logging is configured correctly - sends a test log Usage Pass the key in the request header &#x60;&#x60;&#x60;bash curl -X POST \&quot;http://localhost:4000/key/health\&quot; -H \&quot;Authorization: Bearer sk-1234\&quot; -H \&quot;Content-Type: application/json\&quot; &#x60;&#x60;&#x60; Response when logging callbacks are setup correctly: &#x60;&#x60;&#x60;json { \&quot;key\&quot;: \&quot;healthy\&quot;, \&quot;logging_callbacks\&quot;: { \&quot;callbacks\&quot;: [ \&quot;gcs_bucket\&quot; ], \&quot;status\&quot;: \&quot;healthy\&quot;, \&quot;details\&quot;: \&quot;No logger exceptions triggered, system is healthy. Manually check if logs were sent to [&#39;gcs_bucket&#39;]\&quot; } } &#x60;&#x60;&#x60; Response when logging callbacks are not setup correctly: &#x60;&#x60;&#x60;json { \&quot;key\&quot;: \&quot;unhealthy\&quot;, \&quot;logging_callbacks\&quot;: { \&quot;callbacks\&quot;: [ \&quot;gcs_bucket\&quot; ], \&quot;status\&quot;: \&quot;unhealthy\&quot;, \&quot;details\&quot;: \&quot;Logger exceptions triggered, system is unhealthy: Failed to load vertex credentials. Check to see if credentials containing partial/invalid information.\&quot; } } &#x60;&#x60;&#x60;
306
+ # @param [Hash] opts the optional parameters
307
+ # @return [Array<(KeyHealthResponse, Integer, Hash)>] KeyHealthResponse data, response status code and response headers
308
+ def key_health_key_health_post_with_http_info(opts = {})
309
+ if @api_client.config.debugging
310
+ @api_client.config.logger.debug 'Calling API: KeyManagementApi.key_health_key_health_post ...'
311
+ end
312
+ # resource path
313
+ local_var_path = '/key/health'
314
+
315
+ # query parameters
316
+ query_params = opts[:query_params] || {}
317
+
318
+ # header parameters
319
+ header_params = opts[:header_params] || {}
320
+ # HTTP header 'Accept' (if needed)
321
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
322
+
323
+ # form parameters
324
+ form_params = opts[:form_params] || {}
325
+
326
+ # http body (model)
327
+ post_body = opts[:debug_body]
328
+
329
+ # return_type
330
+ return_type = opts[:debug_return_type] || 'KeyHealthResponse'
331
+
332
+ # auth_names
333
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader']
334
+
335
+ new_options = opts.merge(
336
+ :operation => :"KeyManagementApi.key_health_key_health_post",
337
+ :header_params => header_params,
338
+ :query_params => query_params,
339
+ :form_params => form_params,
340
+ :body => post_body,
341
+ :auth_names => auth_names,
342
+ :return_type => return_type
343
+ )
344
+
345
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
346
+ if @api_client.config.debugging
347
+ @api_client.config.logger.debug "API called: KeyManagementApi#key_health_key_health_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
348
+ end
349
+ return data, status_code, headers
350
+ end
351
+
352
+ # List Keys
353
+ # List all keys for a given user / team / organization. Returns: { \"keys\": List[str] or List[UserAPIKeyAuth], \"total_count\": int, \"current_page\": int, \"total_pages\": int, }
354
+ # @param [Hash] opts the optional parameters
355
+ # @option opts [Integer] :page Page number (default to 1)
356
+ # @option opts [Integer] :size Page size (default to 10)
357
+ # @option opts [String] :user_id Filter keys by user ID
358
+ # @option opts [String] :team_id Filter keys by team ID
359
+ # @option opts [String] :organization_id Filter keys by organization ID
360
+ # @option opts [String] :key_hash Filter keys by key hash
361
+ # @option opts [String] :key_alias Filter keys by key alias
362
+ # @option opts [Boolean] :return_full_object Return full key object (default to false)
363
+ # @option opts [Boolean] :include_team_keys Include all keys for teams that user is an admin of. (default to false)
364
+ # @option opts [String] :sort_by Column to sort by (e.g. &#39;user_id&#39;, &#39;created_at&#39;, &#39;spend&#39;)
365
+ # @option opts [String] :sort_order Sort order (&#39;asc&#39; or &#39;desc&#39;) (default to 'desc')
366
+ # @return [KeyListResponseObject]
367
+ def list_keys_key_list_get(opts = {})
368
+ data, _status_code, _headers = list_keys_key_list_get_with_http_info(opts)
369
+ data
370
+ end
371
+
372
+ # List Keys
373
+ # List all keys for a given user / team / organization. Returns: { \&quot;keys\&quot;: List[str] or List[UserAPIKeyAuth], \&quot;total_count\&quot;: int, \&quot;current_page\&quot;: int, \&quot;total_pages\&quot;: int, }
374
+ # @param [Hash] opts the optional parameters
375
+ # @option opts [Integer] :page Page number (default to 1)
376
+ # @option opts [Integer] :size Page size (default to 10)
377
+ # @option opts [String] :user_id Filter keys by user ID
378
+ # @option opts [String] :team_id Filter keys by team ID
379
+ # @option opts [String] :organization_id Filter keys by organization ID
380
+ # @option opts [String] :key_hash Filter keys by key hash
381
+ # @option opts [String] :key_alias Filter keys by key alias
382
+ # @option opts [Boolean] :return_full_object Return full key object (default to false)
383
+ # @option opts [Boolean] :include_team_keys Include all keys for teams that user is an admin of. (default to false)
384
+ # @option opts [String] :sort_by Column to sort by (e.g. &#39;user_id&#39;, &#39;created_at&#39;, &#39;spend&#39;)
385
+ # @option opts [String] :sort_order Sort order (&#39;asc&#39; or &#39;desc&#39;) (default to 'desc')
386
+ # @return [Array<(KeyListResponseObject, Integer, Hash)>] KeyListResponseObject data, response status code and response headers
387
+ def list_keys_key_list_get_with_http_info(opts = {})
388
+ if @api_client.config.debugging
389
+ @api_client.config.logger.debug 'Calling API: KeyManagementApi.list_keys_key_list_get ...'
390
+ end
391
+ if @api_client.config.client_side_validation && !opts[:'page'].nil? && opts[:'page'] < 1
392
+ fail ArgumentError, 'invalid value for "opts[:"page"]" when calling KeyManagementApi.list_keys_key_list_get, must be greater than or equal to 1.'
393
+ end
394
+
395
+ if @api_client.config.client_side_validation && !opts[:'size'].nil? && opts[:'size'] > 100
396
+ fail ArgumentError, 'invalid value for "opts[:"size"]" when calling KeyManagementApi.list_keys_key_list_get, must be smaller than or equal to 100.'
397
+ end
398
+
399
+ if @api_client.config.client_side_validation && !opts[:'size'].nil? && opts[:'size'] < 1
400
+ fail ArgumentError, 'invalid value for "opts[:"size"]" when calling KeyManagementApi.list_keys_key_list_get, must be greater than or equal to 1.'
401
+ end
402
+
403
+ # resource path
404
+ local_var_path = '/key/list'
405
+
406
+ # query parameters
407
+ query_params = opts[:query_params] || {}
408
+ query_params[:'page'] = opts[:'page'] if !opts[:'page'].nil?
409
+ query_params[:'size'] = opts[:'size'] if !opts[:'size'].nil?
410
+ query_params[:'user_id'] = opts[:'user_id'] if !opts[:'user_id'].nil?
411
+ query_params[:'team_id'] = opts[:'team_id'] if !opts[:'team_id'].nil?
412
+ query_params[:'organization_id'] = opts[:'organization_id'] if !opts[:'organization_id'].nil?
413
+ query_params[:'key_hash'] = opts[:'key_hash'] if !opts[:'key_hash'].nil?
414
+ query_params[:'key_alias'] = opts[:'key_alias'] if !opts[:'key_alias'].nil?
415
+ query_params[:'return_full_object'] = opts[:'return_full_object'] if !opts[:'return_full_object'].nil?
416
+ query_params[:'include_team_keys'] = opts[:'include_team_keys'] if !opts[:'include_team_keys'].nil?
417
+ query_params[:'sort_by'] = opts[:'sort_by'] if !opts[:'sort_by'].nil?
418
+ query_params[:'sort_order'] = opts[:'sort_order'] if !opts[:'sort_order'].nil?
419
+
420
+ # header parameters
421
+ header_params = opts[:header_params] || {}
422
+ # HTTP header 'Accept' (if needed)
423
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
424
+
425
+ # form parameters
426
+ form_params = opts[:form_params] || {}
427
+
428
+ # http body (model)
429
+ post_body = opts[:debug_body]
430
+
431
+ # return_type
432
+ return_type = opts[:debug_return_type] || 'KeyListResponseObject'
433
+
434
+ # auth_names
435
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader']
436
+
437
+ new_options = opts.merge(
438
+ :operation => :"KeyManagementApi.list_keys_key_list_get",
439
+ :header_params => header_params,
440
+ :query_params => query_params,
441
+ :form_params => form_params,
442
+ :body => post_body,
443
+ :auth_names => auth_names,
444
+ :return_type => return_type
445
+ )
446
+
447
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
448
+ if @api_client.config.debugging
449
+ @api_client.config.logger.debug "API called: KeyManagementApi#list_keys_key_list_get\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
450
+ end
451
+ return data, status_code, headers
452
+ end
453
+
454
+ # Regenerate Key Fn
455
+ # Regenerate an existing API key while optionally updating its parameters. Parameters: - key: str (path parameter) - The key to regenerate - data: Optional[RegenerateKeyRequest] - Request body containing optional parameters to update - key_alias: Optional[str] - User-friendly key alias - user_id: Optional[str] - User ID associated with key - team_id: Optional[str] - Team ID associated with key - models: Optional[list] - Model_name's a user is allowed to call - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - spend: Optional[float] - Amount spent by key - max_budget: Optional[float] - Max budget for key - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\"gpt-4\": {\"budget_limit\": 0.0005, \"time_period\": \"30d\"}} - budget_duration: Optional[str] - Budget reset period (\"30d\", \"1h\", etc.) - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached. - max_parallel_requests: Optional[int] - Rate limit for parallel requests - metadata: Optional[dict] - Metadata for key. Example {\"team\": \"core-infra\", \"app\": \"app2\"} - tpm_limit: Optional[int] - Tokens per minute limit - rpm_limit: Optional[int] - Requests per minute limit - model_rpm_limit: Optional[dict] - Model-specific RPM limits {\"gpt-4\": 100, \"claude-v1\": 200} - model_tpm_limit: Optional[dict] - Model-specific TPM limits {\"gpt-4\": 100000, \"claude-v1\": 200000} - allowed_cache_controls: Optional[list] - List of allowed cache control values - duration: Optional[str] - Key validity duration (\"30d\", \"1h\", etc.) - permissions: Optional[dict] - Key-specific permissions - guardrails: Optional[List[str]] - List of active guardrails for the key - blocked: Optional[bool] - Whether the key is blocked Returns: - GenerateKeyResponse containing the new key and its updated parameters Example: ```bash curl --location --request POST 'http://localhost:4000/key/sk-1234/regenerate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ \"max_budget\": 100, \"metadata\": {\"team\": \"core-infra\"}, \"models\": [\"gpt-4\", \"gpt-3.5-turbo\"] }' ``` Note: This is an Enterprise feature. It requires a premium license to use.
456
+ # @param key [String]
457
+ # @param [Hash] opts the optional parameters
458
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
459
+ # @option opts [RegenerateKeyRequest] :regenerate_key_request
460
+ # @return [GenerateKeyResponse]
461
+ def regenerate_key_fn_key_key_regenerate_post(key, opts = {})
462
+ data, _status_code, _headers = regenerate_key_fn_key_key_regenerate_post_with_http_info(key, opts)
463
+ data
464
+ end
465
+
466
+ # Regenerate Key Fn
467
+ # Regenerate an existing API key while optionally updating its parameters. Parameters: - key: str (path parameter) - The key to regenerate - data: Optional[RegenerateKeyRequest] - Request body containing optional parameters to update - key_alias: Optional[str] - User-friendly key alias - user_id: Optional[str] - User ID associated with key - team_id: Optional[str] - Team ID associated with key - models: Optional[list] - Model_name&#39;s a user is allowed to call - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - spend: Optional[float] - Amount spent by key - max_budget: Optional[float] - Max budget for key - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\&quot;gpt-4\&quot;: {\&quot;budget_limit\&quot;: 0.0005, \&quot;time_period\&quot;: \&quot;30d\&quot;}} - budget_duration: Optional[str] - Budget reset period (\&quot;30d\&quot;, \&quot;1h\&quot;, etc.) - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached. - max_parallel_requests: Optional[int] - Rate limit for parallel requests - metadata: Optional[dict] - Metadata for key. Example {\&quot;team\&quot;: \&quot;core-infra\&quot;, \&quot;app\&quot;: \&quot;app2\&quot;} - tpm_limit: Optional[int] - Tokens per minute limit - rpm_limit: Optional[int] - Requests per minute limit - model_rpm_limit: Optional[dict] - Model-specific RPM limits {\&quot;gpt-4\&quot;: 100, \&quot;claude-v1\&quot;: 200} - model_tpm_limit: Optional[dict] - Model-specific TPM limits {\&quot;gpt-4\&quot;: 100000, \&quot;claude-v1\&quot;: 200000} - allowed_cache_controls: Optional[list] - List of allowed cache control values - duration: Optional[str] - Key validity duration (\&quot;30d\&quot;, \&quot;1h\&quot;, etc.) - permissions: Optional[dict] - Key-specific permissions - guardrails: Optional[List[str]] - List of active guardrails for the key - blocked: Optional[bool] - Whether the key is blocked Returns: - GenerateKeyResponse containing the new key and its updated parameters Example: &#x60;&#x60;&#x60;bash curl --location --request POST &#39;http://localhost:4000/key/sk-1234/regenerate&#39; --header &#39;Authorization: Bearer sk-1234&#39; --header &#39;Content-Type: application/json&#39; --data-raw &#39;{ \&quot;max_budget\&quot;: 100, \&quot;metadata\&quot;: {\&quot;team\&quot;: \&quot;core-infra\&quot;}, \&quot;models\&quot;: [\&quot;gpt-4\&quot;, \&quot;gpt-3.5-turbo\&quot;] }&#39; &#x60;&#x60;&#x60; Note: This is an Enterprise feature. It requires a premium license to use.
468
+ # @param key [String]
469
+ # @param [Hash] opts the optional parameters
470
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
471
+ # @option opts [RegenerateKeyRequest] :regenerate_key_request
472
+ # @return [Array<(GenerateKeyResponse, Integer, Hash)>] GenerateKeyResponse data, response status code and response headers
473
+ def regenerate_key_fn_key_key_regenerate_post_with_http_info(key, opts = {})
474
+ if @api_client.config.debugging
475
+ @api_client.config.logger.debug 'Calling API: KeyManagementApi.regenerate_key_fn_key_key_regenerate_post ...'
476
+ end
477
+ # resource path
478
+ local_var_path = '/key/{key}/regenerate'.sub('{' + 'key' + '}', CGI.escape(key.to_s))
479
+
480
+ # query parameters
481
+ query_params = opts[:query_params] || {}
482
+
483
+ # header parameters
484
+ header_params = opts[:header_params] || {}
485
+ # HTTP header 'Accept' (if needed)
486
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
487
+ # HTTP header 'Content-Type'
488
+ content_type = @api_client.select_header_content_type(['application/json'])
489
+ if !content_type.nil?
490
+ header_params['Content-Type'] = content_type
491
+ end
492
+ header_params[:'litellm-changed-by'] = opts[:'litellm_changed_by'] if !opts[:'litellm_changed_by'].nil?
493
+
494
+ # form parameters
495
+ form_params = opts[:form_params] || {}
496
+
497
+ # http body (model)
498
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'regenerate_key_request'])
499
+
500
+ # return_type
501
+ return_type = opts[:debug_return_type] || 'GenerateKeyResponse'
502
+
503
+ # auth_names
504
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader']
505
+
506
+ new_options = opts.merge(
507
+ :operation => :"KeyManagementApi.regenerate_key_fn_key_key_regenerate_post",
508
+ :header_params => header_params,
509
+ :query_params => query_params,
510
+ :form_params => form_params,
511
+ :body => post_body,
512
+ :auth_names => auth_names,
513
+ :return_type => return_type
514
+ )
515
+
516
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
517
+ if @api_client.config.debugging
518
+ @api_client.config.logger.debug "API called: KeyManagementApi#regenerate_key_fn_key_key_regenerate_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
519
+ end
520
+ return data, status_code, headers
521
+ end
522
+
523
+ # Regenerate Key Fn
524
+ # Regenerate an existing API key while optionally updating its parameters. Parameters: - key: str (path parameter) - The key to regenerate - data: Optional[RegenerateKeyRequest] - Request body containing optional parameters to update - key_alias: Optional[str] - User-friendly key alias - user_id: Optional[str] - User ID associated with key - team_id: Optional[str] - Team ID associated with key - models: Optional[list] - Model_name's a user is allowed to call - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - spend: Optional[float] - Amount spent by key - max_budget: Optional[float] - Max budget for key - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\"gpt-4\": {\"budget_limit\": 0.0005, \"time_period\": \"30d\"}} - budget_duration: Optional[str] - Budget reset period (\"30d\", \"1h\", etc.) - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached. - max_parallel_requests: Optional[int] - Rate limit for parallel requests - metadata: Optional[dict] - Metadata for key. Example {\"team\": \"core-infra\", \"app\": \"app2\"} - tpm_limit: Optional[int] - Tokens per minute limit - rpm_limit: Optional[int] - Requests per minute limit - model_rpm_limit: Optional[dict] - Model-specific RPM limits {\"gpt-4\": 100, \"claude-v1\": 200} - model_tpm_limit: Optional[dict] - Model-specific TPM limits {\"gpt-4\": 100000, \"claude-v1\": 200000} - allowed_cache_controls: Optional[list] - List of allowed cache control values - duration: Optional[str] - Key validity duration (\"30d\", \"1h\", etc.) - permissions: Optional[dict] - Key-specific permissions - guardrails: Optional[List[str]] - List of active guardrails for the key - blocked: Optional[bool] - Whether the key is blocked Returns: - GenerateKeyResponse containing the new key and its updated parameters Example: ```bash curl --location --request POST 'http://localhost:4000/key/sk-1234/regenerate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{ \"max_budget\": 100, \"metadata\": {\"team\": \"core-infra\"}, \"models\": [\"gpt-4\", \"gpt-3.5-turbo\"] }' ``` Note: This is an Enterprise feature. It requires a premium license to use.
525
+ # @param [Hash] opts the optional parameters
526
+ # @option opts [String] :key
527
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
528
+ # @option opts [RegenerateKeyRequest] :regenerate_key_request
529
+ # @return [GenerateKeyResponse]
530
+ def regenerate_key_fn_key_regenerate_post(opts = {})
531
+ data, _status_code, _headers = regenerate_key_fn_key_regenerate_post_with_http_info(opts)
532
+ data
533
+ end
534
+
535
+ # Regenerate Key Fn
536
+ # Regenerate an existing API key while optionally updating its parameters. Parameters: - key: str (path parameter) - The key to regenerate - data: Optional[RegenerateKeyRequest] - Request body containing optional parameters to update - key_alias: Optional[str] - User-friendly key alias - user_id: Optional[str] - User ID associated with key - team_id: Optional[str] - Team ID associated with key - models: Optional[list] - Model_name&#39;s a user is allowed to call - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - spend: Optional[float] - Amount spent by key - max_budget: Optional[float] - Max budget for key - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\&quot;gpt-4\&quot;: {\&quot;budget_limit\&quot;: 0.0005, \&quot;time_period\&quot;: \&quot;30d\&quot;}} - budget_duration: Optional[str] - Budget reset period (\&quot;30d\&quot;, \&quot;1h\&quot;, etc.) - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached. - max_parallel_requests: Optional[int] - Rate limit for parallel requests - metadata: Optional[dict] - Metadata for key. Example {\&quot;team\&quot;: \&quot;core-infra\&quot;, \&quot;app\&quot;: \&quot;app2\&quot;} - tpm_limit: Optional[int] - Tokens per minute limit - rpm_limit: Optional[int] - Requests per minute limit - model_rpm_limit: Optional[dict] - Model-specific RPM limits {\&quot;gpt-4\&quot;: 100, \&quot;claude-v1\&quot;: 200} - model_tpm_limit: Optional[dict] - Model-specific TPM limits {\&quot;gpt-4\&quot;: 100000, \&quot;claude-v1\&quot;: 200000} - allowed_cache_controls: Optional[list] - List of allowed cache control values - duration: Optional[str] - Key validity duration (\&quot;30d\&quot;, \&quot;1h\&quot;, etc.) - permissions: Optional[dict] - Key-specific permissions - guardrails: Optional[List[str]] - List of active guardrails for the key - blocked: Optional[bool] - Whether the key is blocked Returns: - GenerateKeyResponse containing the new key and its updated parameters Example: &#x60;&#x60;&#x60;bash curl --location --request POST &#39;http://localhost:4000/key/sk-1234/regenerate&#39; --header &#39;Authorization: Bearer sk-1234&#39; --header &#39;Content-Type: application/json&#39; --data-raw &#39;{ \&quot;max_budget\&quot;: 100, \&quot;metadata\&quot;: {\&quot;team\&quot;: \&quot;core-infra\&quot;}, \&quot;models\&quot;: [\&quot;gpt-4\&quot;, \&quot;gpt-3.5-turbo\&quot;] }&#39; &#x60;&#x60;&#x60; Note: This is an Enterprise feature. It requires a premium license to use.
537
+ # @param [Hash] opts the optional parameters
538
+ # @option opts [String] :key
539
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
540
+ # @option opts [RegenerateKeyRequest] :regenerate_key_request
541
+ # @return [Array<(GenerateKeyResponse, Integer, Hash)>] GenerateKeyResponse data, response status code and response headers
542
+ def regenerate_key_fn_key_regenerate_post_with_http_info(opts = {})
543
+ if @api_client.config.debugging
544
+ @api_client.config.logger.debug 'Calling API: KeyManagementApi.regenerate_key_fn_key_regenerate_post ...'
545
+ end
546
+ # resource path
547
+ local_var_path = '/key/regenerate'
548
+
549
+ # query parameters
550
+ query_params = opts[:query_params] || {}
551
+ query_params[:'key'] = opts[:'key'] if !opts[:'key'].nil?
552
+
553
+ # header parameters
554
+ header_params = opts[:header_params] || {}
555
+ # HTTP header 'Accept' (if needed)
556
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
557
+ # HTTP header 'Content-Type'
558
+ content_type = @api_client.select_header_content_type(['application/json'])
559
+ if !content_type.nil?
560
+ header_params['Content-Type'] = content_type
561
+ end
562
+ header_params[:'litellm-changed-by'] = opts[:'litellm_changed_by'] if !opts[:'litellm_changed_by'].nil?
563
+
564
+ # form parameters
565
+ form_params = opts[:form_params] || {}
566
+
567
+ # http body (model)
568
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(opts[:'regenerate_key_request'])
569
+
570
+ # return_type
571
+ return_type = opts[:debug_return_type] || 'GenerateKeyResponse'
572
+
573
+ # auth_names
574
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader']
575
+
576
+ new_options = opts.merge(
577
+ :operation => :"KeyManagementApi.regenerate_key_fn_key_regenerate_post",
578
+ :header_params => header_params,
579
+ :query_params => query_params,
580
+ :form_params => form_params,
581
+ :body => post_body,
582
+ :auth_names => auth_names,
583
+ :return_type => return_type
584
+ )
585
+
586
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
587
+ if @api_client.config.debugging
588
+ @api_client.config.logger.debug "API called: KeyManagementApi#regenerate_key_fn_key_regenerate_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
589
+ end
590
+ return data, status_code, headers
591
+ end
592
+
593
+ # Unblock Key
594
+ # Unblock a Virtual key to allow it to make requests again. Parameters: - key: str - The key to unblock. Can be either the unhashed key (sk-...) or the hashed key value Example: ```bash curl --location 'http://0.0.0.0:4000/key/unblock' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ \"key\": \"sk-Fn8Ej39NxjAXrvpUGKghGw\" }' ``` Note: This is an admin-only endpoint. Only proxy admins can unblock keys.
595
+ # @param block_key_request [BlockKeyRequest]
596
+ # @param [Hash] opts the optional parameters
597
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
598
+ # @return [Object]
599
+ def unblock_key_key_unblock_post(block_key_request, opts = {})
600
+ data, _status_code, _headers = unblock_key_key_unblock_post_with_http_info(block_key_request, opts)
601
+ data
602
+ end
603
+
604
+ # Unblock Key
605
+ # Unblock a Virtual key to allow it to make requests again. Parameters: - key: str - The key to unblock. Can be either the unhashed key (sk-...) or the hashed key value Example: &#x60;&#x60;&#x60;bash curl --location &#39;http://0.0.0.0:4000/key/unblock&#39; --header &#39;Authorization: Bearer sk-1234&#39; --header &#39;Content-Type: application/json&#39; --data &#39;{ \&quot;key\&quot;: \&quot;sk-Fn8Ej39NxjAXrvpUGKghGw\&quot; }&#39; &#x60;&#x60;&#x60; Note: This is an admin-only endpoint. Only proxy admins can unblock keys.
606
+ # @param block_key_request [BlockKeyRequest]
607
+ # @param [Hash] opts the optional parameters
608
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
609
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
610
+ def unblock_key_key_unblock_post_with_http_info(block_key_request, opts = {})
611
+ if @api_client.config.debugging
612
+ @api_client.config.logger.debug 'Calling API: KeyManagementApi.unblock_key_key_unblock_post ...'
613
+ end
614
+ # verify the required parameter 'block_key_request' is set
615
+ if @api_client.config.client_side_validation && block_key_request.nil?
616
+ fail ArgumentError, "Missing the required parameter 'block_key_request' when calling KeyManagementApi.unblock_key_key_unblock_post"
617
+ end
618
+ # resource path
619
+ local_var_path = '/key/unblock'
620
+
621
+ # query parameters
622
+ query_params = opts[:query_params] || {}
623
+
624
+ # header parameters
625
+ header_params = opts[:header_params] || {}
626
+ # HTTP header 'Accept' (if needed)
627
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
628
+ # HTTP header 'Content-Type'
629
+ content_type = @api_client.select_header_content_type(['application/json'])
630
+ if !content_type.nil?
631
+ header_params['Content-Type'] = content_type
632
+ end
633
+ header_params[:'litellm-changed-by'] = opts[:'litellm_changed_by'] if !opts[:'litellm_changed_by'].nil?
634
+
635
+ # form parameters
636
+ form_params = opts[:form_params] || {}
637
+
638
+ # http body (model)
639
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(block_key_request)
640
+
641
+ # return_type
642
+ return_type = opts[:debug_return_type] || 'Object'
643
+
644
+ # auth_names
645
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader']
646
+
647
+ new_options = opts.merge(
648
+ :operation => :"KeyManagementApi.unblock_key_key_unblock_post",
649
+ :header_params => header_params,
650
+ :query_params => query_params,
651
+ :form_params => form_params,
652
+ :body => post_body,
653
+ :auth_names => auth_names,
654
+ :return_type => return_type
655
+ )
656
+
657
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
658
+ if @api_client.config.debugging
659
+ @api_client.config.logger.debug "API called: KeyManagementApi#unblock_key_key_unblock_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
660
+ end
661
+ return data, status_code, headers
662
+ end
663
+
664
+ # Update Key Fn
665
+ # Update an existing API key's parameters. Parameters: - key: str - The key to update - key_alias: Optional[str] - User-friendly key alias - user_id: Optional[str] - User ID associated with key - team_id: Optional[str] - Team ID associated with key - budget_id: Optional[str] - The budget id associated with the key. Created by calling `/budget/new`. - models: Optional[list] - Model_name's a user is allowed to call - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - spend: Optional[float] - Amount spent by key - max_budget: Optional[float] - Max budget for key - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\"gpt-4\": {\"budget_limit\": 0.0005, \"time_period\": \"30d\"}} - budget_duration: Optional[str] - Budget reset period (\"30d\", \"1h\", etc.) - soft_budget: Optional[float] - [TODO] Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached. - max_parallel_requests: Optional[int] - Rate limit for parallel requests - metadata: Optional[dict] - Metadata for key. Example {\"team\": \"core-infra\", \"app\": \"app2\"} - tpm_limit: Optional[int] - Tokens per minute limit - rpm_limit: Optional[int] - Requests per minute limit - model_rpm_limit: Optional[dict] - Model-specific RPM limits {\"gpt-4\": 100, \"claude-v1\": 200} - model_tpm_limit: Optional[dict] - Model-specific TPM limits {\"gpt-4\": 100000, \"claude-v1\": 200000} - allowed_cache_controls: Optional[list] - List of allowed cache control values - duration: Optional[str] - Key validity duration (\"30d\", \"1h\", etc.) - permissions: Optional[dict] - Key-specific permissions - send_invite_email: Optional[bool] - Send invite email to user_id - guardrails: Optional[List[str]] - List of active guardrails for the key - blocked: Optional[bool] - Whether the key is blocked - aliases: Optional[dict] - Model aliases for the key - [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) - config: Optional[dict] - [DEPRECATED PARAM] Key-specific config. - temp_budget_increase: Optional[float] - Temporary budget increase for the key (Enterprise only). - temp_budget_expiry: Optional[str] - Expiry time for the temporary budget increase (Enterprise only). - allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - [\"/chat/completions\", \"/embeddings\", \"/keys/*\"] - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"]}. IF null or {} then no object permission. Example: ```bash curl --location 'http://0.0.0.0:4000/key/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{ \"key\": \"sk-1234\", \"key_alias\": \"my-key\", \"user_id\": \"user-1234\", \"team_id\": \"team-1234\", \"max_budget\": 100, \"metadata\": {\"any_key\": \"any-val\"}, }' ```
666
+ # @param update_key_request [UpdateKeyRequest]
667
+ # @param [Hash] opts the optional parameters
668
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
669
+ # @return [Object]
670
+ def update_key_fn_key_update_post(update_key_request, opts = {})
671
+ data, _status_code, _headers = update_key_fn_key_update_post_with_http_info(update_key_request, opts)
672
+ data
673
+ end
674
+
675
+ # Update Key Fn
676
+ # Update an existing API key&#39;s parameters. Parameters: - key: str - The key to update - key_alias: Optional[str] - User-friendly key alias - user_id: Optional[str] - User ID associated with key - team_id: Optional[str] - Team ID associated with key - budget_id: Optional[str] - The budget id associated with the key. Created by calling &#x60;/budget/new&#x60;. - models: Optional[list] - Model_name&#39;s a user is allowed to call - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only) - enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests) - spend: Optional[float] - Amount spent by key - max_budget: Optional[float] - Max budget for key - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\&quot;gpt-4\&quot;: {\&quot;budget_limit\&quot;: 0.0005, \&quot;time_period\&quot;: \&quot;30d\&quot;}} - budget_duration: Optional[str] - Budget reset period (\&quot;30d\&quot;, \&quot;1h\&quot;, etc.) - soft_budget: Optional[float] - [TODO] Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached. - max_parallel_requests: Optional[int] - Rate limit for parallel requests - metadata: Optional[dict] - Metadata for key. Example {\&quot;team\&quot;: \&quot;core-infra\&quot;, \&quot;app\&quot;: \&quot;app2\&quot;} - tpm_limit: Optional[int] - Tokens per minute limit - rpm_limit: Optional[int] - Requests per minute limit - model_rpm_limit: Optional[dict] - Model-specific RPM limits {\&quot;gpt-4\&quot;: 100, \&quot;claude-v1\&quot;: 200} - model_tpm_limit: Optional[dict] - Model-specific TPM limits {\&quot;gpt-4\&quot;: 100000, \&quot;claude-v1\&quot;: 200000} - allowed_cache_controls: Optional[list] - List of allowed cache control values - duration: Optional[str] - Key validity duration (\&quot;30d\&quot;, \&quot;1h\&quot;, etc.) - permissions: Optional[dict] - Key-specific permissions - send_invite_email: Optional[bool] - Send invite email to user_id - guardrails: Optional[List[str]] - List of active guardrails for the key - blocked: Optional[bool] - Whether the key is blocked - aliases: Optional[dict] - Model aliases for the key - [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases) - config: Optional[dict] - [DEPRECATED PARAM] Key-specific config. - temp_budget_increase: Optional[float] - Temporary budget increase for the key (Enterprise only). - temp_budget_expiry: Optional[str] - Expiry time for the temporary budget increase (Enterprise only). - allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - [\&quot;/chat/completions\&quot;, \&quot;/embeddings\&quot;, \&quot;/keys/*\&quot;] - object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {\&quot;vector_stores\&quot;: [\&quot;vector_store_1\&quot;, \&quot;vector_store_2\&quot;]}. IF null or {} then no object permission. Example: &#x60;&#x60;&#x60;bash curl --location &#39;http://0.0.0.0:4000/key/update&#39; --header &#39;Authorization: Bearer sk-1234&#39; --header &#39;Content-Type: application/json&#39; --data &#39;{ \&quot;key\&quot;: \&quot;sk-1234\&quot;, \&quot;key_alias\&quot;: \&quot;my-key\&quot;, \&quot;user_id\&quot;: \&quot;user-1234\&quot;, \&quot;team_id\&quot;: \&quot;team-1234\&quot;, \&quot;max_budget\&quot;: 100, \&quot;metadata\&quot;: {\&quot;any_key\&quot;: \&quot;any-val\&quot;}, }&#39; &#x60;&#x60;&#x60;
677
+ # @param update_key_request [UpdateKeyRequest]
678
+ # @param [Hash] opts the optional parameters
679
+ # @option opts [String] :litellm_changed_by The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability
680
+ # @return [Array<(Object, Integer, Hash)>] Object data, response status code and response headers
681
+ def update_key_fn_key_update_post_with_http_info(update_key_request, opts = {})
682
+ if @api_client.config.debugging
683
+ @api_client.config.logger.debug 'Calling API: KeyManagementApi.update_key_fn_key_update_post ...'
684
+ end
685
+ # verify the required parameter 'update_key_request' is set
686
+ if @api_client.config.client_side_validation && update_key_request.nil?
687
+ fail ArgumentError, "Missing the required parameter 'update_key_request' when calling KeyManagementApi.update_key_fn_key_update_post"
688
+ end
689
+ # resource path
690
+ local_var_path = '/key/update'
691
+
692
+ # query parameters
693
+ query_params = opts[:query_params] || {}
694
+
695
+ # header parameters
696
+ header_params = opts[:header_params] || {}
697
+ # HTTP header 'Accept' (if needed)
698
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
699
+ # HTTP header 'Content-Type'
700
+ content_type = @api_client.select_header_content_type(['application/json'])
701
+ if !content_type.nil?
702
+ header_params['Content-Type'] = content_type
703
+ end
704
+ header_params[:'litellm-changed-by'] = opts[:'litellm_changed_by'] if !opts[:'litellm_changed_by'].nil?
705
+
706
+ # form parameters
707
+ form_params = opts[:form_params] || {}
708
+
709
+ # http body (model)
710
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(update_key_request)
711
+
712
+ # return_type
713
+ return_type = opts[:debug_return_type] || 'Object'
714
+
715
+ # auth_names
716
+ auth_names = opts[:debug_auth_names] || ['APIKeyHeader']
717
+
718
+ new_options = opts.merge(
719
+ :operation => :"KeyManagementApi.update_key_fn_key_update_post",
720
+ :header_params => header_params,
721
+ :query_params => query_params,
722
+ :form_params => form_params,
723
+ :body => post_body,
724
+ :auth_names => auth_names,
725
+ :return_type => return_type
726
+ )
727
+
728
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
729
+ if @api_client.config.debugging
730
+ @api_client.config.logger.debug "API called: KeyManagementApi#update_key_fn_key_update_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
731
+ end
732
+ return data, status_code, headers
733
+ end
734
+ end
735
+ end