nemo-platform-plugin 0.1.0__py3-none-any.whl

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 (1224) hide show
  1. nemo_platform/__init__.py +117 -0
  2. nemo_platform/_base_client.py +2146 -0
  3. nemo_platform/_client.py +1200 -0
  4. nemo_platform/_compat.py +241 -0
  5. nemo_platform/_constants.py +29 -0
  6. nemo_platform/_decoders/jsonl.py +138 -0
  7. nemo_platform/_exceptions.py +123 -0
  8. nemo_platform/_files.py +188 -0
  9. nemo_platform/_models.py +967 -0
  10. nemo_platform/_qs.py +164 -0
  11. nemo_platform/_resource.py +58 -0
  12. nemo_platform/_response.py +872 -0
  13. nemo_platform/_streaming.py +391 -0
  14. nemo_platform/_types.py +288 -0
  15. nemo_platform/_utils/__init__.py +79 -0
  16. nemo_platform/_utils/_compat.py +60 -0
  17. nemo_platform/_utils/_datetime_parse.py +151 -0
  18. nemo_platform/_utils/_json.py +50 -0
  19. nemo_platform/_utils/_logs.py +40 -0
  20. nemo_platform/_utils/_path.py +142 -0
  21. nemo_platform/_utils/_proxy.py +80 -0
  22. nemo_platform/_utils/_reflection.py +57 -0
  23. nemo_platform/_utils/_resources_proxy.py +39 -0
  24. nemo_platform/_utils/_streams.py +27 -0
  25. nemo_platform/_utils/_sync.py +73 -0
  26. nemo_platform/_utils/_transform.py +472 -0
  27. nemo_platform/_utils/_typing.py +171 -0
  28. nemo_platform/_utils/_utils.py +448 -0
  29. nemo_platform/_version.py +21 -0
  30. nemo_platform/auth/__init__.py +15 -0
  31. nemo_platform/auth/device_flow.py +303 -0
  32. nemo_platform/auth/helpers.py +211 -0
  33. nemo_platform/auth/token_provider.py +239 -0
  34. nemo_platform/beta/evaluator/__init__.py +120 -0
  35. nemo_platform/beta/evaluator/agent_inference.py +360 -0
  36. nemo_platform/beta/evaluator/constants.py +4 -0
  37. nemo_platform/beta/evaluator/dataset_schemas/common.py +177 -0
  38. nemo_platform/beta/evaluator/dataset_schemas/compatibility.py +353 -0
  39. nemo_platform/beta/evaluator/dataset_schemas/templates.py +389 -0
  40. nemo_platform/beta/evaluator/datasets/__init__.py +28 -0
  41. nemo_platform/beta/evaluator/datasets/loader.py +415 -0
  42. nemo_platform/beta/evaluator/enums.py +64 -0
  43. nemo_platform/beta/evaluator/execution/_protocols.py +20 -0
  44. nemo_platform/beta/evaluator/execution/backends/base.py +86 -0
  45. nemo_platform/beta/evaluator/execution/backends/local/backend.py +132 -0
  46. nemo_platform/beta/evaluator/execution/benchmark_execution.py +666 -0
  47. nemo_platform/beta/evaluator/execution/config.py +64 -0
  48. nemo_platform/beta/evaluator/execution/evaluator.py +289 -0
  49. nemo_platform/beta/evaluator/execution/job_poll.py +98 -0
  50. nemo_platform/beta/evaluator/execution/metric_execution.py +878 -0
  51. nemo_platform/beta/evaluator/execution/pipeline.py +64 -0
  52. nemo_platform/beta/evaluator/execution/runs.py +143 -0
  53. nemo_platform/beta/evaluator/execution/scoring.py +224 -0
  54. nemo_platform/beta/evaluator/execution/utils.py +116 -0
  55. nemo_platform/beta/evaluator/execution/values.py +53 -0
  56. nemo_platform/beta/evaluator/inference.py +456 -0
  57. nemo_platform/beta/evaluator/metrics/aggregation.py +451 -0
  58. nemo_platform/beta/evaluator/metrics/bleu.py +94 -0
  59. nemo_platform/beta/evaluator/metrics/exact_match.py +52 -0
  60. nemo_platform/beta/evaluator/metrics/f1.py +50 -0
  61. nemo_platform/beta/evaluator/metrics/hooks.py +41 -0
  62. nemo_platform/beta/evaluator/metrics/llm_judge.py +392 -0
  63. nemo_platform/beta/evaluator/metrics/number_check.py +95 -0
  64. nemo_platform/beta/evaluator/metrics/protocol.py +241 -0
  65. nemo_platform/beta/evaluator/metrics/ragas/__init__.py +41 -0
  66. nemo_platform/beta/evaluator/metrics/ragas/base.py +521 -0
  67. nemo_platform/beta/evaluator/metrics/ragas/git_patch.py +36 -0
  68. nemo_platform/beta/evaluator/metrics/ragas/imports.py +192 -0
  69. nemo_platform/beta/evaluator/metrics/ragas/metrics.py +183 -0
  70. nemo_platform/beta/evaluator/metrics/remote.py +250 -0
  71. nemo_platform/beta/evaluator/metrics/rouge.py +71 -0
  72. nemo_platform/beta/evaluator/metrics/string_check.py +69 -0
  73. nemo_platform/beta/evaluator/metrics/template_rendering.py +141 -0
  74. nemo_platform/beta/evaluator/metrics/tool_calling.py +173 -0
  75. nemo_platform/beta/evaluator/metrics/types.py +62 -0
  76. nemo_platform/beta/evaluator/metrics/utils.py +54 -0
  77. nemo_platform/beta/evaluator/resilience/api.py +142 -0
  78. nemo_platform/beta/evaluator/resilience/classifier.py +142 -0
  79. nemo_platform/beta/evaluator/resilience/config.py +69 -0
  80. nemo_platform/beta/evaluator/resilience/errors.py +117 -0
  81. nemo_platform/beta/evaluator/resilience/policy.py +50 -0
  82. nemo_platform/beta/evaluator/resilience/scheduler.py +459 -0
  83. nemo_platform/beta/evaluator/resilience/types.py +93 -0
  84. nemo_platform/beta/evaluator/structured_output.py +184 -0
  85. nemo_platform/beta/evaluator/templates.py +115 -0
  86. nemo_platform/beta/evaluator/values/__init__.py +162 -0
  87. nemo_platform/beta/evaluator/values/agents.py +84 -0
  88. nemo_platform/beta/evaluator/values/common.py +28 -0
  89. nemo_platform/beta/evaluator/values/dataset_schemas.py +112 -0
  90. nemo_platform/beta/evaluator/values/datasets.py +28 -0
  91. nemo_platform/beta/evaluator/values/metrics.py +587 -0
  92. nemo_platform/beta/evaluator/values/models.py +157 -0
  93. nemo_platform/beta/evaluator/values/multi_metric_results.py +359 -0
  94. nemo_platform/beta/evaluator/values/params.py +109 -0
  95. nemo_platform/beta/evaluator/values/results.py +699 -0
  96. nemo_platform/beta/evaluator/values/scores.py +300 -0
  97. nemo_platform/beta/safe_synthesizer/__init__.py +4 -0
  98. nemo_platform/beta/safe_synthesizer/config.py +29 -0
  99. nemo_platform/beta/safe_synthesizer/job.py +309 -0
  100. nemo_platform/beta/safe_synthesizer/job_builder.py +355 -0
  101. nemo_platform/cli/__init__.py +4 -0
  102. nemo_platform/cli/app.py +321 -0
  103. nemo_platform/cli/commands/__init__.py +15 -0
  104. nemo_platform/cli/commands/api/__init__.py +114 -0
  105. nemo_platform/cli/commands/api/adapters.py +384 -0
  106. nemo_platform/cli/commands/api/files/__init__.py +237 -0
  107. nemo_platform/cli/commands/api/files/filesets.py +386 -0
  108. nemo_platform/cli/commands/api/files/otlp/__init__.py +12 -0
  109. nemo_platform/cli/commands/api/files/otlp/logs.py +116 -0
  110. nemo_platform/cli/commands/api/guardrail/__init__.py +270 -0
  111. nemo_platform/cli/commands/api/guardrail/configs.py +311 -0
  112. nemo_platform/cli/commands/api/iam/__init__.py +12 -0
  113. nemo_platform/cli/commands/api/iam/role_bindings.py +264 -0
  114. nemo_platform/cli/commands/api/inference/__init__.py +76 -0
  115. nemo_platform/cli/commands/api/inference/deployment_configs/__init__.py +370 -0
  116. nemo_platform/cli/commands/api/inference/deployment_configs/versions.py +132 -0
  117. nemo_platform/cli/commands/api/inference/deployments/__init__.py +565 -0
  118. nemo_platform/cli/commands/api/inference/deployments/versions.py +141 -0
  119. nemo_platform/cli/commands/api/inference/gateway/__init__.py +14 -0
  120. nemo_platform/cli/commands/api/inference/gateway/model.py +324 -0
  121. nemo_platform/cli/commands/api/inference/gateway/openai/__init__.py +12 -0
  122. nemo_platform/cli/commands/api/inference/gateway/openai/v1/__init__.py +12 -0
  123. nemo_platform/cli/commands/api/inference/gateway/openai/v1/models.py +106 -0
  124. nemo_platform/cli/commands/api/inference/gateway/provider.py +327 -0
  125. nemo_platform/cli/commands/api/inference/models.py +106 -0
  126. nemo_platform/cli/commands/api/inference/providers.py +612 -0
  127. nemo_platform/cli/commands/api/inference/virtual_models.py +412 -0
  128. nemo_platform/cli/commands/api/intake/__init__.py +18 -0
  129. nemo_platform/cli/commands/api/intake/apps/__init__.py +326 -0
  130. nemo_platform/cli/commands/api/intake/apps/tasks.py +340 -0
  131. nemo_platform/cli/commands/api/intake/entries/__init__.py +445 -0
  132. nemo_platform/cli/commands/api/intake/entries/events.py +118 -0
  133. nemo_platform/cli/commands/api/intake/evaluator_results.py +267 -0
  134. nemo_platform/cli/commands/api/intake/exports/__init__.py +63 -0
  135. nemo_platform/cli/commands/api/intake/exports/jobs.py +245 -0
  136. nemo_platform/cli/commands/api/intake/ingest/__init__.py +14 -0
  137. nemo_platform/cli/commands/api/intake/ingest/atif.py +115 -0
  138. nemo_platform/cli/commands/api/intake/ingest/chat_completions.py +125 -0
  139. nemo_platform/cli/commands/api/intake/ingest/otlp/__init__.py +12 -0
  140. nemo_platform/cli/commands/api/intake/ingest/otlp/v1/__init__.py +12 -0
  141. nemo_platform/cli/commands/api/intake/ingest/otlp/v1/traces.py +72 -0
  142. nemo_platform/cli/commands/api/intake/spans/__init__.py +202 -0
  143. nemo_platform/cli/commands/api/intake/spans/evaluator_results.py +65 -0
  144. nemo_platform/cli/commands/api/intake/traces.py +183 -0
  145. nemo_platform/cli/commands/api/jobs/__init__.py +576 -0
  146. nemo_platform/cli/commands/api/jobs/results.py +211 -0
  147. nemo_platform/cli/commands/api/jobs/steps.py +243 -0
  148. nemo_platform/cli/commands/api/jobs/tasks.py +210 -0
  149. nemo_platform/cli/commands/api/members.py +304 -0
  150. nemo_platform/cli/commands/api/models/__init__.py +555 -0
  151. nemo_platform/cli/commands/api/models/adapters.py +261 -0
  152. nemo_platform/cli/commands/api/projects.py +332 -0
  153. nemo_platform/cli/commands/api/safe_synthesizer/__init__.py +12 -0
  154. nemo_platform/cli/commands/api/safe_synthesizer/jobs/__init__.py +417 -0
  155. nemo_platform/cli/commands/api/safe_synthesizer/jobs/results.py +211 -0
  156. nemo_platform/cli/commands/api/secrets/__init__.py +315 -0
  157. nemo_platform/cli/commands/api/secrets/admin.py +44 -0
  158. nemo_platform/cli/commands/api/workspaces.py +339 -0
  159. nemo_platform/cli/commands/auth.py +803 -0
  160. nemo_platform/cli/commands/config.py +308 -0
  161. nemo_platform/cli/commands/docs.py +277 -0
  162. nemo_platform/cli/commands/manifest_registry.py +180 -0
  163. nemo_platform/cli/commands/plugins.py +87 -0
  164. nemo_platform/cli/commands/quickstart/__init__.py +15 -0
  165. nemo_platform/cli/commands/quickstart/cli.py +1178 -0
  166. nemo_platform/cli/commands/services/_process.py +472 -0
  167. nemo_platform/cli/commands/services/cli.py +694 -0
  168. nemo_platform/cli/commands/setup.py +1947 -0
  169. nemo_platform/cli/commands/skills/agents/claude.py +29 -0
  170. nemo_platform/cli/commands/skills/agents/codex.py +32 -0
  171. nemo_platform/cli/commands/skills/agents/cursor.py +18 -0
  172. nemo_platform/cli/commands/skills/agents/opencode.py +20 -0
  173. nemo_platform/cli/commands/skills/base.py +53 -0
  174. nemo_platform/cli/commands/skills/cli.py +313 -0
  175. nemo_platform/cli/commands/skills/installer.py +51 -0
  176. nemo_platform/cli/commands/skills/registry.py +396 -0
  177. nemo_platform/cli/commands/use_cases/__init__.py +15 -0
  178. nemo_platform/cli/commands/use_cases/agent.py +245 -0
  179. nemo_platform/cli/commands/use_cases/chat.py +965 -0
  180. nemo_platform/cli/commands/use_cases/wait.py +151 -0
  181. nemo_platform/cli/core/__init__.py +8 -0
  182. nemo_platform/cli/core/agent_helpers.py +84 -0
  183. nemo_platform/cli/core/api.py +160 -0
  184. nemo_platform/cli/core/autocomplete.py +63 -0
  185. nemo_platform/cli/core/code_generator.py +306 -0
  186. nemo_platform/cli/core/context.py +179 -0
  187. nemo_platform/cli/core/errors.py +349 -0
  188. nemo_platform/cli/core/formatters.py +718 -0
  189. nemo_platform/cli/core/help_formatter.py +868 -0
  190. nemo_platform/cli/core/lazy_load.py +187 -0
  191. nemo_platform/cli/core/logging.py +24 -0
  192. nemo_platform/cli/core/pagination.py +255 -0
  193. nemo_platform/cli/core/stdin_utils.py +233 -0
  194. nemo_platform/cli/core/streaming.py +30 -0
  195. nemo_platform/cli/core/table_config.py +302 -0
  196. nemo_platform/cli/core/timestamp_formatter.py +127 -0
  197. nemo_platform/cli/core/types.py +112 -0
  198. nemo_platform/cli/core/waiters.py +339 -0
  199. nemo_platform/cli/manifest.py +108 -0
  200. nemo_platform/client/__init__.py +15 -0
  201. nemo_platform/client/factory.py +597 -0
  202. nemo_platform/config/README.md +168 -0
  203. nemo_platform/config/__init__.py +23 -0
  204. nemo_platform/config/config.py +538 -0
  205. nemo_platform/config/models.py +377 -0
  206. nemo_platform/config/types.py +7 -0
  207. nemo_platform/filesets/__init__.py +19 -0
  208. nemo_platform/filesets/filesystem/callbacks.py +229 -0
  209. nemo_platform/filesets/filesystem/filesystem.py +940 -0
  210. nemo_platform/filesets/resources.py +1120 -0
  211. nemo_platform/lib/.keep +4 -0
  212. nemo_platform/models/__init__.py +14 -0
  213. nemo_platform/models/resources.py +836 -0
  214. nemo_platform/pagination.py +149 -0
  215. nemo_platform/py.typed +0 -0
  216. nemo_platform/quickstart/__init__.py +99 -0
  217. nemo_platform/quickstart/cluster.py +198 -0
  218. nemo_platform/quickstart/config.py +402 -0
  219. nemo_platform/quickstart/container.py +758 -0
  220. nemo_platform/quickstart/gpu_config.py +111 -0
  221. nemo_platform/quickstart/platform_config.py +82 -0
  222. nemo_platform/quickstart/preflight.py +451 -0
  223. nemo_platform/quickstart/prompts.py +426 -0
  224. nemo_platform/quickstart/storage.py +90 -0
  225. nemo_platform/quickstart/validators.py +268 -0
  226. nemo_platform/resources/__init__.py +16 -0
  227. nemo_platform/resources/adapters/__init__.py +34 -0
  228. nemo_platform/resources/adapters/adapters.py +704 -0
  229. nemo_platform/resources/adapters/api.md +15 -0
  230. nemo_platform/resources/audit/__init__.py +16 -0
  231. nemo_platform/resources/entities/__init__.py +34 -0
  232. nemo_platform/resources/entities/api.md +16 -0
  233. nemo_platform/resources/entities/entities.py +1014 -0
  234. nemo_platform/resources/evaluation/__init__.py +118 -0
  235. nemo_platform/resources/evaluation/api.md +303 -0
  236. nemo_platform/resources/evaluation/benchmark_job_results.py +541 -0
  237. nemo_platform/resources/evaluation/benchmark_jobs/__init__.py +48 -0
  238. nemo_platform/resources/evaluation/benchmark_jobs/benchmark_jobs.py +900 -0
  239. nemo_platform/resources/evaluation/benchmark_jobs/results/__init__.py +76 -0
  240. nemo_platform/resources/evaluation/benchmark_jobs/results/aggregate_scores.py +197 -0
  241. nemo_platform/resources/evaluation/benchmark_jobs/results/artifacts.py +206 -0
  242. nemo_platform/resources/evaluation/benchmark_jobs/results/results.py +516 -0
  243. nemo_platform/resources/evaluation/benchmark_jobs/results/row_scores.py +213 -0
  244. nemo_platform/resources/evaluation/benchmarks.py +690 -0
  245. nemo_platform/resources/evaluation/evaluation.py +277 -0
  246. nemo_platform/resources/evaluation/metric_job_results.py +533 -0
  247. nemo_platform/resources/evaluation/metric_jobs/__init__.py +48 -0
  248. nemo_platform/resources/evaluation/metric_jobs/metric_jobs.py +888 -0
  249. nemo_platform/resources/evaluation/metric_jobs/results/__init__.py +76 -0
  250. nemo_platform/resources/evaluation/metric_jobs/results/aggregate_scores.py +197 -0
  251. nemo_platform/resources/evaluation/metric_jobs/results/artifacts.py +206 -0
  252. nemo_platform/resources/evaluation/metric_jobs/results/results.py +512 -0
  253. nemo_platform/resources/evaluation/metric_jobs/results/row_scores.py +213 -0
  254. nemo_platform/resources/evaluation/metrics.py +3495 -0
  255. nemo_platform/resources/files/__init__.py +62 -0
  256. nemo_platform/resources/files/api.md +65 -0
  257. nemo_platform/resources/files/files.py +683 -0
  258. nemo_platform/resources/files/filesets.py +783 -0
  259. nemo_platform/resources/files/otlp/__init__.py +48 -0
  260. nemo_platform/resources/files/otlp/logs.py +337 -0
  261. nemo_platform/resources/files/otlp/otlp.py +117 -0
  262. nemo_platform/resources/guardrail/__init__.py +48 -0
  263. nemo_platform/resources/guardrail/api.md +116 -0
  264. nemo_platform/resources/guardrail/configs.py +679 -0
  265. nemo_platform/resources/guardrail/guardrail.py +463 -0
  266. nemo_platform/resources/iam/__init__.py +48 -0
  267. nemo_platform/resources/iam/api.md +22 -0
  268. nemo_platform/resources/iam/iam.py +117 -0
  269. nemo_platform/resources/iam/role_bindings.py +537 -0
  270. nemo_platform/resources/inference/__init__.py +118 -0
  271. nemo_platform/resources/inference/api.md +224 -0
  272. nemo_platform/resources/inference/deployment_configs/__init__.py +48 -0
  273. nemo_platform/resources/inference/deployment_configs/deployment_configs.py +756 -0
  274. nemo_platform/resources/inference/deployment_configs/versions.py +418 -0
  275. nemo_platform/resources/inference/deployments/__init__.py +48 -0
  276. nemo_platform/resources/inference/deployments/deployments.py +1017 -0
  277. nemo_platform/resources/inference/deployments/versions.py +434 -0
  278. nemo_platform/resources/inference/gateway/__init__.py +76 -0
  279. nemo_platform/resources/inference/gateway/gateway.py +181 -0
  280. nemo_platform/resources/inference/gateway/model.py +708 -0
  281. nemo_platform/resources/inference/gateway/openai/__init__.py +48 -0
  282. nemo_platform/resources/inference/gateway/openai/openai.py +700 -0
  283. nemo_platform/resources/inference/gateway/openai/v1/__init__.py +48 -0
  284. nemo_platform/resources/inference/gateway/openai/v1/models.py +290 -0
  285. nemo_platform/resources/inference/gateway/openai/v1/v1.py +117 -0
  286. nemo_platform/resources/inference/gateway/provider.py +749 -0
  287. nemo_platform/resources/inference/inference.py +277 -0
  288. nemo_platform/resources/inference/models.py +290 -0
  289. nemo_platform/resources/inference/providers.py +1049 -0
  290. nemo_platform/resources/inference/virtual_models.py +846 -0
  291. nemo_platform/resources/intake/__init__.py +132 -0
  292. nemo_platform/resources/intake/api.md +268 -0
  293. nemo_platform/resources/intake/apps/__init__.py +48 -0
  294. nemo_platform/resources/intake/apps/apps.py +718 -0
  295. nemo_platform/resources/intake/apps/tasks.py +731 -0
  296. nemo_platform/resources/intake/entries/__init__.py +48 -0
  297. nemo_platform/resources/intake/entries/entries.py +855 -0
  298. nemo_platform/resources/intake/entries/events.py +320 -0
  299. nemo_platform/resources/intake/evaluator_results.py +512 -0
  300. nemo_platform/resources/intake/exports/__init__.py +48 -0
  301. nemo_platform/resources/intake/exports/exports.py +229 -0
  302. nemo_platform/resources/intake/exports/jobs.py +464 -0
  303. nemo_platform/resources/intake/ingest/__init__.py +76 -0
  304. nemo_platform/resources/intake/ingest/atif.py +242 -0
  305. nemo_platform/resources/intake/ingest/chat_completions.py +270 -0
  306. nemo_platform/resources/intake/ingest/ingest.py +181 -0
  307. nemo_platform/resources/intake/ingest/otlp/__init__.py +48 -0
  308. nemo_platform/resources/intake/ingest/otlp/otlp.py +117 -0
  309. nemo_platform/resources/intake/ingest/otlp/v1/__init__.py +48 -0
  310. nemo_platform/resources/intake/ingest/otlp/v1/traces.py +183 -0
  311. nemo_platform/resources/intake/ingest/otlp/v1/v1.py +117 -0
  312. nemo_platform/resources/intake/intake.py +309 -0
  313. nemo_platform/resources/intake/spans/__init__.py +48 -0
  314. nemo_platform/resources/intake/spans/evaluator_results.py +197 -0
  315. nemo_platform/resources/intake/spans/spans.py +367 -0
  316. nemo_platform/resources/intake/traces.py +351 -0
  317. nemo_platform/resources/jobs/__init__.py +76 -0
  318. nemo_platform/resources/jobs/api.md +118 -0
  319. nemo_platform/resources/jobs/jobs.py +1300 -0
  320. nemo_platform/resources/jobs/results.py +555 -0
  321. nemo_platform/resources/jobs/steps.py +491 -0
  322. nemo_platform/resources/jobs/tasks.py +470 -0
  323. nemo_platform/resources/members/__init__.py +34 -0
  324. nemo_platform/resources/members/api.md +19 -0
  325. nemo_platform/resources/members/members.py +634 -0
  326. nemo_platform/resources/models/__init__.py +48 -0
  327. nemo_platform/resources/models/adapters.py +514 -0
  328. nemo_platform/resources/models/api.md +44 -0
  329. nemo_platform/resources/models/models.py +981 -0
  330. nemo_platform/resources/projects/__init__.py +34 -0
  331. nemo_platform/resources/projects/api.md +21 -0
  332. nemo_platform/resources/projects/projects.py +736 -0
  333. nemo_platform/resources/safe_synthesizer/__init__.py +48 -0
  334. nemo_platform/resources/safe_synthesizer/api.md +62 -0
  335. nemo_platform/resources/safe_synthesizer/jobs/__init__.py +48 -0
  336. nemo_platform/resources/safe_synthesizer/jobs/jobs.py +895 -0
  337. nemo_platform/resources/safe_synthesizer/jobs/results.py +819 -0
  338. nemo_platform/resources/safe_synthesizer/safe_synthesizer.py +117 -0
  339. nemo_platform/resources/secrets/__init__.py +48 -0
  340. nemo_platform/resources/secrets/admin.py +150 -0
  341. nemo_platform/resources/secrets/api.md +34 -0
  342. nemo_platform/resources/secrets/secrets.py +756 -0
  343. nemo_platform/resources/workspaces/__init__.py +34 -0
  344. nemo_platform/resources/workspaces/api.md +20 -0
  345. nemo_platform/resources/workspaces/workspaces.py +734 -0
  346. nemo_platform/skills/__init__.py +28 -0
  347. nemo_platform/skills/inference/SKILL.md +564 -0
  348. nemo_platform/skills/nemo-build-agent/SKILL.md +221 -0
  349. nemo_platform/skills/nemo-build-agent/references/templates/data-designer-config.py +80 -0
  350. nemo_platform/skills/nemo-evaluator/SKILL.md +140 -0
  351. nemo_platform/skills/nemo-explore/SKILL.md +70 -0
  352. nemo_platform/skills/nemo-files/SKILL.md +81 -0
  353. nemo_platform/skills/nemo-fine-tune/SKILL.md +43 -0
  354. nemo_platform/skills/nemo-guardrails/SKILL.md +519 -0
  355. nemo_platform/skills/nemo-secrets/SKILL.md +60 -0
  356. nemo_platform/skills/nemo-skill-selection/SKILL.md +146 -0
  357. nemo_platform/skills/nemo-spec/SKILL.md +76 -0
  358. nemo_platform/skills/nemo-spec/references/templates/agent-spec.md +68 -0
  359. nemo_platform/skills/nemo-status/SKILL.md +115 -0
  360. nemo_platform/skills/nemo-teardown/SKILL.md +185 -0
  361. nemo_platform/skills/nemo-try-agent/SKILL.md +102 -0
  362. nemo_platform/types/__init__.py +54 -0
  363. nemo_platform/types/adapters/__init__.py +24 -0
  364. nemo_platform/types/adapters/adapter_create_params.py +63 -0
  365. nemo_platform/types/adapters/adapter_entity_filter_param.py +56 -0
  366. nemo_platform/types/adapters/adapter_list_params.py +46 -0
  367. nemo_platform/types/adapters/adapter_patch_params.py +35 -0
  368. nemo_platform/types/adapters/adapters_page.py +37 -0
  369. nemo_platform/types/audit/__init__.py +18 -0
  370. nemo_platform/types/audit/jobs/__init__.py +18 -0
  371. nemo_platform/types/entities/__init__.py +26 -0
  372. nemo_platform/types/entities/entities_page.py +37 -0
  373. nemo_platform/types/entities/entity.py +63 -0
  374. nemo_platform/types/entities/entity_create_params.py +46 -0
  375. nemo_platform/types/entities/entity_delete_entity_by_name_params.py +31 -0
  376. nemo_platform/types/entities/entity_get_entity_by_name_params.py +31 -0
  377. nemo_platform/types/entities/entity_list_params.py +47 -0
  378. nemo_platform/types/entities/entity_update_entity_by_name_params.py +52 -0
  379. nemo_platform/types/evaluation/__init__.py +242 -0
  380. nemo_platform/types/evaluation/agent.py +68 -0
  381. nemo_platform/types/evaluation/agent_goal_accuracy_metric.py +92 -0
  382. nemo_platform/types/evaluation/agent_goal_accuracy_metric_param.py +69 -0
  383. nemo_platform/types/evaluation/agent_goal_accuracy_metric_param_param.py +70 -0
  384. nemo_platform/types/evaluation/agent_goal_accuracy_metric_response.py +88 -0
  385. nemo_platform/types/evaluation/agent_param.py +69 -0
  386. nemo_platform/types/evaluation/aggregate_range_score.py +65 -0
  387. nemo_platform/types/evaluation/aggregate_rubric_score.py +64 -0
  388. nemo_platform/types/evaluation/aggregated_metric_result.py +34 -0
  389. nemo_platform/types/evaluation/answer_accuracy_metric.py +89 -0
  390. nemo_platform/types/evaluation/answer_accuracy_metric_param.py +66 -0
  391. nemo_platform/types/evaluation/answer_accuracy_metric_param_param.py +67 -0
  392. nemo_platform/types/evaluation/answer_accuracy_metric_response.py +85 -0
  393. nemo_platform/types/evaluation/benchmark.py +81 -0
  394. nemo_platform/types/evaluation/benchmark_create_params.py +64 -0
  395. nemo_platform/types/evaluation/benchmark_create_response.py +26 -0
  396. nemo_platform/types/evaluation/benchmark_evaluation_job.py +75 -0
  397. nemo_platform/types/evaluation/benchmark_evaluation_jobs_list_filter_param.py +49 -0
  398. nemo_platform/types/evaluation/benchmark_evaluation_jobs_page.py +37 -0
  399. nemo_platform/types/evaluation/benchmark_evaluation_jobs_sort_field.py +22 -0
  400. nemo_platform/types/evaluation/benchmark_job_create_params.py +58 -0
  401. nemo_platform/types/evaluation/benchmark_job_get_logs_params.py +30 -0
  402. nemo_platform/types/evaluation/benchmark_job_list_params.py +44 -0
  403. nemo_platform/types/evaluation/benchmark_job_result.py +93 -0
  404. nemo_platform/types/evaluation/benchmark_job_result_list_params.py +116 -0
  405. nemo_platform/types/evaluation/benchmark_job_result_retrieve_params.py +50 -0
  406. nemo_platform/types/evaluation/benchmark_job_results_list_response.py +37 -0
  407. nemo_platform/types/evaluation/benchmark_jobs/__init__.py +18 -0
  408. nemo_platform/types/evaluation/benchmark_jobs/results/__init__.py +22 -0
  409. nemo_platform/types/evaluation/benchmark_jobs/results/benchmark_evaluation_result.py +30 -0
  410. nemo_platform/types/evaluation/benchmark_jobs/results/benchmark_metric_result.py +44 -0
  411. nemo_platform/types/evaluation/benchmark_jobs/results/row_score_download_params.py +28 -0
  412. nemo_platform/types/evaluation/benchmark_list_params.py +84 -0
  413. nemo_platform/types/evaluation/benchmark_offline_job.py +43 -0
  414. nemo_platform/types/evaluation/benchmark_offline_job_param.py +44 -0
  415. nemo_platform/types/evaluation/benchmark_online_agent_job.py +71 -0
  416. nemo_platform/types/evaluation/benchmark_online_agent_job_param.py +74 -0
  417. nemo_platform/types/evaluation/benchmark_online_job.py +66 -0
  418. nemo_platform/types/evaluation/benchmark_online_job_param.py +68 -0
  419. nemo_platform/types/evaluation/benchmark_ref.py +22 -0
  420. nemo_platform/types/evaluation/benchmark_retrieve_params.py +29 -0
  421. nemo_platform/types/evaluation/benchmark_retrieve_response.py +27 -0
  422. nemo_platform/types/evaluation/benchmarks_list_response.py +42 -0
  423. nemo_platform/types/evaluation/bleu_metric.py +76 -0
  424. nemo_platform/types/evaluation/bleu_metric_param.py +50 -0
  425. nemo_platform/types/evaluation/bleu_metric_param_param.py +52 -0
  426. nemo_platform/types/evaluation/bleu_metric_response.py +69 -0
  427. nemo_platform/types/evaluation/built_in_dataset.py +46 -0
  428. nemo_platform/types/evaluation/context_entity_recall_metric.py +89 -0
  429. nemo_platform/types/evaluation/context_entity_recall_metric_param.py +66 -0
  430. nemo_platform/types/evaluation/context_entity_recall_metric_param_param.py +67 -0
  431. nemo_platform/types/evaluation/context_entity_recall_metric_response.py +85 -0
  432. nemo_platform/types/evaluation/context_precision_metric.py +89 -0
  433. nemo_platform/types/evaluation/context_precision_metric_param.py +66 -0
  434. nemo_platform/types/evaluation/context_precision_metric_param_param.py +67 -0
  435. nemo_platform/types/evaluation/context_precision_metric_response.py +85 -0
  436. nemo_platform/types/evaluation/context_recall_metric.py +89 -0
  437. nemo_platform/types/evaluation/context_recall_metric_param.py +66 -0
  438. nemo_platform/types/evaluation/context_recall_metric_param_param.py +67 -0
  439. nemo_platform/types/evaluation/context_recall_metric_response.py +85 -0
  440. nemo_platform/types/evaluation/context_relevance_metric.py +89 -0
  441. nemo_platform/types/evaluation/context_relevance_metric_param.py +66 -0
  442. nemo_platform/types/evaluation/context_relevance_metric_param_param.py +67 -0
  443. nemo_platform/types/evaluation/context_relevance_metric_response.py +85 -0
  444. nemo_platform/types/evaluation/dataset_rows.py +35 -0
  445. nemo_platform/types/evaluation/dataset_rows_param.py +36 -0
  446. nemo_platform/types/evaluation/evaluate_dataset_rows_param.py +33 -0
  447. nemo_platform/types/evaluation/exact_match_metric.py +79 -0
  448. nemo_platform/types/evaluation/exact_match_metric_param.py +53 -0
  449. nemo_platform/types/evaluation/exact_match_metric_param_param.py +53 -0
  450. nemo_platform/types/evaluation/exact_match_metric_response.py +72 -0
  451. nemo_platform/types/evaluation/extended_benchmark.py +130 -0
  452. nemo_platform/types/evaluation/f1_metric.py +76 -0
  453. nemo_platform/types/evaluation/f1_metric_param.py +50 -0
  454. nemo_platform/types/evaluation/f1_metric_param_param.py +50 -0
  455. nemo_platform/types/evaluation/f1_metric_response.py +69 -0
  456. nemo_platform/types/evaluation/faithfulness_metric.py +89 -0
  457. nemo_platform/types/evaluation/faithfulness_metric_param.py +66 -0
  458. nemo_platform/types/evaluation/faithfulness_metric_param_param.py +67 -0
  459. nemo_platform/types/evaluation/faithfulness_metric_response.py +85 -0
  460. nemo_platform/types/evaluation/field_mapping.py +56 -0
  461. nemo_platform/types/evaluation/field_mapping_param.py +57 -0
  462. nemo_platform/types/evaluation/fileset.py +48 -0
  463. nemo_platform/types/evaluation/fileset_param.py +49 -0
  464. nemo_platform/types/evaluation/fileset_ref.py +22 -0
  465. nemo_platform/types/evaluation/histogram.py +30 -0
  466. nemo_platform/types/evaluation/histogram_bin.py +33 -0
  467. nemo_platform/types/evaluation/inference_params.py +65 -0
  468. nemo_platform/types/evaluation/inference_params_param.py +53 -0
  469. nemo_platform/types/evaluation/json_score_parser.py +35 -0
  470. nemo_platform/types/evaluation/json_score_parser_param.py +34 -0
  471. nemo_platform/types/evaluation/llm_judge_metric.py +126 -0
  472. nemo_platform/types/evaluation/llm_judge_metric_param.py +103 -0
  473. nemo_platform/types/evaluation/llm_judge_metric_param_param.py +105 -0
  474. nemo_platform/types/evaluation/llm_judge_metric_response.py +120 -0
  475. nemo_platform/types/evaluation/metric_create_params.py +959 -0
  476. nemo_platform/types/evaluation/metric_create_response.py +75 -0
  477. nemo_platform/types/evaluation/metric_evaluate_params.py +111 -0
  478. nemo_platform/types/evaluation/metric_evaluation_job.py +65 -0
  479. nemo_platform/types/evaluation/metric_evaluation_jobs_list_filter_param.py +49 -0
  480. nemo_platform/types/evaluation/metric_evaluation_jobs_page.py +37 -0
  481. nemo_platform/types/evaluation/metric_evaluation_jobs_sort_field.py +22 -0
  482. nemo_platform/types/evaluation/metric_evaluation_response.py +98 -0
  483. nemo_platform/types/evaluation/metric_evaluation_row_score.py +45 -0
  484. nemo_platform/types/evaluation/metric_job_create_params.py +48 -0
  485. nemo_platform/types/evaluation/metric_job_get_logs_params.py +30 -0
  486. nemo_platform/types/evaluation/metric_job_list_params.py +44 -0
  487. nemo_platform/types/evaluation/metric_job_result.py +93 -0
  488. nemo_platform/types/evaluation/metric_job_result_list_params.py +114 -0
  489. nemo_platform/types/evaluation/metric_job_result_retrieve_params.py +50 -0
  490. nemo_platform/types/evaluation/metric_job_results_list_response.py +37 -0
  491. nemo_platform/types/evaluation/metric_jobs/__init__.py +18 -0
  492. nemo_platform/types/evaluation/metric_jobs/results/__init__.py +20 -0
  493. nemo_platform/types/evaluation/metric_jobs/results/row_score_download_params.py +28 -0
  494. nemo_platform/types/evaluation/metric_list_params.py +73 -0
  495. nemo_platform/types/evaluation/metric_offline_job.py +106 -0
  496. nemo_platform/types/evaluation/metric_offline_job_param.py +107 -0
  497. nemo_platform/types/evaluation/metric_online_agent_job.py +133 -0
  498. nemo_platform/types/evaluation/metric_online_agent_job_param.py +135 -0
  499. nemo_platform/types/evaluation/metric_online_job.py +127 -0
  500. nemo_platform/types/evaluation/metric_online_job_param.py +129 -0
  501. nemo_platform/types/evaluation/metric_output.py +30 -0
  502. nemo_platform/types/evaluation/metric_ref.py +22 -0
  503. nemo_platform/types/evaluation/metric_retrieve_response.py +98 -0
  504. nemo_platform/types/evaluation/metric_retriever_job.py +64 -0
  505. nemo_platform/types/evaluation/metric_retriever_job_param.py +65 -0
  506. nemo_platform/types/evaluation/metric_type.py +47 -0
  507. nemo_platform/types/evaluation/metrics_list_response.py +90 -0
  508. nemo_platform/types/evaluation/model.py +44 -0
  509. nemo_platform/types/evaluation/model_param.py +44 -0
  510. nemo_platform/types/evaluation/model_ref.py +22 -0
  511. nemo_platform/types/evaluation/nemo_agent_toolkit_remote_metric.py +87 -0
  512. nemo_platform/types/evaluation/nemo_agent_toolkit_remote_metric_param.py +64 -0
  513. nemo_platform/types/evaluation/nemo_agent_toolkit_remote_metric_param_param.py +65 -0
  514. nemo_platform/types/evaluation/nemo_agent_toolkit_remote_metric_response.py +80 -0
  515. nemo_platform/types/evaluation/noise_sensitivity_metric.py +89 -0
  516. nemo_platform/types/evaluation/noise_sensitivity_metric_param.py +66 -0
  517. nemo_platform/types/evaluation/noise_sensitivity_metric_param_param.py +67 -0
  518. nemo_platform/types/evaluation/noise_sensitivity_metric_response.py +85 -0
  519. nemo_platform/types/evaluation/number_check_metric.py +104 -0
  520. nemo_platform/types/evaluation/number_check_metric_param.py +81 -0
  521. nemo_platform/types/evaluation/number_check_metric_param_param.py +83 -0
  522. nemo_platform/types/evaluation/number_check_metric_response.py +97 -0
  523. nemo_platform/types/evaluation/parameter.py +42 -0
  524. nemo_platform/types/evaluation/parameter_param.py +40 -0
  525. nemo_platform/types/evaluation/percentiles.py +54 -0
  526. nemo_platform/types/evaluation/range_score.py +56 -0
  527. nemo_platform/types/evaluation/range_score_param.py +57 -0
  528. nemo_platform/types/evaluation/reasoning_params.py +41 -0
  529. nemo_platform/types/evaluation/reasoning_params_param.py +41 -0
  530. nemo_platform/types/evaluation/regex_score_parser.py +38 -0
  531. nemo_platform/types/evaluation/regex_score_parser_param.py +37 -0
  532. nemo_platform/types/evaluation/remote_metric.py +91 -0
  533. nemo_platform/types/evaluation/remote_metric_param.py +68 -0
  534. nemo_platform/types/evaluation/remote_metric_param_param.py +69 -0
  535. nemo_platform/types/evaluation/remote_metric_response.py +84 -0
  536. nemo_platform/types/evaluation/remote_score.py +49 -0
  537. nemo_platform/types/evaluation/remote_score_param.py +50 -0
  538. nemo_platform/types/evaluation/response_groundedness_metric.py +89 -0
  539. nemo_platform/types/evaluation/response_groundedness_metric_param.py +66 -0
  540. nemo_platform/types/evaluation/response_groundedness_metric_param_param.py +67 -0
  541. nemo_platform/types/evaluation/response_groundedness_metric_response.py +85 -0
  542. nemo_platform/types/evaluation/response_relevancy_metric.py +95 -0
  543. nemo_platform/types/evaluation/response_relevancy_metric_param.py +74 -0
  544. nemo_platform/types/evaluation/response_relevancy_metric_param_param.py +75 -0
  545. nemo_platform/types/evaluation/response_relevancy_metric_response.py +93 -0
  546. nemo_platform/types/evaluation/retriever_pipeline.py +34 -0
  547. nemo_platform/types/evaluation/retriever_pipeline_param.py +35 -0
  548. nemo_platform/types/evaluation/rouge_metric.py +76 -0
  549. nemo_platform/types/evaluation/rouge_metric_param.py +53 -0
  550. nemo_platform/types/evaluation/rouge_metric_param_param.py +53 -0
  551. nemo_platform/types/evaluation/rouge_metric_response.py +69 -0
  552. nemo_platform/types/evaluation/row_score.py +59 -0
  553. nemo_platform/types/evaluation/rubric.py +40 -0
  554. nemo_platform/types/evaluation/rubric_param.py +40 -0
  555. nemo_platform/types/evaluation/rubric_score.py +54 -0
  556. nemo_platform/types/evaluation/rubric_score_param.py +55 -0
  557. nemo_platform/types/evaluation/rubric_score_stat.py +38 -0
  558. nemo_platform/types/evaluation/run_config.py +39 -0
  559. nemo_platform/types/evaluation/run_config_online.py +51 -0
  560. nemo_platform/types/evaluation/run_config_online_model.py +73 -0
  561. nemo_platform/types/evaluation/run_config_online_model_param.py +75 -0
  562. nemo_platform/types/evaluation/run_config_online_param.py +51 -0
  563. nemo_platform/types/evaluation/run_config_param.py +39 -0
  564. nemo_platform/types/evaluation/string_check_metric.py +82 -0
  565. nemo_platform/types/evaluation/string_check_metric_param.py +59 -0
  566. nemo_platform/types/evaluation/string_check_metric_param_param.py +61 -0
  567. nemo_platform/types/evaluation/string_check_metric_response.py +75 -0
  568. nemo_platform/types/evaluation/system_benchmark.py +71 -0
  569. nemo_platform/types/evaluation/system_benchmark_offline_job.py +58 -0
  570. nemo_platform/types/evaluation/system_benchmark_offline_job_param.py +60 -0
  571. nemo_platform/types/evaluation/system_benchmark_online_job.py +54 -0
  572. nemo_platform/types/evaluation/system_benchmark_online_job_param.py +55 -0
  573. nemo_platform/types/evaluation/system_metric.py +70 -0
  574. nemo_platform/types/evaluation/system_metric_param.py +50 -0
  575. nemo_platform/types/evaluation/system_metric_param_param.py +51 -0
  576. nemo_platform/types/evaluation/system_metric_response.py +66 -0
  577. nemo_platform/types/evaluation/tool_call_accuracy_metric.py +70 -0
  578. nemo_platform/types/evaluation/tool_call_accuracy_metric_param.py +44 -0
  579. nemo_platform/types/evaluation/tool_call_accuracy_metric_param_param.py +44 -0
  580. nemo_platform/types/evaluation/tool_call_accuracy_metric_response.py +63 -0
  581. nemo_platform/types/evaluation/tool_calling_metric.py +70 -0
  582. nemo_platform/types/evaluation/tool_calling_metric_param.py +47 -0
  583. nemo_platform/types/evaluation/tool_calling_metric_param_param.py +47 -0
  584. nemo_platform/types/evaluation/tool_calling_metric_response.py +63 -0
  585. nemo_platform/types/evaluation/topic_adherence_metric.py +92 -0
  586. nemo_platform/types/evaluation/topic_adherence_metric_param.py +69 -0
  587. nemo_platform/types/evaluation/topic_adherence_metric_param_param.py +70 -0
  588. nemo_platform/types/evaluation/topic_adherence_metric_response.py +88 -0
  589. nemo_platform/types/files/__init__.py +45 -0
  590. nemo_platform/types/files/cache_status.py +22 -0
  591. nemo_platform/types/files/dataset_metadata_content.py +46 -0
  592. nemo_platform/types/files/dataset_metadata_content_param.py +45 -0
  593. nemo_platform/types/files/file_list_files_params.py +35 -0
  594. nemo_platform/types/files/file_upload_file_params.py +28 -0
  595. nemo_platform/types/files/fileset.py +62 -0
  596. nemo_platform/types/files/fileset_create_params.py +74 -0
  597. nemo_platform/types/files/fileset_file.py +36 -0
  598. nemo_platform/types/files/fileset_filter_param.py +54 -0
  599. nemo_platform/types/files/fileset_list_params.py +47 -0
  600. nemo_platform/types/files/fileset_metadata_param.py +46 -0
  601. nemo_platform/types/files/fileset_metadata_param_param.py +47 -0
  602. nemo_platform/types/files/fileset_outputs_page.py +37 -0
  603. nemo_platform/types/files/fileset_purpose.py +22 -0
  604. nemo_platform/types/files/fileset_update_params.py +49 -0
  605. nemo_platform/types/files/huggingface_storage_config.py +60 -0
  606. nemo_platform/types/files/huggingface_storage_config_param.py +60 -0
  607. nemo_platform/types/files/list_fileset_files_response.py +27 -0
  608. nemo_platform/types/files/local_storage_config.py +39 -0
  609. nemo_platform/types/files/local_storage_config_param.py +38 -0
  610. nemo_platform/types/files/ngc_storage_config.py +66 -0
  611. nemo_platform/types/files/ngc_storage_config_param.py +66 -0
  612. nemo_platform/types/files/otlp/__init__.py +22 -0
  613. nemo_platform/types/files/otlp/log_query_params.py +36 -0
  614. nemo_platform/types/files/otlp/otel_export_logs_partial_success.py +34 -0
  615. nemo_platform/types/files/otlp/otel_export_logs_service_response.py +35 -0
  616. nemo_platform/types/files/s3_storage_config.py +85 -0
  617. nemo_platform/types/files/s3_storage_config_param.py +85 -0
  618. nemo_platform/types/files/secret_ref.py +22 -0
  619. nemo_platform/types/files/storage_config_type.py +22 -0
  620. nemo_platform/types/guardrail/__init__.py +165 -0
  621. nemo_platform/types/guardrail/action_rails.py +36 -0
  622. nemo_platform/types/guardrail/action_rails_param.py +38 -0
  623. nemo_platform/types/guardrail/activated_rail.py +61 -0
  624. nemo_platform/types/guardrail/ai_defense_rail_config.py +36 -0
  625. nemo_platform/types/guardrail/ai_defense_rail_config_param.py +36 -0
  626. nemo_platform/types/guardrail/auto_align_options.py +29 -0
  627. nemo_platform/types/guardrail/auto_align_options_param.py +30 -0
  628. nemo_platform/types/guardrail/auto_align_rail_config.py +35 -0
  629. nemo_platform/types/guardrail/auto_align_rail_config_param.py +37 -0
  630. nemo_platform/types/guardrail/cache_stats_config.py +32 -0
  631. nemo_platform/types/guardrail/cache_stats_config_param.py +32 -0
  632. nemo_platform/types/guardrail/chat_completion_assistant_message_param.py +45 -0
  633. nemo_platform/types/guardrail/chat_completion_content_part_image_param.py +34 -0
  634. nemo_platform/types/guardrail/chat_completion_content_part_text_param.py +32 -0
  635. nemo_platform/types/guardrail/chat_completion_function_message_param.py +35 -0
  636. nemo_platform/types/guardrail/chat_completion_message_tool_call_param.py +37 -0
  637. nemo_platform/types/guardrail/chat_completion_system_message_param.py +35 -0
  638. nemo_platform/types/guardrail/chat_completion_tool_message_param.py +35 -0
  639. nemo_platform/types/guardrail/chat_completion_user_message_param.py +41 -0
  640. nemo_platform/types/guardrail/clavata_rail_config.py +47 -0
  641. nemo_platform/types/guardrail/clavata_rail_config_param.py +48 -0
  642. nemo_platform/types/guardrail/clavata_rail_options.py +36 -0
  643. nemo_platform/types/guardrail/clavata_rail_options_param.py +38 -0
  644. nemo_platform/types/guardrail/config_create_params.py +36 -0
  645. nemo_platform/types/guardrail/config_list_params.py +47 -0
  646. nemo_platform/types/guardrail/config_update_params.py +33 -0
  647. nemo_platform/types/guardrail/content_safety_config.py +34 -0
  648. nemo_platform/types/guardrail/content_safety_config_param.py +35 -0
  649. nemo_platform/types/guardrail/crowd_strike_aidr_rail_config.py +29 -0
  650. nemo_platform/types/guardrail/crowd_strike_aidr_rail_config_param.py +29 -0
  651. nemo_platform/types/guardrail/dialog_rails.py +34 -0
  652. nemo_platform/types/guardrail/dialog_rails_param.py +35 -0
  653. nemo_platform/types/guardrail/executed_action.py +48 -0
  654. nemo_platform/types/guardrail/fact_checking_rail_config.py +31 -0
  655. nemo_platform/types/guardrail/fact_checking_rail_config_param.py +32 -0
  656. nemo_platform/types/guardrail/fiddler_guardrails.py +35 -0
  657. nemo_platform/types/guardrail/fiddler_guardrails_param.py +35 -0
  658. nemo_platform/types/guardrail/function_call_param.py +35 -0
  659. nemo_platform/types/guardrail/function_param.py +35 -0
  660. nemo_platform/types/guardrail/g_li_ner_detection.py +51 -0
  661. nemo_platform/types/guardrail/g_li_ner_detection_options.py +29 -0
  662. nemo_platform/types/guardrail/g_li_ner_detection_options_param.py +31 -0
  663. nemo_platform/types/guardrail/g_li_ner_detection_param.py +52 -0
  664. nemo_platform/types/guardrail/generation_log.py +44 -0
  665. nemo_platform/types/guardrail/generation_log_options_param.py +50 -0
  666. nemo_platform/types/guardrail/generation_options_param.py +55 -0
  667. nemo_platform/types/guardrail/generation_rails_options_param.py +53 -0
  668. nemo_platform/types/guardrail/generation_stats.py +56 -0
  669. nemo_platform/types/guardrail/guardrail_check_params.py +164 -0
  670. nemo_platform/types/guardrail/guardrail_check_response.py +36 -0
  671. nemo_platform/types/guardrail/guardrail_config.py +59 -0
  672. nemo_platform/types/guardrail/guardrail_config_filter_param.py +49 -0
  673. nemo_platform/types/guardrail/guardrail_configs_page.py +37 -0
  674. nemo_platform/types/guardrail/guardrails_ai_rail_config.py +33 -0
  675. nemo_platform/types/guardrail/guardrails_ai_rail_config_param.py +35 -0
  676. nemo_platform/types/guardrail/guardrails_ai_validator_config.py +44 -0
  677. nemo_platform/types/guardrail/guardrails_ai_validator_config_param.py +45 -0
  678. nemo_platform/types/guardrail/guardrails_data.py +40 -0
  679. nemo_platform/types/guardrail/guardrails_data_param.py +67 -0
  680. nemo_platform/types/guardrail/image_u_rl_param.py +32 -0
  681. nemo_platform/types/guardrail/injection_detection.py +49 -0
  682. nemo_platform/types/guardrail/injection_detection_param.py +52 -0
  683. nemo_platform/types/guardrail/input_rails.py +32 -0
  684. nemo_platform/types/guardrail/input_rails_param.py +34 -0
  685. nemo_platform/types/guardrail/instruction.py +30 -0
  686. nemo_platform/types/guardrail/instruction_param.py +32 -0
  687. nemo_platform/types/guardrail/jailbreak_detection_config.py +52 -0
  688. nemo_platform/types/guardrail/jailbreak_detection_config_param.py +58 -0
  689. nemo_platform/types/guardrail/llm_call_info.py +63 -0
  690. nemo_platform/types/guardrail/log_adapter_config.py +41 -0
  691. nemo_platform/types/guardrail/log_adapter_config_param.py +27 -0
  692. nemo_platform/types/guardrail/message_template.py +30 -0
  693. nemo_platform/types/guardrail/message_template_param.py +32 -0
  694. nemo_platform/types/guardrail/model.py +55 -0
  695. nemo_platform/types/guardrail/model_cache_config.py +36 -0
  696. nemo_platform/types/guardrail/model_cache_config_param.py +37 -0
  697. nemo_platform/types/guardrail/model_param.py +55 -0
  698. nemo_platform/types/guardrail/model_parameters.py +51 -0
  699. nemo_platform/types/guardrail/model_parameters_param.py +38 -0
  700. nemo_platform/types/guardrail/multilingual_config.py +40 -0
  701. nemo_platform/types/guardrail/multilingual_config_param.py +41 -0
  702. nemo_platform/types/guardrail/output_rails.py +44 -0
  703. nemo_platform/types/guardrail/output_rails_param.py +46 -0
  704. nemo_platform/types/guardrail/output_rails_streaming_config.py +44 -0
  705. nemo_platform/types/guardrail/output_rails_streaming_config_param.py +44 -0
  706. nemo_platform/types/guardrail/pangea_rail_config.py +33 -0
  707. nemo_platform/types/guardrail/pangea_rail_config_param.py +34 -0
  708. nemo_platform/types/guardrail/pangea_rail_options.py +31 -0
  709. nemo_platform/types/guardrail/pangea_rail_options_param.py +33 -0
  710. nemo_platform/types/guardrail/patronus_evaluate_api_params.py +38 -0
  711. nemo_platform/types/guardrail/patronus_evaluate_api_params_param.py +40 -0
  712. nemo_platform/types/guardrail/patronus_evaluate_config.py +30 -0
  713. nemo_platform/types/guardrail/patronus_evaluate_config_param.py +31 -0
  714. nemo_platform/types/guardrail/patronus_evaluation_success_strategy.py +22 -0
  715. nemo_platform/types/guardrail/patronus_rail_config.py +33 -0
  716. nemo_platform/types/guardrail/patronus_rail_config_param.py +34 -0
  717. nemo_platform/types/guardrail/private_ai_detection.py +39 -0
  718. nemo_platform/types/guardrail/private_ai_detection_options.py +29 -0
  719. nemo_platform/types/guardrail/private_ai_detection_options_param.py +31 -0
  720. nemo_platform/types/guardrail/private_ai_detection_param.py +40 -0
  721. nemo_platform/types/guardrail/rail_status.py +26 -0
  722. nemo_platform/types/guardrail/rails.py +73 -0
  723. nemo_platform/types/guardrail/rails_config.py +79 -0
  724. nemo_platform/types/guardrail/rails_config_data.py +94 -0
  725. nemo_platform/types/guardrail/rails_config_data_param.py +95 -0
  726. nemo_platform/types/guardrail/rails_config_param.py +81 -0
  727. nemo_platform/types/guardrail/rails_param.py +74 -0
  728. nemo_platform/types/guardrail/reasoning_config.py +32 -0
  729. nemo_platform/types/guardrail/reasoning_config_param.py +32 -0
  730. nemo_platform/types/guardrail/regex_detection.py +36 -0
  731. nemo_platform/types/guardrail/regex_detection_options.py +32 -0
  732. nemo_platform/types/guardrail/regex_detection_options_param.py +34 -0
  733. nemo_platform/types/guardrail/regex_detection_param.py +37 -0
  734. nemo_platform/types/guardrail/retrieval_rails.py +29 -0
  735. nemo_platform/types/guardrail/retrieval_rails_param.py +31 -0
  736. nemo_platform/types/guardrail/sensitive_data_detection.py +43 -0
  737. nemo_platform/types/guardrail/sensitive_data_detection_options.py +37 -0
  738. nemo_platform/types/guardrail/sensitive_data_detection_options_param.py +39 -0
  739. nemo_platform/types/guardrail/sensitive_data_detection_param.py +45 -0
  740. nemo_platform/types/guardrail/single_call_config.py +31 -0
  741. nemo_platform/types/guardrail/single_call_config_param.py +31 -0
  742. nemo_platform/types/guardrail/status_enum.py +22 -0
  743. nemo_platform/types/guardrail/task_prompt.py +63 -0
  744. nemo_platform/types/guardrail/task_prompt_param.py +65 -0
  745. nemo_platform/types/guardrail/tool_input_rails.py +36 -0
  746. nemo_platform/types/guardrail/tool_input_rails_param.py +38 -0
  747. nemo_platform/types/guardrail/tool_output_rails.py +36 -0
  748. nemo_platform/types/guardrail/tool_output_rails_param.py +38 -0
  749. nemo_platform/types/guardrail/tracing_config.py +48 -0
  750. nemo_platform/types/guardrail/tracing_config_param.py +50 -0
  751. nemo_platform/types/guardrail/trend_micro_rail_config.py +51 -0
  752. nemo_platform/types/guardrail/trend_micro_rail_config_param.py +51 -0
  753. nemo_platform/types/guardrail/user_messages_config.py +42 -0
  754. nemo_platform/types/guardrail/user_messages_config_param.py +42 -0
  755. nemo_platform/types/iam/__init__.py +26 -0
  756. nemo_platform/types/iam/date_range_filter_param.py +36 -0
  757. nemo_platform/types/iam/role_binding.py +42 -0
  758. nemo_platform/types/iam/role_binding_create_params.py +39 -0
  759. nemo_platform/types/iam/role_binding_delete_params.py +30 -0
  760. nemo_platform/types/iam/role_binding_filter_param.py +49 -0
  761. nemo_platform/types/iam/role_binding_list_params.py +44 -0
  762. nemo_platform/types/iam/role_bindings_page.py +37 -0
  763. nemo_platform/types/inference/__init__.py +60 -0
  764. nemo_platform/types/inference/deployment_config_create_params.py +47 -0
  765. nemo_platform/types/inference/deployment_config_list_params.py +46 -0
  766. nemo_platform/types/inference/deployment_config_update_params.py +37 -0
  767. nemo_platform/types/inference/deployment_configs/__init__.py +20 -0
  768. nemo_platform/types/inference/deployment_configs/version_list_response.py +25 -0
  769. nemo_platform/types/inference/deployment_create_params.py +45 -0
  770. nemo_platform/types/inference/deployment_list_models_response.py +23 -0
  771. nemo_platform/types/inference/deployment_list_params.py +52 -0
  772. nemo_platform/types/inference/deployment_update_params.py +35 -0
  773. nemo_platform/types/inference/deployment_update_status_params.py +42 -0
  774. nemo_platform/types/inference/deployments/__init__.py +20 -0
  775. nemo_platform/types/inference/deployments/version_list_response.py +25 -0
  776. nemo_platform/types/inference/gateway/__init__.py +38 -0
  777. nemo_platform/types/inference/gateway/model_patch_params.py +31 -0
  778. nemo_platform/types/inference/gateway/model_patch_response.py +23 -0
  779. nemo_platform/types/inference/gateway/model_post_params.py +31 -0
  780. nemo_platform/types/inference/gateway/model_post_response.py +23 -0
  781. nemo_platform/types/inference/gateway/model_put_params.py +31 -0
  782. nemo_platform/types/inference/gateway/model_put_response.py +23 -0
  783. nemo_platform/types/inference/gateway/openai/__init__.py +18 -0
  784. nemo_platform/types/inference/gateway/openai/v1/__init__.py +21 -0
  785. nemo_platform/types/inference/gateway/openai/v1/openai_list_models_resp.py +31 -0
  786. nemo_platform/types/inference/gateway/openai/v1/openai_model_resp.py +34 -0
  787. nemo_platform/types/inference/gateway/openai_patch_params.py +29 -0
  788. nemo_platform/types/inference/gateway/openai_patch_response.py +23 -0
  789. nemo_platform/types/inference/gateway/openai_post_params.py +29 -0
  790. nemo_platform/types/inference/gateway/openai_post_response.py +23 -0
  791. nemo_platform/types/inference/gateway/openai_put_params.py +29 -0
  792. nemo_platform/types/inference/gateway/openai_put_response.py +23 -0
  793. nemo_platform/types/inference/gateway/provider_patch_params.py +31 -0
  794. nemo_platform/types/inference/gateway/provider_patch_response.py +23 -0
  795. nemo_platform/types/inference/gateway/provider_post_params.py +31 -0
  796. nemo_platform/types/inference/gateway/provider_post_response.py +23 -0
  797. nemo_platform/types/inference/gateway/provider_put_params.py +31 -0
  798. nemo_platform/types/inference/gateway/provider_put_response.py +23 -0
  799. nemo_platform/types/inference/gateway/provider_ready_response.py +23 -0
  800. nemo_platform/types/inference/k8s_nim_operator_config.py +57 -0
  801. nemo_platform/types/inference/k8s_nim_operator_config_param.py +58 -0
  802. nemo_platform/types/inference/middleware_call.py +55 -0
  803. nemo_platform/types/inference/middleware_call_param.py +56 -0
  804. nemo_platform/types/inference/model_deployment.py +97 -0
  805. nemo_platform/types/inference/model_deployment_config.py +76 -0
  806. nemo_platform/types/inference/model_deployment_config_filter_param.py +49 -0
  807. nemo_platform/types/inference/model_deployment_configs_page.py +37 -0
  808. nemo_platform/types/inference/model_deployment_filter_param.py +56 -0
  809. nemo_platform/types/inference/model_deployment_status.py +24 -0
  810. nemo_platform/types/inference/model_deployment_status_history_item.py +37 -0
  811. nemo_platform/types/inference/model_deployments_page.py +37 -0
  812. nemo_platform/types/inference/model_provider.py +134 -0
  813. nemo_platform/types/inference/model_provider_filter_param.py +56 -0
  814. nemo_platform/types/inference/model_provider_sort.py +24 -0
  815. nemo_platform/types/inference/model_provider_status.py +24 -0
  816. nemo_platform/types/inference/model_providers_page.py +37 -0
  817. nemo_platform/types/inference/model_type.py +22 -0
  818. nemo_platform/types/inference/nim_deployment.py +96 -0
  819. nemo_platform/types/inference/nim_deployment_param.py +93 -0
  820. nemo_platform/types/inference/provider_create_params.py +94 -0
  821. nemo_platform/types/inference/provider_list_params.py +47 -0
  822. nemo_platform/types/inference/provider_update_params.py +87 -0
  823. nemo_platform/types/inference/provider_update_status_params.py +48 -0
  824. nemo_platform/types/inference/served_model_mapping.py +35 -0
  825. nemo_platform/types/inference/served_model_mapping_param.py +32 -0
  826. nemo_platform/types/inference/virtual_model.py +91 -0
  827. nemo_platform/types/inference/virtual_model_create_params.py +83 -0
  828. nemo_platform/types/inference/virtual_model_inference_config.py +32 -0
  829. nemo_platform/types/inference/virtual_model_inference_config_param.py +34 -0
  830. nemo_platform/types/inference/virtual_model_list_params.py +35 -0
  831. nemo_platform/types/inference/virtual_model_patch_params.py +80 -0
  832. nemo_platform/types/inference/virtual_models_page.py +37 -0
  833. nemo_platform/types/intake/__init__.py +86 -0
  834. nemo_platform/types/intake/app.py +51 -0
  835. nemo_platform/types/intake/app_create_params.py +38 -0
  836. nemo_platform/types/intake/app_filter_param.py +46 -0
  837. nemo_platform/types/intake/app_list_params.py +44 -0
  838. nemo_platform/types/intake/app_patch_params.py +35 -0
  839. nemo_platform/types/intake/app_sort_field.py +22 -0
  840. nemo_platform/types/intake/apps/__init__.py +26 -0
  841. nemo_platform/types/intake/apps/task.py +54 -0
  842. nemo_platform/types/intake/apps/task_create_params.py +40 -0
  843. nemo_platform/types/intake/apps/task_filter_param.py +49 -0
  844. nemo_platform/types/intake/apps/task_list_params.py +44 -0
  845. nemo_platform/types/intake/apps/task_patch_params.py +37 -0
  846. nemo_platform/types/intake/apps/task_sort_field.py +22 -0
  847. nemo_platform/types/intake/apps/tasks_page.py +37 -0
  848. nemo_platform/types/intake/apps_page.py +37 -0
  849. nemo_platform/types/intake/entries/__init__.py +20 -0
  850. nemo_platform/types/intake/entries/event_create_params.py +40 -0
  851. nemo_platform/types/intake/entry.py +98 -0
  852. nemo_platform/types/intake/entry_context.py +79 -0
  853. nemo_platform/types/intake/entry_context_filter_param.py +41 -0
  854. nemo_platform/types/intake/entry_context_param.py +82 -0
  855. nemo_platform/types/intake/entry_create_params.py +85 -0
  856. nemo_platform/types/intake/entry_data.py +48 -0
  857. nemo_platform/types/intake/entry_data_param.py +51 -0
  858. nemo_platform/types/intake/entry_filter_param.py +85 -0
  859. nemo_platform/types/intake/entry_list_params.py +47 -0
  860. nemo_platform/types/intake/entry_patch_params.py +79 -0
  861. nemo_platform/types/intake/entry_sort_field.py +22 -0
  862. nemo_platform/types/intake/entry_user_rating_filter_param.py +31 -0
  863. nemo_platform/types/intake/entrys_page.py +37 -0
  864. nemo_platform/types/intake/evaluation_context_param.py +41 -0
  865. nemo_platform/types/intake/evaluator_result.py +52 -0
  866. nemo_platform/types/intake/evaluator_result_create_params.py +52 -0
  867. nemo_platform/types/intake/evaluator_result_data_type.py +22 -0
  868. nemo_platform/types/intake/evaluator_result_event.py +67 -0
  869. nemo_platform/types/intake/evaluator_result_event_param.py +69 -0
  870. nemo_platform/types/intake/evaluator_result_filter_param.py +49 -0
  871. nemo_platform/types/intake/evaluator_result_list_params.py +43 -0
  872. nemo_platform/types/intake/evaluator_result_sort_field.py +22 -0
  873. nemo_platform/types/intake/evaluator_results_page.py +37 -0
  874. nemo_platform/types/intake/export_config_param.py +44 -0
  875. nemo_platform/types/intake/export_config_param_param.py +45 -0
  876. nemo_platform/types/intake/export_preview_params.py +34 -0
  877. nemo_platform/types/intake/export_preview_response.py +39 -0
  878. nemo_platform/types/intake/exports/__init__.py +28 -0
  879. nemo_platform/types/intake/exports/export_config.py +44 -0
  880. nemo_platform/types/intake/exports/export_job.py +76 -0
  881. nemo_platform/types/intake/exports/export_job_filter_param.py +50 -0
  882. nemo_platform/types/intake/exports/export_job_sort_field.py +22 -0
  883. nemo_platform/types/intake/exports/export_jobs_page.py +37 -0
  884. nemo_platform/types/intake/exports/export_status_details.py +35 -0
  885. nemo_platform/types/intake/exports/job_create_params.py +40 -0
  886. nemo_platform/types/intake/exports/job_list_params.py +46 -0
  887. nemo_platform/types/intake/exports/job_status.py +22 -0
  888. nemo_platform/types/intake/flexible_entry_request.py +63 -0
  889. nemo_platform/types/intake/flexible_entry_request_param.py +51 -0
  890. nemo_platform/types/intake/flexible_entry_response.py +62 -0
  891. nemo_platform/types/intake/flexible_entry_response_param.py +49 -0
  892. nemo_platform/types/intake/flexible_message.py +56 -0
  893. nemo_platform/types/intake/flexible_message_param.py +43 -0
  894. nemo_platform/types/intake/float_filter_param.py +32 -0
  895. nemo_platform/types/intake/ingest/__init__.py +37 -0
  896. nemo_platform/types/intake/ingest/atif_agent_param.py +35 -0
  897. nemo_platform/types/intake/ingest/atif_content_part_image_param.py +30 -0
  898. nemo_platform/types/intake/ingest/atif_content_part_param.py +28 -0
  899. nemo_platform/types/intake/ingest/atif_content_part_text_param.py +28 -0
  900. nemo_platform/types/intake/ingest/atif_create_params.py +52 -0
  901. nemo_platform/types/intake/ingest/atif_final_metrics_param.py +37 -0
  902. nemo_platform/types/intake/ingest/atif_image_source_param.py +28 -0
  903. nemo_platform/types/intake/ingest/atif_metrics_param.py +41 -0
  904. nemo_platform/types/intake/ingest/atif_observation_param.py +29 -0
  905. nemo_platform/types/intake/ingest/atif_observation_result_param.py +36 -0
  906. nemo_platform/types/intake/ingest/atif_step_agent_param.py +58 -0
  907. nemo_platform/types/intake/ingest/atif_step_param.py +29 -0
  908. nemo_platform/types/intake/ingest/atif_step_system_param.py +43 -0
  909. nemo_platform/types/intake/ingest/atif_step_user_param.py +43 -0
  910. nemo_platform/types/intake/ingest/atif_subagent_trajectory_ref_param.py +33 -0
  911. nemo_platform/types/intake/ingest/atif_tool_call_param.py +31 -0
  912. nemo_platform/types/intake/ingest/chat_completion_create_params.py +66 -0
  913. nemo_platform/types/intake/ingest/chat_completions_ingest_response.py +26 -0
  914. nemo_platform/types/intake/ingest/otlp/__init__.py +18 -0
  915. nemo_platform/types/intake/ingest/otlp/v1/__init__.py +20 -0
  916. nemo_platform/types/intake/ingest/otlp/v1/ingest_response.py +26 -0
  917. nemo_platform/types/intake/message_role.py +22 -0
  918. nemo_platform/types/intake/reviewer_annotation_event.py +95 -0
  919. nemo_platform/types/intake/reviewer_annotation_event_param.py +97 -0
  920. nemo_platform/types/intake/span.py +100 -0
  921. nemo_platform/types/intake/span_evaluation_context.py +40 -0
  922. nemo_platform/types/intake/span_filter_param.py +95 -0
  923. nemo_platform/types/intake/span_kind.py +24 -0
  924. nemo_platform/types/intake/span_list_params.py +46 -0
  925. nemo_platform/types/intake/span_sort_field.py +22 -0
  926. nemo_platform/types/intake/span_status.py +22 -0
  927. nemo_platform/types/intake/spans/__init__.py +20 -0
  928. nemo_platform/types/intake/spans/evaluator_result_list_response.py +25 -0
  929. nemo_platform/types/intake/spans_page.py +37 -0
  930. nemo_platform/types/intake/thumb_direction.py +22 -0
  931. nemo_platform/types/intake/trace.py +65 -0
  932. nemo_platform/types/intake/trace_filter_param.py +60 -0
  933. nemo_platform/types/intake/trace_list_params.py +49 -0
  934. nemo_platform/types/intake/trace_retrieve_params.py +32 -0
  935. nemo_platform/types/intake/trace_sort_field.py +22 -0
  936. nemo_platform/types/intake/traces_page.py +37 -0
  937. nemo_platform/types/intake/usage.py +65 -0
  938. nemo_platform/types/intake/usage_param.py +68 -0
  939. nemo_platform/types/intake/user_action_event.py +65 -0
  940. nemo_platform/types/intake/user_action_event_param.py +68 -0
  941. nemo_platform/types/intake/user_feedback_event.py +84 -0
  942. nemo_platform/types/intake/user_feedback_event_param.py +86 -0
  943. nemo_platform/types/intake/user_rating.py +68 -0
  944. nemo_platform/types/intake/user_rating_param.py +70 -0
  945. nemo_platform/types/jobs/__init__.py +95 -0
  946. nemo_platform/types/jobs/compute_resource_spec.py +32 -0
  947. nemo_platform/types/jobs/compute_resource_spec_param.py +32 -0
  948. nemo_platform/types/jobs/compute_resources.py +46 -0
  949. nemo_platform/types/jobs/compute_resources_param.py +47 -0
  950. nemo_platform/types/jobs/container_spec.py +35 -0
  951. nemo_platform/types/jobs/container_spec_param.py +37 -0
  952. nemo_platform/types/jobs/cpu_execution_provider.py +46 -0
  953. nemo_platform/types/jobs/cpu_execution_provider_param.py +46 -0
  954. nemo_platform/types/jobs/distributed_gpu_execution_provider.py +46 -0
  955. nemo_platform/types/jobs/distributed_gpu_execution_provider_param.py +46 -0
  956. nemo_platform/types/jobs/docker_job_execution_profile.py +43 -0
  957. nemo_platform/types/jobs/docker_job_execution_profile_config.py +52 -0
  958. nemo_platform/types/jobs/docker_job_network_config.py +27 -0
  959. nemo_platform/types/jobs/docker_job_storage_config.py +36 -0
  960. nemo_platform/types/jobs/docker_volume_mount.py +47 -0
  961. nemo_platform/types/jobs/e2e_job_execution_profile.py +43 -0
  962. nemo_platform/types/jobs/gpu_execution_provider.py +46 -0
  963. nemo_platform/types/jobs/gpu_execution_provider_param.py +46 -0
  964. nemo_platform/types/jobs/image_pull_secret.py +27 -0
  965. nemo_platform/types/jobs/job_create_params.py +46 -0
  966. nemo_platform/types/jobs/job_execution_profile_config.py +42 -0
  967. nemo_platform/types/jobs/job_get_logs_params.py +41 -0
  968. nemo_platform/types/jobs/job_list_execution_profiles_response.py +37 -0
  969. nemo_platform/types/jobs/job_list_params.py +47 -0
  970. nemo_platform/types/jobs/job_update_status_details_params.py +29 -0
  971. nemo_platform/types/jobs/kubernetes_empty_dir_volume.py +32 -0
  972. nemo_platform/types/jobs/kubernetes_job_execution_profile.py +43 -0
  973. nemo_platform/types/jobs/kubernetes_job_execution_profile_config.py +101 -0
  974. nemo_platform/types/jobs/kubernetes_job_storage_config.py +40 -0
  975. nemo_platform/types/jobs/kubernetes_object_metadata.py +28 -0
  976. nemo_platform/types/jobs/kubernetes_persistent_volume_claim.py +32 -0
  977. nemo_platform/types/jobs/kubernetes_volume.py +37 -0
  978. nemo_platform/types/jobs/kubernetes_volume_mount.py +38 -0
  979. nemo_platform/types/jobs/platform_job_environment_variable.py +36 -0
  980. nemo_platform/types/jobs/platform_job_environment_variable_param.py +37 -0
  981. nemo_platform/types/jobs/platform_job_list_task_response.py +29 -0
  982. nemo_platform/types/jobs/platform_job_response.py +75 -0
  983. nemo_platform/types/jobs/platform_job_responses_page.py +37 -0
  984. nemo_platform/types/jobs/platform_job_secret_environment_variable_ref.py +27 -0
  985. nemo_platform/types/jobs/platform_job_secret_environment_variable_ref_param.py +29 -0
  986. nemo_platform/types/jobs/platform_job_sort_field.py +22 -0
  987. nemo_platform/types/jobs/platform_job_spec.py +30 -0
  988. nemo_platform/types/jobs/platform_job_spec_param.py +32 -0
  989. nemo_platform/types/jobs/platform_job_step.py +75 -0
  990. nemo_platform/types/jobs/platform_job_step_spec.py +63 -0
  991. nemo_platform/types/jobs/platform_job_step_spec_param.py +65 -0
  992. nemo_platform/types/jobs/platform_job_step_with_context.py +67 -0
  993. nemo_platform/types/jobs/platform_job_step_with_contexts_page.py +37 -0
  994. nemo_platform/types/jobs/platform_job_steps_list_filter_param.py +38 -0
  995. nemo_platform/types/jobs/platform_job_task.py +75 -0
  996. nemo_platform/types/jobs/platform_jobs_list_filter_param.py +51 -0
  997. nemo_platform/types/jobs/result_create_params.py +34 -0
  998. nemo_platform/types/jobs/result_list_params.py +34 -0
  999. nemo_platform/types/jobs/step_lifecycle.py +37 -0
  1000. nemo_platform/types/jobs/step_lifecycle_param.py +37 -0
  1001. nemo_platform/types/jobs/step_list_params.py +44 -0
  1002. nemo_platform/types/jobs/step_update_status_params.py +44 -0
  1003. nemo_platform/types/jobs/subprocess_execution_provider.py +33 -0
  1004. nemo_platform/types/jobs/subprocess_execution_provider_param.py +34 -0
  1005. nemo_platform/types/jobs/subprocess_job_execution_profile.py +36 -0
  1006. nemo_platform/types/jobs/subprocess_job_execution_profile_config.py +49 -0
  1007. nemo_platform/types/jobs/task_create_or_update_params.py +46 -0
  1008. nemo_platform/types/jobs/volcano_job_execution_profile.py +39 -0
  1009. nemo_platform/types/jobs/volcano_job_execution_profile_config.py +114 -0
  1010. nemo_platform/types/members/__init__.py +24 -0
  1011. nemo_platform/types/members/member_create_params.py +40 -0
  1012. nemo_platform/types/members/member_delete_params.py +32 -0
  1013. nemo_platform/types/members/member_update_params.py +37 -0
  1014. nemo_platform/types/members/workspace_member.py +39 -0
  1015. nemo_platform/types/members/workspace_member_list_response.py +29 -0
  1016. nemo_platform/types/models/__init__.py +34 -0
  1017. nemo_platform/types/models/adapter.py +73 -0
  1018. nemo_platform/types/models/adapter_create_params.py +54 -0
  1019. nemo_platform/types/models/adapter_update_params.py +37 -0
  1020. nemo_platform/types/models/base_model_filter_param.py +29 -0
  1021. nemo_platform/types/models/finetuning_type_filter_param.py +31 -0
  1022. nemo_platform/types/models/lora.py +30 -0
  1023. nemo_platform/types/models/lora_param.py +30 -0
  1024. nemo_platform/types/models/model_create_params.py +93 -0
  1025. nemo_platform/types/models/model_entity.py +112 -0
  1026. nemo_platform/types/models/model_entity_filter_param.py +72 -0
  1027. nemo_platform/types/models/model_entity_sort_field.py +22 -0
  1028. nemo_platform/types/models/model_entitys_page.py +37 -0
  1029. nemo_platform/types/models/model_list_params.py +50 -0
  1030. nemo_platform/types/models/model_retrieve_params.py +29 -0
  1031. nemo_platform/types/models/model_update_params.py +86 -0
  1032. nemo_platform/types/projects/__init__.py +25 -0
  1033. nemo_platform/types/projects/project.py +45 -0
  1034. nemo_platform/types/projects/project_create_params.py +37 -0
  1035. nemo_platform/types/projects/project_list_params.py +49 -0
  1036. nemo_platform/types/projects/project_sort_field.py +22 -0
  1037. nemo_platform/types/projects/project_update_params.py +29 -0
  1038. nemo_platform/types/projects/projects_page.py +37 -0
  1039. nemo_platform/types/safe_synthesizer/__init__.py +68 -0
  1040. nemo_platform/types/safe_synthesizer/classify_config.py +41 -0
  1041. nemo_platform/types/safe_synthesizer/classify_config_param.py +43 -0
  1042. nemo_platform/types/safe_synthesizer/column.py +46 -0
  1043. nemo_platform/types/safe_synthesizer/column_actions.py +36 -0
  1044. nemo_platform/types/safe_synthesizer/column_actions_param.py +38 -0
  1045. nemo_platform/types/safe_synthesizer/column_param.py +49 -0
  1046. nemo_platform/types/safe_synthesizer/data_parameters.py +69 -0
  1047. nemo_platform/types/safe_synthesizer/data_parameters_param.py +69 -0
  1048. nemo_platform/types/safe_synthesizer/differential_privacy_hyperparams.py +48 -0
  1049. nemo_platform/types/safe_synthesizer/differential_privacy_hyperparams_param.py +48 -0
  1050. nemo_platform/types/safe_synthesizer/evaluation_parameters.py +64 -0
  1051. nemo_platform/types/safe_synthesizer/evaluation_parameters_param.py +66 -0
  1052. nemo_platform/types/safe_synthesizer/generate_parameters.py +104 -0
  1053. nemo_platform/types/safe_synthesizer/generate_parameters_param.py +102 -0
  1054. nemo_platform/types/safe_synthesizer/gliner_config.py +41 -0
  1055. nemo_platform/types/safe_synthesizer/gliner_config_param.py +41 -0
  1056. nemo_platform/types/safe_synthesizer/globals.py +45 -0
  1057. nemo_platform/types/safe_synthesizer/globals_param.py +47 -0
  1058. nemo_platform/types/safe_synthesizer/job_create_params.py +46 -0
  1059. nemo_platform/types/safe_synthesizer/job_get_logs_params.py +30 -0
  1060. nemo_platform/types/safe_synthesizer/job_list_params.py +44 -0
  1061. nemo_platform/types/safe_synthesizer/jobs/__init__.py +21 -0
  1062. nemo_platform/types/safe_synthesizer/jobs/safe_synthesizer_summary.py +95 -0
  1063. nemo_platform/types/safe_synthesizer/jobs/safe_synthesizer_timing.py +41 -0
  1064. nemo_platform/types/safe_synthesizer/ner_config.py +42 -0
  1065. nemo_platform/types/safe_synthesizer/ner_config_param.py +44 -0
  1066. nemo_platform/types/safe_synthesizer/pii_replacer_config.py +40 -0
  1067. nemo_platform/types/safe_synthesizer/pii_replacer_config_param.py +42 -0
  1068. nemo_platform/types/safe_synthesizer/row.py +50 -0
  1069. nemo_platform/types/safe_synthesizer/row_actions.py +33 -0
  1070. nemo_platform/types/safe_synthesizer/row_actions_param.py +35 -0
  1071. nemo_platform/types/safe_synthesizer/row_param.py +53 -0
  1072. nemo_platform/types/safe_synthesizer/safe_synthesizer_job.py +63 -0
  1073. nemo_platform/types/safe_synthesizer/safe_synthesizer_job_config.py +55 -0
  1074. nemo_platform/types/safe_synthesizer/safe_synthesizer_job_config_param.py +56 -0
  1075. nemo_platform/types/safe_synthesizer/safe_synthesizer_jobs_list_filter_param.py +49 -0
  1076. nemo_platform/types/safe_synthesizer/safe_synthesizer_jobs_page.py +37 -0
  1077. nemo_platform/types/safe_synthesizer/safe_synthesizer_jobs_sort_field.py +22 -0
  1078. nemo_platform/types/safe_synthesizer/safe_synthesizer_parameters.py +91 -0
  1079. nemo_platform/types/safe_synthesizer/safe_synthesizer_parameters_param.py +92 -0
  1080. nemo_platform/types/safe_synthesizer/step_definition.py +39 -0
  1081. nemo_platform/types/safe_synthesizer/step_definition_param.py +41 -0
  1082. nemo_platform/types/safe_synthesizer/time_series_parameters.py +73 -0
  1083. nemo_platform/types/safe_synthesizer/time_series_parameters_param.py +74 -0
  1084. nemo_platform/types/safe_synthesizer/training_hyperparams.py +165 -0
  1085. nemo_platform/types/safe_synthesizer/training_hyperparams_param.py +167 -0
  1086. nemo_platform/types/safe_synthesizer/validation_parameters.py +54 -0
  1087. nemo_platform/types/safe_synthesizer/validation_parameters_param.py +54 -0
  1088. nemo_platform/types/secrets/__init__.py +28 -0
  1089. nemo_platform/types/secrets/platform_secret_access_response.py +33 -0
  1090. nemo_platform/types/secrets/platform_secret_admin_rotation_response.py +28 -0
  1091. nemo_platform/types/secrets/platform_secret_response.py +40 -0
  1092. nemo_platform/types/secrets/platform_secret_responses_page.py +37 -0
  1093. nemo_platform/types/secrets/secret_create_params.py +39 -0
  1094. nemo_platform/types/secrets/secret_list_params.py +32 -0
  1095. nemo_platform/types/secrets/secret_update_params.py +32 -0
  1096. nemo_platform/types/shared/__init__.py +50 -0
  1097. nemo_platform/types/shared/api_endpoint_data.py +43 -0
  1098. nemo_platform/types/shared/auth_context.py +48 -0
  1099. nemo_platform/types/shared/auth_discovery_response.py +32 -0
  1100. nemo_platform/types/shared/backend_format.py +22 -0
  1101. nemo_platform/types/shared/datetime_filter.py +33 -0
  1102. nemo_platform/types/shared/delete_response.py +33 -0
  1103. nemo_platform/types/shared/error_response.py +46 -0
  1104. nemo_platform/types/shared/field_error.py +28 -0
  1105. nemo_platform/types/shared/file_storage_type.py +22 -0
  1106. nemo_platform/types/shared/fileset_metadata.py +46 -0
  1107. nemo_platform/types/shared/finetuning_type.py +48 -0
  1108. nemo_platform/types/shared/generic_sort_field.py +22 -0
  1109. nemo_platform/types/shared/http_validation_error.py +27 -0
  1110. nemo_platform/types/shared/linear_layer_spec.py +33 -0
  1111. nemo_platform/types/shared/mamba_config.py +44 -0
  1112. nemo_platform/types/shared/mo_e_config.py +41 -0
  1113. nemo_platform/types/shared/model_metadata_content.py +38 -0
  1114. nemo_platform/types/shared/model_spec.py +111 -0
  1115. nemo_platform/types/shared/oidc_discovery_response.py +42 -0
  1116. nemo_platform/types/shared/pagination_data.py +37 -0
  1117. nemo_platform/types/shared/platform_job_list_result_response.py +27 -0
  1118. nemo_platform/types/shared/platform_job_log.py +34 -0
  1119. nemo_platform/types/shared/platform_job_log_page.py +33 -0
  1120. nemo_platform/types/shared/platform_job_result_response.py +44 -0
  1121. nemo_platform/types/shared/platform_job_status.py +24 -0
  1122. nemo_platform/types/shared/platform_job_status_response.py +48 -0
  1123. nemo_platform/types/shared/platform_job_step_status_response.py +48 -0
  1124. nemo_platform/types/shared/platform_job_task_status_response.py +47 -0
  1125. nemo_platform/types/shared/prompt_data.py +47 -0
  1126. nemo_platform/types/shared/sliding_window_config.py +27 -0
  1127. nemo_platform/types/shared/tool_call_config.py +46 -0
  1128. nemo_platform/types/shared/tool_calling_metadata_content.py +48 -0
  1129. nemo_platform/types/shared/validation_error.py +34 -0
  1130. nemo_platform/types/shared_params/__init__.py +33 -0
  1131. nemo_platform/types/shared_params/api_endpoint_data.py +38 -0
  1132. nemo_platform/types/shared_params/backend_format.py +24 -0
  1133. nemo_platform/types/shared_params/datetime_filter.py +34 -0
  1134. nemo_platform/types/shared_params/file_storage_type.py +24 -0
  1135. nemo_platform/types/shared_params/finetuning_type.py +50 -0
  1136. nemo_platform/types/shared_params/generic_sort_field.py +24 -0
  1137. nemo_platform/types/shared_params/linear_layer_spec.py +35 -0
  1138. nemo_platform/types/shared_params/mamba_config.py +44 -0
  1139. nemo_platform/types/shared_params/mo_e_config.py +41 -0
  1140. nemo_platform/types/shared_params/model_metadata_content.py +39 -0
  1141. nemo_platform/types/shared_params/model_spec.py +113 -0
  1142. nemo_platform/types/shared_params/platform_job_status.py +26 -0
  1143. nemo_platform/types/shared_params/prompt_data.py +48 -0
  1144. nemo_platform/types/shared_params/sliding_window_config.py +29 -0
  1145. nemo_platform/types/shared_params/tool_call_config.py +46 -0
  1146. nemo_platform/types/shared_params/tool_calling_metadata_content.py +48 -0
  1147. nemo_platform/types/workspaces/__init__.py +24 -0
  1148. nemo_platform/types/workspaces/workspace.py +48 -0
  1149. nemo_platform/types/workspaces/workspace_create_params.py +41 -0
  1150. nemo_platform/types/workspaces/workspace_list_params.py +47 -0
  1151. nemo_platform/types/workspaces/workspace_update_params.py +27 -0
  1152. nemo_platform/types/workspaces/workspaces_page.py +37 -0
  1153. nemo_platform/ui/__init__.py +15 -0
  1154. nemo_platform/ui/output.py +109 -0
  1155. nemo_platform/ui/prompts.py +678 -0
  1156. nemo_platform_plugin/.agents/skills/creating-a-plugin/SKILL.md +275 -0
  1157. nemo_platform_plugin/.agents/skills/plugin-config/SKILL.md +168 -0
  1158. nemo_platform_plugin/.agents/skills/plugin-controller/SKILL.md +320 -0
  1159. nemo_platform_plugin/.agents/skills/plugin-entities/SKILL.md +290 -0
  1160. nemo_platform_plugin/.agents/skills/plugin-function/SKILL.md +292 -0
  1161. nemo_platform_plugin/.agents/skills/plugin-inference-middleware/SKILL.md +346 -0
  1162. nemo_platform_plugin/.agents/skills/plugin-job/SKILL.md +247 -0
  1163. nemo_platform_plugin/.agents/skills/plugin-platform-services/SKILL.md +239 -0
  1164. nemo_platform_plugin/.agents/skills/plugin-platform-services/services-reference.md +192 -0
  1165. nemo_platform_plugin/.agents/skills/plugin-service/SKILL.md +181 -0
  1166. nemo_platform_plugin/.agents/skills/plugin-service/crud-example.md +353 -0
  1167. nemo_platform_plugin/.agents/skills/plugin-testing/SKILL.md +206 -0
  1168. nemo_platform_plugin/README.md +43 -0
  1169. nemo_platform_plugin/_base.py +53 -0
  1170. nemo_platform_plugin/_spec_flags.py +573 -0
  1171. nemo_platform_plugin/api/filter.py +189 -0
  1172. nemo_platform_plugin/api/parsed_filter.py +288 -0
  1173. nemo_platform_plugin/api/text_filter.py +291 -0
  1174. nemo_platform_plugin/cli.py +152 -0
  1175. nemo_platform_plugin/cli_errors.py +232 -0
  1176. nemo_platform_plugin/cli_renderer.py +92 -0
  1177. nemo_platform_plugin/commands.py +1433 -0
  1178. nemo_platform_plugin/config.py +844 -0
  1179. nemo_platform_plugin/controller.py +148 -0
  1180. nemo_platform_plugin/dependencies.py +64 -0
  1181. nemo_platform_plugin/discovery.py +484 -0
  1182. nemo_platform_plugin/docs/ARCHITECTURE.md +160 -0
  1183. nemo_platform_plugin/docs/CONFIG.md +151 -0
  1184. nemo_platform_plugin/docs/CONTROLLER.md +209 -0
  1185. nemo_platform_plugin/docs/ENTITY.md +186 -0
  1186. nemo_platform_plugin/docs/INFERENCE_MIDDLEWARE.md +408 -0
  1187. nemo_platform_plugin/docs/JOB.md +237 -0
  1188. nemo_platform_plugin/docs/QUICKSTART.md +306 -0
  1189. nemo_platform_plugin/docs/SERVICE.md +302 -0
  1190. nemo_platform_plugin/entities.py +793 -0
  1191. nemo_platform_plugin/entity.py +79 -0
  1192. nemo_platform_plugin/entity_client.py +54 -0
  1193. nemo_platform_plugin/filter_ops.py +169 -0
  1194. nemo_platform_plugin/function.py +299 -0
  1195. nemo_platform_plugin/function_context.py +61 -0
  1196. nemo_platform_plugin/functions/frames.py +69 -0
  1197. nemo_platform_plugin/functions/routes.py +454 -0
  1198. nemo_platform_plugin/inference_middleware.py +1191 -0
  1199. nemo_platform_plugin/interface.py +28 -0
  1200. nemo_platform_plugin/job.py +370 -0
  1201. nemo_platform_plugin/job_context.py +86 -0
  1202. nemo_platform_plugin/job_results.py +209 -0
  1203. nemo_platform_plugin/jobs/_cli_options.py +204 -0
  1204. nemo_platform_plugin/jobs/api_factory.py +1178 -0
  1205. nemo_platform_plugin/jobs/constants.py +27 -0
  1206. nemo_platform_plugin/jobs/docker.py +76 -0
  1207. nemo_platform_plugin/jobs/exceptions.py +8 -0
  1208. nemo_platform_plugin/jobs/file_manager.py +238 -0
  1209. nemo_platform_plugin/jobs/openapi_utils.py +174 -0
  1210. nemo_platform_plugin/jobs/profile.py +110 -0
  1211. nemo_platform_plugin/jobs/result_manager.py +291 -0
  1212. nemo_platform_plugin/jobs/routes.py +297 -0
  1213. nemo_platform_plugin/jobs/schemas.py +174 -0
  1214. nemo_platform_plugin/refs.py +154 -0
  1215. nemo_platform_plugin/run_dependencies.py +137 -0
  1216. nemo_platform_plugin/scheduler.py +537 -0
  1217. nemo_platform_plugin/schema.py +216 -0
  1218. nemo_platform_plugin/sdk.py +34 -0
  1219. nemo_platform_plugin/seed.py +71 -0
  1220. nemo_platform_plugin/service.py +130 -0
  1221. nemo_platform_plugin/tasks/dispatcher.py +226 -0
  1222. nemo_platform_plugin-0.1.0.dist-info/METADATA +88 -0
  1223. nemo_platform_plugin-0.1.0.dist-info/RECORD +1224 -0
  1224. nemo_platform_plugin-0.1.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,967 @@
1
+ # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2
+ # SPDX-License-Identifier: Apache-2.0
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+
16
+ from __future__ import annotations
17
+
18
+ import os
19
+ import inspect
20
+ import weakref
21
+ from typing import (
22
+ IO,
23
+ TYPE_CHECKING,
24
+ Any,
25
+ Type,
26
+ Union,
27
+ Generic,
28
+ TypeVar,
29
+ Callable,
30
+ Iterable,
31
+ Optional,
32
+ AsyncIterable,
33
+ cast,
34
+ )
35
+ from datetime import date, datetime
36
+ from typing_extensions import (
37
+ List,
38
+ Unpack,
39
+ Literal,
40
+ ClassVar,
41
+ Protocol,
42
+ Required,
43
+ Annotated,
44
+ ParamSpec,
45
+ TypeAlias,
46
+ TypedDict,
47
+ TypeGuard,
48
+ final,
49
+ override,
50
+ runtime_checkable,
51
+ )
52
+
53
+ import pydantic
54
+ from pydantic.fields import FieldInfo
55
+
56
+ from ._types import (
57
+ Body,
58
+ IncEx,
59
+ Query,
60
+ ModelT,
61
+ Headers,
62
+ Timeout,
63
+ NotGiven,
64
+ AnyMapping,
65
+ HttpxRequestFiles,
66
+ )
67
+ from ._utils import (
68
+ PropertyInfo,
69
+ is_list,
70
+ is_given,
71
+ json_safe,
72
+ lru_cache,
73
+ is_mapping,
74
+ parse_date,
75
+ coerce_boolean,
76
+ parse_datetime,
77
+ strip_not_given,
78
+ extract_type_arg,
79
+ is_annotated_type,
80
+ is_type_alias_type,
81
+ strip_annotated_type,
82
+ )
83
+ from ._compat import (
84
+ PYDANTIC_V1,
85
+ ConfigDict,
86
+ GenericModel as BaseGenericModel,
87
+ get_args,
88
+ is_union,
89
+ parse_obj,
90
+ get_origin,
91
+ is_literal_type,
92
+ get_model_config,
93
+ get_model_fields,
94
+ field_get_default,
95
+ )
96
+ from ._constants import RAW_RESPONSE_HEADER
97
+
98
+ if TYPE_CHECKING:
99
+ from pydantic import GetCoreSchemaHandler, ValidatorFunctionWrapHandler
100
+ from pydantic_core import CoreSchema, core_schema
101
+ from pydantic_core.core_schema import ModelField, ModelSchema, LiteralSchema, ModelFieldsSchema
102
+ else:
103
+ try:
104
+ from pydantic_core import CoreSchema, core_schema
105
+ except ImportError:
106
+ CoreSchema = None
107
+ core_schema = None
108
+
109
+ __all__ = ["BaseModel", "GenericModel"]
110
+
111
+ _T = TypeVar("_T")
112
+ _BaseModelT = TypeVar("_BaseModelT", bound="BaseModel")
113
+
114
+ P = ParamSpec("P")
115
+
116
+
117
+ @runtime_checkable
118
+ class _ConfigProtocol(Protocol):
119
+ allow_population_by_field_name: bool
120
+
121
+
122
+ class BaseModel(pydantic.BaseModel):
123
+ if PYDANTIC_V1:
124
+
125
+ @property
126
+ @override
127
+ def model_fields_set(self) -> set[str]:
128
+ # a forwards-compat shim for pydantic v2
129
+ return self.__fields_set__ # type: ignore
130
+
131
+ class Config(pydantic.BaseConfig): # pyright: ignore[reportDeprecated]
132
+ extra: Any = pydantic.Extra.allow # type: ignore
133
+ else:
134
+ model_config: ClassVar[ConfigDict] = ConfigDict(
135
+ extra="allow", defer_build=coerce_boolean(os.environ.get("DEFER_PYDANTIC_BUILD", "true"))
136
+ )
137
+
138
+ def to_dict(
139
+ self,
140
+ *,
141
+ mode: Literal["json", "python"] = "python",
142
+ use_api_names: bool = True,
143
+ exclude_unset: bool = True,
144
+ exclude_defaults: bool = False,
145
+ exclude_none: bool = False,
146
+ warnings: bool = True,
147
+ ) -> dict[str, object]:
148
+ """Recursively generate a dictionary representation of the model, optionally specifying which fields to include or exclude.
149
+
150
+ By default, fields that were not set by the API will not be included,
151
+ and keys will match the API response, *not* the property names from the model.
152
+
153
+ For example, if the API responds with `"fooBar": true` but we've defined a `foo_bar: bool` property,
154
+ the output will use the `"fooBar"` key (unless `use_api_names=False` is passed).
155
+
156
+ Args:
157
+ mode:
158
+ If mode is 'json', the dictionary will only contain JSON serializable types. e.g. `datetime` will be turned into a string, `"2024-3-22T18:11:19.117000Z"`.
159
+ If mode is 'python', the dictionary may contain any Python objects. e.g. `datetime(2024, 3, 22)`
160
+
161
+ use_api_names: Whether to use the key that the API responded with or the property name. Defaults to `True`.
162
+ exclude_unset: Whether to exclude fields that have not been explicitly set.
163
+ exclude_defaults: Whether to exclude fields that are set to their default value from the output.
164
+ exclude_none: Whether to exclude fields that have a value of `None` from the output.
165
+ warnings: Whether to log warnings when invalid fields are encountered. This is only supported in Pydantic v2.
166
+ """
167
+ return self.model_dump(
168
+ mode=mode,
169
+ by_alias=use_api_names,
170
+ exclude_unset=exclude_unset,
171
+ exclude_defaults=exclude_defaults,
172
+ exclude_none=exclude_none,
173
+ warnings=warnings,
174
+ )
175
+
176
+ def to_json(
177
+ self,
178
+ *,
179
+ indent: int | None = 2,
180
+ use_api_names: bool = True,
181
+ exclude_unset: bool = True,
182
+ exclude_defaults: bool = False,
183
+ exclude_none: bool = False,
184
+ warnings: bool = True,
185
+ ) -> str:
186
+ """Generates a JSON string representing this model as it would be received from or sent to the API (but with indentation).
187
+
188
+ By default, fields that were not set by the API will not be included,
189
+ and keys will match the API response, *not* the property names from the model.
190
+
191
+ For example, if the API responds with `"fooBar": true` but we've defined a `foo_bar: bool` property,
192
+ the output will use the `"fooBar"` key (unless `use_api_names=False` is passed).
193
+
194
+ Args:
195
+ indent: Indentation to use in the JSON output. If `None` is passed, the output will be compact. Defaults to `2`
196
+ use_api_names: Whether to use the key that the API responded with or the property name. Defaults to `True`.
197
+ exclude_unset: Whether to exclude fields that have not been explicitly set.
198
+ exclude_defaults: Whether to exclude fields that have the default value.
199
+ exclude_none: Whether to exclude fields that have a value of `None`.
200
+ warnings: Whether to show any warnings that occurred during serialization. This is only supported in Pydantic v2.
201
+ """
202
+ return self.model_dump_json(
203
+ indent=indent,
204
+ by_alias=use_api_names,
205
+ exclude_unset=exclude_unset,
206
+ exclude_defaults=exclude_defaults,
207
+ exclude_none=exclude_none,
208
+ warnings=warnings,
209
+ )
210
+
211
+ @override
212
+ def __str__(self) -> str:
213
+ # mypy complains about an invalid self arg
214
+ return f"{self.__repr_name__()}({self.__repr_str__(', ')})" # type: ignore[misc]
215
+
216
+ # Override the 'construct' method in a way that supports recursive parsing without validation.
217
+ # Based on https://github.com/samuelcolvin/pydantic/issues/1168#issuecomment-817742836.
218
+ @classmethod
219
+ @override
220
+ def construct( # pyright: ignore[reportIncompatibleMethodOverride]
221
+ __cls: Type[ModelT],
222
+ _fields_set: set[str] | None = None,
223
+ **values: object,
224
+ ) -> ModelT:
225
+ m = __cls.__new__(__cls)
226
+ fields_values: dict[str, object] = {}
227
+
228
+ config = get_model_config(__cls)
229
+ populate_by_name = (
230
+ config.allow_population_by_field_name
231
+ if isinstance(config, _ConfigProtocol)
232
+ else config.get("populate_by_name")
233
+ )
234
+
235
+ if _fields_set is None:
236
+ _fields_set = set()
237
+
238
+ model_fields = get_model_fields(__cls)
239
+ for name, field in model_fields.items():
240
+ key = field.alias
241
+ if key is None or (key not in values and populate_by_name):
242
+ key = name
243
+
244
+ if key in values:
245
+ fields_values[name] = _construct_field(value=values[key], field=field, key=key)
246
+ _fields_set.add(name)
247
+ else:
248
+ fields_values[name] = field_get_default(field)
249
+
250
+ extra_field_type = _get_extra_fields_type(__cls)
251
+
252
+ _extra = {}
253
+ for key, value in values.items():
254
+ if key not in model_fields:
255
+ parsed = construct_type(value=value, type_=extra_field_type) if extra_field_type is not None else value
256
+
257
+ if PYDANTIC_V1:
258
+ _fields_set.add(key)
259
+ fields_values[key] = parsed
260
+ else:
261
+ _extra[key] = parsed
262
+
263
+ object.__setattr__(m, "__dict__", fields_values)
264
+
265
+ if PYDANTIC_V1:
266
+ # init_private_attributes() does not exist in v2
267
+ m._init_private_attributes() # type: ignore
268
+
269
+ # copied from Pydantic v1's `construct()` method
270
+ object.__setattr__(m, "__fields_set__", _fields_set)
271
+ else:
272
+ # these properties are copied from Pydantic's `model_construct()` method
273
+ object.__setattr__(m, "__pydantic_private__", None)
274
+ object.__setattr__(m, "__pydantic_extra__", _extra)
275
+ object.__setattr__(m, "__pydantic_fields_set__", _fields_set)
276
+
277
+ return m
278
+
279
+ if not TYPE_CHECKING:
280
+ # type checkers incorrectly complain about this assignment
281
+ # because the type signatures are technically different
282
+ # although not in practice
283
+ model_construct = construct
284
+
285
+ if PYDANTIC_V1:
286
+ # we define aliases for some of the new pydantic v2 methods so
287
+ # that we can just document these methods without having to specify
288
+ # a specific pydantic version as some users may not know which
289
+ # pydantic version they are currently using
290
+
291
+ @override
292
+ def model_dump(
293
+ self,
294
+ *,
295
+ mode: Literal["json", "python"] | str = "python",
296
+ include: IncEx | None = None,
297
+ exclude: IncEx | None = None,
298
+ context: Any | None = None,
299
+ by_alias: bool | None = None,
300
+ exclude_unset: bool = False,
301
+ exclude_defaults: bool = False,
302
+ exclude_none: bool = False,
303
+ exclude_computed_fields: bool = False,
304
+ round_trip: bool = False,
305
+ warnings: bool | Literal["none", "warn", "error"] = True,
306
+ fallback: Callable[[Any], Any] | None = None,
307
+ serialize_as_any: bool = False,
308
+ ) -> dict[str, Any]:
309
+ """Usage docs: https://docs.pydantic.dev/2.4/concepts/serialization/#modelmodel_dump
310
+
311
+ Generate a dictionary representation of the model, optionally specifying which fields to include or exclude.
312
+
313
+ Args:
314
+ mode: The mode in which `to_python` should run.
315
+ If mode is 'json', the output will only contain JSON serializable types.
316
+ If mode is 'python', the output may contain non-JSON-serializable Python objects.
317
+ include: A set of fields to include in the output.
318
+ exclude: A set of fields to exclude from the output.
319
+ context: Additional context to pass to the serializer.
320
+ by_alias: Whether to use the field's alias in the dictionary key if defined.
321
+ exclude_unset: Whether to exclude fields that have not been explicitly set.
322
+ exclude_defaults: Whether to exclude fields that are set to their default value.
323
+ exclude_none: Whether to exclude fields that have a value of `None`.
324
+ exclude_computed_fields: Whether to exclude computed fields.
325
+ While this can be useful for round-tripping, it is usually recommended to use the dedicated
326
+ `round_trip` parameter instead.
327
+ round_trip: If True, dumped values should be valid as input for non-idempotent types such as Json[T].
328
+ warnings: How to handle serialization errors. False/"none" ignores them, True/"warn" logs errors,
329
+ "error" raises a [`PydanticSerializationError`][pydantic_core.PydanticSerializationError].
330
+ fallback: A function to call when an unknown value is encountered. If not provided,
331
+ a [`PydanticSerializationError`][pydantic_core.PydanticSerializationError] error is raised.
332
+ serialize_as_any: Whether to serialize fields with duck-typing serialization behavior.
333
+
334
+ Returns:
335
+ A dictionary representation of the model.
336
+ """
337
+ if mode not in {"json", "python"}:
338
+ raise ValueError("mode must be either 'json' or 'python'")
339
+ if round_trip != False:
340
+ raise ValueError("round_trip is only supported in Pydantic v2")
341
+ if warnings != True:
342
+ raise ValueError("warnings is only supported in Pydantic v2")
343
+ if context is not None:
344
+ raise ValueError("context is only supported in Pydantic v2")
345
+ if serialize_as_any != False:
346
+ raise ValueError("serialize_as_any is only supported in Pydantic v2")
347
+ if fallback is not None:
348
+ raise ValueError("fallback is only supported in Pydantic v2")
349
+ if exclude_computed_fields != False:
350
+ raise ValueError("exclude_computed_fields is only supported in Pydantic v2")
351
+ dumped = super().dict( # pyright: ignore[reportDeprecated]
352
+ include=include,
353
+ exclude=exclude,
354
+ by_alias=by_alias if by_alias is not None else False,
355
+ exclude_unset=exclude_unset,
356
+ exclude_defaults=exclude_defaults,
357
+ exclude_none=exclude_none,
358
+ )
359
+
360
+ return cast("dict[str, Any]", json_safe(dumped)) if mode == "json" else dumped
361
+
362
+ @override
363
+ def model_dump_json(
364
+ self,
365
+ *,
366
+ indent: int | None = None,
367
+ ensure_ascii: bool = False,
368
+ include: IncEx | None = None,
369
+ exclude: IncEx | None = None,
370
+ context: Any | None = None,
371
+ by_alias: bool | None = None,
372
+ exclude_unset: bool = False,
373
+ exclude_defaults: bool = False,
374
+ exclude_none: bool = False,
375
+ exclude_computed_fields: bool = False,
376
+ round_trip: bool = False,
377
+ warnings: bool | Literal["none", "warn", "error"] = True,
378
+ fallback: Callable[[Any], Any] | None = None,
379
+ serialize_as_any: bool = False,
380
+ ) -> str:
381
+ """Usage docs: https://docs.pydantic.dev/2.4/concepts/serialization/#modelmodel_dump_json
382
+
383
+ Generates a JSON representation of the model using Pydantic's `to_json` method.
384
+
385
+ Args:
386
+ indent: Indentation to use in the JSON output. If None is passed, the output will be compact.
387
+ include: Field(s) to include in the JSON output. Can take either a string or set of strings.
388
+ exclude: Field(s) to exclude from the JSON output. Can take either a string or set of strings.
389
+ by_alias: Whether to serialize using field aliases.
390
+ exclude_unset: Whether to exclude fields that have not been explicitly set.
391
+ exclude_defaults: Whether to exclude fields that have the default value.
392
+ exclude_none: Whether to exclude fields that have a value of `None`.
393
+ round_trip: Whether to use serialization/deserialization between JSON and class instance.
394
+ warnings: Whether to show any warnings that occurred during serialization.
395
+
396
+ Returns:
397
+ A JSON string representation of the model.
398
+ """
399
+ if round_trip != False:
400
+ raise ValueError("round_trip is only supported in Pydantic v2")
401
+ if warnings != True:
402
+ raise ValueError("warnings is only supported in Pydantic v2")
403
+ if context is not None:
404
+ raise ValueError("context is only supported in Pydantic v2")
405
+ if serialize_as_any != False:
406
+ raise ValueError("serialize_as_any is only supported in Pydantic v2")
407
+ if fallback is not None:
408
+ raise ValueError("fallback is only supported in Pydantic v2")
409
+ if ensure_ascii != False:
410
+ raise ValueError("ensure_ascii is only supported in Pydantic v2")
411
+ if exclude_computed_fields != False:
412
+ raise ValueError("exclude_computed_fields is only supported in Pydantic v2")
413
+ return super().json( # type: ignore[reportDeprecated]
414
+ indent=indent,
415
+ include=include,
416
+ exclude=exclude,
417
+ by_alias=by_alias if by_alias is not None else False,
418
+ exclude_unset=exclude_unset,
419
+ exclude_defaults=exclude_defaults,
420
+ exclude_none=exclude_none,
421
+ )
422
+
423
+
424
+ class _EagerIterable(list[_T], Generic[_T]):
425
+ """
426
+ Accepts any Iterable[T] input (including generators), consumes it
427
+ eagerly, and validates all items upfront.
428
+
429
+ Validation preserves the original container type where possible
430
+ (e.g. a set[T] stays a set[T]). Serialization (model_dump / JSON)
431
+ always emits a list — round-tripping through model_dump() will not
432
+ restore the original container type.
433
+ """
434
+
435
+ @classmethod
436
+ def __get_pydantic_core_schema__(
437
+ cls,
438
+ source_type: Any,
439
+ handler: GetCoreSchemaHandler,
440
+ ) -> CoreSchema:
441
+ (item_type,) = get_args(source_type) or (Any,)
442
+ item_schema: CoreSchema = handler.generate_schema(item_type)
443
+ list_of_items_schema: CoreSchema = core_schema.list_schema(item_schema)
444
+
445
+ return core_schema.no_info_wrap_validator_function(
446
+ cls._validate,
447
+ list_of_items_schema,
448
+ serialization=core_schema.plain_serializer_function_ser_schema(
449
+ cls._serialize,
450
+ info_arg=False,
451
+ ),
452
+ )
453
+
454
+ @staticmethod
455
+ def _validate(v: Iterable[_T], handler: "ValidatorFunctionWrapHandler") -> Any:
456
+ original_type: type[Any] = type(v)
457
+
458
+ # Normalize to list so list_schema can validate each item
459
+ if isinstance(v, list):
460
+ items: list[_T] = v
461
+ else:
462
+ try:
463
+ items = list(v)
464
+ except TypeError as e:
465
+ raise TypeError("Value is not iterable") from e
466
+
467
+ # Validate items against the inner schema
468
+ validated: list[_T] = handler(items)
469
+
470
+ # Reconstruct original container type
471
+ if original_type is list:
472
+ return validated
473
+ # str(list) produces the list's repr, not a string built from items,
474
+ # so skip reconstruction for str and its subclasses.
475
+ if issubclass(original_type, str):
476
+ return validated
477
+ try:
478
+ return original_type(validated)
479
+ except (TypeError, ValueError):
480
+ # If the type cannot be reconstructed, just return the validated list
481
+ return validated
482
+
483
+ @staticmethod
484
+ def _serialize(v: Iterable[_T]) -> list[_T]:
485
+ """Always serialize as a list so Pydantic's JSON encoder is happy."""
486
+ if isinstance(v, list):
487
+ return v
488
+ return list(v)
489
+
490
+
491
+ EagerIterable: TypeAlias = Annotated[Iterable[_T], _EagerIterable]
492
+
493
+
494
+ def _construct_field(value: object, field: FieldInfo, key: str) -> object:
495
+ if value is None:
496
+ return field_get_default(field)
497
+
498
+ if PYDANTIC_V1:
499
+ type_ = cast(type, field.outer_type_) # type: ignore
500
+ else:
501
+ type_ = field.annotation # type: ignore
502
+
503
+ if type_ is None:
504
+ raise RuntimeError(f"Unexpected field type is None for {key}")
505
+
506
+ return construct_type(value=value, type_=type_, metadata=getattr(field, "metadata", None))
507
+
508
+
509
+ def _get_extra_fields_type(cls: type[pydantic.BaseModel]) -> type | None:
510
+ if PYDANTIC_V1:
511
+ # TODO
512
+ return None
513
+
514
+ schema = cls.__pydantic_core_schema__
515
+ if schema["type"] == "model":
516
+ fields = schema["schema"]
517
+ if fields["type"] == "model-fields":
518
+ extras = fields.get("extras_schema")
519
+ if extras and "cls" in extras:
520
+ # mypy can't narrow the type
521
+ return extras["cls"] # type: ignore[no-any-return]
522
+
523
+ return None
524
+
525
+
526
+ def is_basemodel(type_: type) -> bool:
527
+ """Returns whether or not the given type is either a `BaseModel` or a union of `BaseModel`"""
528
+ if is_union(type_):
529
+ for variant in get_args(type_):
530
+ if is_basemodel(variant):
531
+ return True
532
+
533
+ return False
534
+
535
+ return is_basemodel_type(type_)
536
+
537
+
538
+ def is_basemodel_type(type_: type) -> TypeGuard[type[BaseModel] | type[GenericModel]]:
539
+ origin = get_origin(type_) or type_
540
+ if not inspect.isclass(origin):
541
+ return False
542
+ return issubclass(origin, BaseModel) or issubclass(origin, GenericModel)
543
+
544
+
545
+ def build(
546
+ base_model_cls: Callable[P, _BaseModelT],
547
+ *args: P.args,
548
+ **kwargs: P.kwargs,
549
+ ) -> _BaseModelT:
550
+ """Construct a BaseModel class without validation.
551
+
552
+ This is useful for cases where you need to instantiate a `BaseModel`
553
+ from an API response as this provides type-safe params which isn't supported
554
+ by helpers like `construct_type()`.
555
+
556
+ ```py
557
+ build(MyModel, my_field_a="foo", my_field_b=123)
558
+ ```
559
+ """
560
+ if args:
561
+ raise TypeError(
562
+ "Received positional arguments which are not supported; Keyword arguments must be used instead",
563
+ )
564
+
565
+ return cast(_BaseModelT, construct_type(type_=base_model_cls, value=kwargs))
566
+
567
+
568
+ def construct_type_unchecked(*, value: object, type_: type[_T]) -> _T:
569
+ """Loose coercion to the expected type with construction of nested values.
570
+
571
+ Note: the returned value from this function is not guaranteed to match the
572
+ given type.
573
+ """
574
+ return cast(_T, construct_type(value=value, type_=type_))
575
+
576
+
577
+ def construct_type(*, value: object, type_: object, metadata: Optional[List[Any]] = None) -> object:
578
+ """Loose coercion to the expected type with construction of nested values.
579
+
580
+ If the given value does not match the expected type then it is returned as-is.
581
+ """
582
+
583
+ # store a reference to the original type we were given before we extract any inner
584
+ # types so that we can properly resolve forward references in `TypeAliasType` annotations
585
+ original_type = None
586
+
587
+ # we allow `object` as the input type because otherwise, passing things like
588
+ # `Literal['value']` will be reported as a type error by type checkers
589
+ type_ = cast("type[object]", type_)
590
+ if is_type_alias_type(type_):
591
+ original_type = type_ # type: ignore[unreachable]
592
+ type_ = type_.__value__ # type: ignore[unreachable]
593
+
594
+ # unwrap `Annotated[T, ...]` -> `T`
595
+ if metadata is not None and len(metadata) > 0:
596
+ meta: tuple[Any, ...] = tuple(metadata)
597
+ elif is_annotated_type(type_):
598
+ meta = get_args(type_)[1:]
599
+ type_ = extract_type_arg(type_, 0)
600
+ else:
601
+ meta = tuple()
602
+
603
+ # we need to use the origin class for any types that are subscripted generics
604
+ # e.g. Dict[str, object]
605
+ origin = get_origin(type_) or type_
606
+ args = get_args(type_)
607
+
608
+ if is_union(origin):
609
+ try:
610
+ return validate_type(type_=cast("type[object]", original_type or type_), value=value)
611
+ except Exception:
612
+ pass
613
+
614
+ # if the type is a discriminated union then we want to construct the right variant
615
+ # in the union, even if the data doesn't match exactly, otherwise we'd break code
616
+ # that relies on the constructed class types, e.g.
617
+ #
618
+ # class FooType:
619
+ # kind: Literal['foo']
620
+ # value: str
621
+ #
622
+ # class BarType:
623
+ # kind: Literal['bar']
624
+ # value: int
625
+ #
626
+ # without this block, if the data we get is something like `{'kind': 'bar', 'value': 'foo'}` then
627
+ # we'd end up constructing `FooType` when it should be `BarType`.
628
+ discriminator = _build_discriminated_union_meta(union=type_, meta_annotations=meta)
629
+ if discriminator and is_mapping(value):
630
+ variant_value = value.get(discriminator.field_alias_from or discriminator.field_name)
631
+ if variant_value and isinstance(variant_value, str):
632
+ variant_type = discriminator.mapping.get(variant_value)
633
+ if variant_type:
634
+ return construct_type(type_=variant_type, value=value)
635
+
636
+ # if the data is not valid, use the first variant that doesn't fail while deserializing
637
+ for variant in args:
638
+ try:
639
+ return construct_type(value=value, type_=variant)
640
+ except Exception:
641
+ continue
642
+
643
+ raise RuntimeError(f"Could not convert data into a valid instance of {type_}")
644
+
645
+ if origin == dict:
646
+ if not is_mapping(value):
647
+ return value
648
+
649
+ _, items_type = get_args(type_) # Dict[_, items_type]
650
+ return {key: construct_type(value=item, type_=items_type) for key, item in value.items()}
651
+
652
+ if (
653
+ not is_literal_type(type_)
654
+ and inspect.isclass(origin)
655
+ and (issubclass(origin, BaseModel) or issubclass(origin, GenericModel))
656
+ ):
657
+ if is_list(value):
658
+ return [cast(Any, type_).construct(**entry) if is_mapping(entry) else entry for entry in value]
659
+
660
+ if is_mapping(value):
661
+ if issubclass(type_, BaseModel):
662
+ return type_.construct(**value) # type: ignore[arg-type]
663
+
664
+ return cast(Any, type_).construct(**value)
665
+
666
+ if origin == list:
667
+ if not is_list(value):
668
+ return value
669
+
670
+ inner_type = args[0] # List[inner_type]
671
+ return [construct_type(value=entry, type_=inner_type) for entry in value]
672
+
673
+ if origin == float:
674
+ if isinstance(value, int):
675
+ coerced = float(value)
676
+ if coerced != value:
677
+ return value
678
+ return coerced
679
+
680
+ return value
681
+
682
+ if type_ == datetime:
683
+ try:
684
+ return parse_datetime(value) # type: ignore
685
+ except Exception:
686
+ return value
687
+
688
+ if type_ == date:
689
+ try:
690
+ return parse_date(value) # type: ignore
691
+ except Exception:
692
+ return value
693
+
694
+ return value
695
+
696
+
697
+ @runtime_checkable
698
+ class CachedDiscriminatorType(Protocol):
699
+ __discriminator__: DiscriminatorDetails
700
+
701
+
702
+ DISCRIMINATOR_CACHE: weakref.WeakKeyDictionary[type, DiscriminatorDetails] = weakref.WeakKeyDictionary()
703
+
704
+
705
+ class DiscriminatorDetails:
706
+ field_name: str
707
+ """The name of the discriminator field in the variant class, e.g.
708
+
709
+ ```py
710
+ class Foo(BaseModel):
711
+ type: Literal['foo']
712
+ ```
713
+
714
+ Will result in field_name='type'
715
+ """
716
+
717
+ field_alias_from: str | None
718
+ """The name of the discriminator field in the API response, e.g.
719
+
720
+ ```py
721
+ class Foo(BaseModel):
722
+ type: Literal['foo'] = Field(alias='type_from_api')
723
+ ```
724
+
725
+ Will result in field_alias_from='type_from_api'
726
+ """
727
+
728
+ mapping: dict[str, type]
729
+ """Mapping of discriminator value to variant type, e.g.
730
+
731
+ {'foo': FooVariant, 'bar': BarVariant}
732
+ """
733
+
734
+ def __init__(
735
+ self,
736
+ *,
737
+ mapping: dict[str, type],
738
+ discriminator_field: str,
739
+ discriminator_alias: str | None,
740
+ ) -> None:
741
+ self.mapping = mapping
742
+ self.field_name = discriminator_field
743
+ self.field_alias_from = discriminator_alias
744
+
745
+
746
+ def _build_discriminated_union_meta(*, union: type, meta_annotations: tuple[Any, ...]) -> DiscriminatorDetails | None:
747
+ cached = DISCRIMINATOR_CACHE.get(union)
748
+ if cached is not None:
749
+ return cached
750
+
751
+ discriminator_field_name: str | None = None
752
+
753
+ for annotation in meta_annotations:
754
+ if isinstance(annotation, PropertyInfo) and annotation.discriminator is not None:
755
+ discriminator_field_name = annotation.discriminator
756
+ break
757
+
758
+ if not discriminator_field_name:
759
+ return None
760
+
761
+ mapping: dict[str, type] = {}
762
+ discriminator_alias: str | None = None
763
+
764
+ for variant in get_args(union):
765
+ variant = strip_annotated_type(variant)
766
+ if is_basemodel_type(variant):
767
+ if PYDANTIC_V1:
768
+ field_info = cast("dict[str, FieldInfo]", variant.__fields__).get(discriminator_field_name) # pyright: ignore[reportDeprecated, reportUnnecessaryCast]
769
+ if not field_info:
770
+ continue
771
+
772
+ # Note: if one variant defines an alias then they all should
773
+ discriminator_alias = field_info.alias
774
+
775
+ if (annotation := getattr(field_info, "annotation", None)) and is_literal_type(annotation):
776
+ for entry in get_args(annotation):
777
+ if isinstance(entry, str):
778
+ mapping[entry] = variant
779
+ else:
780
+ field = _extract_field_schema_pv2(variant, discriminator_field_name)
781
+ if not field:
782
+ continue
783
+
784
+ # Note: if one variant defines an alias then they all should
785
+ discriminator_alias = field.get("serialization_alias")
786
+
787
+ field_schema = field["schema"]
788
+
789
+ if field_schema["type"] == "literal":
790
+ for entry in cast("LiteralSchema", field_schema)["expected"]:
791
+ if isinstance(entry, str):
792
+ mapping[entry] = variant
793
+
794
+ if not mapping:
795
+ return None
796
+
797
+ details = DiscriminatorDetails(
798
+ mapping=mapping,
799
+ discriminator_field=discriminator_field_name,
800
+ discriminator_alias=discriminator_alias,
801
+ )
802
+ DISCRIMINATOR_CACHE.setdefault(union, details)
803
+ return details
804
+
805
+
806
+ def _extract_field_schema_pv2(model: type[BaseModel], field_name: str) -> ModelField | None:
807
+ schema = model.__pydantic_core_schema__
808
+ if schema["type"] == "definitions":
809
+ schema = schema["schema"]
810
+
811
+ if schema["type"] != "model":
812
+ return None
813
+
814
+ schema = cast("ModelSchema", schema)
815
+ fields_schema = schema["schema"]
816
+ if fields_schema["type"] != "model-fields":
817
+ return None
818
+
819
+ fields_schema = cast("ModelFieldsSchema", fields_schema)
820
+ field = fields_schema["fields"].get(field_name)
821
+ if not field:
822
+ return None
823
+
824
+ return cast("ModelField", field) # pyright: ignore[reportUnnecessaryCast]
825
+
826
+
827
+ def validate_type(*, type_: type[_T], value: object) -> _T:
828
+ """Strict validation that the given value matches the expected type"""
829
+ if inspect.isclass(type_) and issubclass(type_, pydantic.BaseModel):
830
+ return cast(_T, parse_obj(type_, value))
831
+
832
+ return cast(_T, _validate_non_model_type(type_=type_, value=value))
833
+
834
+
835
+ def set_pydantic_config(typ: Any, config: pydantic.ConfigDict) -> None:
836
+ """Add a pydantic config for the given type.
837
+
838
+ Note: this is a no-op on Pydantic v1.
839
+ """
840
+ setattr(typ, "__pydantic_config__", config) # noqa: B010
841
+
842
+
843
+ # our use of subclassing here causes weirdness for type checkers,
844
+ # so we just pretend that we don't subclass
845
+ if TYPE_CHECKING:
846
+ GenericModel = BaseModel
847
+ else:
848
+
849
+ class GenericModel(BaseGenericModel, BaseModel):
850
+ pass
851
+
852
+
853
+ if not PYDANTIC_V1:
854
+ from pydantic import TypeAdapter as _TypeAdapter
855
+
856
+ _CachedTypeAdapter = cast("TypeAdapter[object]", lru_cache(maxsize=None)(_TypeAdapter))
857
+
858
+ if TYPE_CHECKING:
859
+ from pydantic import TypeAdapter
860
+ else:
861
+ TypeAdapter = _CachedTypeAdapter
862
+
863
+ def _validate_non_model_type(*, type_: type[_T], value: object) -> _T:
864
+ return TypeAdapter(type_).validate_python(value)
865
+
866
+ elif not TYPE_CHECKING: # TODO: condition is weird
867
+
868
+ class RootModel(GenericModel, Generic[_T]):
869
+ """Used as a placeholder to easily convert runtime types to a Pydantic format
870
+ to provide validation.
871
+
872
+ For example:
873
+ ```py
874
+ validated = RootModel[int](__root__="5").__root__
875
+ # validated: 5
876
+ ```
877
+ """
878
+
879
+ __root__: _T
880
+
881
+ def _validate_non_model_type(*, type_: type[_T], value: object) -> _T:
882
+ model = _create_pydantic_model(type_).validate(value)
883
+ return cast(_T, model.__root__)
884
+
885
+ def _create_pydantic_model(type_: _T) -> Type[RootModel[_T]]:
886
+ return RootModel[type_] # type: ignore
887
+
888
+
889
+ class FinalRequestOptionsInput(TypedDict, total=False):
890
+ method: Required[str]
891
+ url: Required[str]
892
+ params: Query
893
+ headers: Headers
894
+ max_retries: int
895
+ timeout: float | Timeout | None
896
+ files: HttpxRequestFiles | None
897
+ idempotency_key: str
898
+ content: Union[bytes, bytearray, IO[bytes], Iterable[bytes], AsyncIterable[bytes], None]
899
+ json_data: Body
900
+ extra_json: AnyMapping
901
+ follow_redirects: bool
902
+
903
+
904
+ @final
905
+ class FinalRequestOptions(pydantic.BaseModel):
906
+ method: str
907
+ url: str
908
+ params: Query = {}
909
+ headers: Union[Headers, NotGiven] = NotGiven()
910
+ max_retries: Union[int, NotGiven] = NotGiven()
911
+ timeout: Union[float, Timeout, None, NotGiven] = NotGiven()
912
+ files: Union[HttpxRequestFiles, None] = None
913
+ idempotency_key: Union[str, None] = None
914
+ post_parser: Union[Callable[[Any], Any], NotGiven] = NotGiven()
915
+ follow_redirects: Union[bool, None] = None
916
+
917
+ content: Union[bytes, bytearray, IO[bytes], Iterable[bytes], AsyncIterable[bytes], None] = None
918
+ # It should be noted that we cannot use `json` here as that would override
919
+ # a BaseModel method in an incompatible fashion.
920
+ json_data: Union[Body, None] = None
921
+ extra_json: Union[AnyMapping, None] = None
922
+
923
+ if PYDANTIC_V1:
924
+
925
+ class Config(pydantic.BaseConfig): # pyright: ignore[reportDeprecated]
926
+ arbitrary_types_allowed: bool = True
927
+ else:
928
+ model_config: ClassVar[ConfigDict] = ConfigDict(arbitrary_types_allowed=True)
929
+
930
+ def get_max_retries(self, max_retries: int) -> int:
931
+ if isinstance(self.max_retries, NotGiven):
932
+ return max_retries
933
+ return self.max_retries
934
+
935
+ def _strip_raw_response_header(self) -> None:
936
+ if not is_given(self.headers):
937
+ return
938
+
939
+ if self.headers.get(RAW_RESPONSE_HEADER):
940
+ self.headers = {**self.headers}
941
+ self.headers.pop(RAW_RESPONSE_HEADER)
942
+
943
+ # override the `construct` method so that we can run custom transformations.
944
+ # this is necessary as we don't want to do any actual runtime type checking
945
+ # (which means we can't use validators) but we do want to ensure that `NotGiven`
946
+ # values are not present
947
+ #
948
+ # type ignore required because we're adding explicit types to `**values`
949
+ @classmethod
950
+ def construct( # type: ignore
951
+ cls,
952
+ _fields_set: set[str] | None = None,
953
+ **values: Unpack[FinalRequestOptionsInput],
954
+ ) -> FinalRequestOptions:
955
+ kwargs: dict[str, Any] = {
956
+ # we unconditionally call `strip_not_given` on any value
957
+ # as it will just ignore any non-mapping types
958
+ key: strip_not_given(value)
959
+ for key, value in values.items()
960
+ }
961
+ if PYDANTIC_V1:
962
+ return cast(FinalRequestOptions, super().construct(_fields_set, **kwargs)) # pyright: ignore[reportDeprecated]
963
+ return super().model_construct(_fields_set, **kwargs)
964
+
965
+ if not TYPE_CHECKING:
966
+ # type checkers incorrectly complain about this assignment
967
+ model_construct = construct