From c70aa360ef96408e3704e7dad7a72898d3b5fd7b Mon Sep 17 00:00:00 2001 From: speakeasybot Date: Fri, 30 Oct 2026 00:03:17 +0000 Subject: [PATCH 1/2] =?UTF-8?q?##=20Typescript=20SDK=20Changes:=20*=20`ope?= =?UTF-8?q?nrouter.analytics.queryAnalytics()`:=20=20=20*=20=20`request.re?= =?UTF-8?q?questBody`=20**Changed**=20(Breaking=20=E2=9A=A0=EF=B8=8F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .speakeasy/gen.lock | 253 +++++++++------ .speakeasy/gen.yaml | 2 +- .speakeasy/out.openapi.yaml | 287 ++++++++++++------ .speakeasy/workflow.lock | 10 +- RELEASES.md | 12 +- docs/models/classifierfiltersfilter.mdx | 29 ++ docs/models/classifierscalarfilter.mdx | 23 ++ .../models/classifierscalarfilteroperator.mdx | 21 ++ ...rs.mdx => classifierscalarfiltervalue.mdx} | 7 +- docs/models/classifiersetfilter.mdx | 26 ++ docs/models/classifiersetfilteroperator.mdx | 21 ++ ...alue2.mdx => classifiersetfiltervalue.mdx} | 2 +- docs/models/filter.mdx | 28 ++ docs/models/imagegenerationrequest.mdx | 38 +-- docs/models/operations/classifierfilters.mdx | 2 +- .../operations/classifierfiltersfilter.mdx | 23 -- .../operations/classifierfiltersvalue.mdx | 29 -- .../deleteinternvaultsecretrequest.mdx | 2 +- .../operations/deletevaultsecretrequest.mdx | 2 +- .../operations/getanalyticsmetadata.mdx | 2 +- docs/models/operations/granularity.mdx | 8 +- .../{granularityname.mdx => name.mdx} | 6 +- docs/models/operations/operator.mdx | 21 -- .../operations/queryanalyticsrequestbody.mdx | 2 +- docs/models/operations/value1.mdx | 27 -- docs/models/operator.mdx | 16 +- docs/models/operatorenum.mdx | 19 ++ docs/models/{operations => }/operatorname.mdx | 2 +- docs/models/rule.mdx | 10 +- .../filter.mdx => scalarfilter.mdx} | 19 +- docs/models/scalarfilteroperator.mdx | 21 ++ docs/models/scalarfiltervalue.mdx | 21 ++ docs/models/setfilter.mdx | 26 ++ docs/models/setfilteroperator.mdx | 21 ++ docs/models/setfiltervalue.mdx | 21 ++ docs/models/{operations => }/valuetype.mdx | 2 +- docs/models/vaultsecretwriterequest.mdx | 2 +- jsr.json | 2 +- package.json | 16 +- src/lib/config.ts | 4 +- src/models/classifierfiltersfilter.ts | 42 +++ src/models/classifierscalarfilter.ts | 74 +++++ src/models/classifierscalarfilteroperator.ts | 28 ++ src/models/classifiersetfilter.ts | 69 +++++ src/models/classifiersetfilteroperator.ts | 28 ++ src/models/filter.ts | 29 ++ src/models/imagegenerationrequest.ts | 4 +- src/models/index.ts | 11 + src/models/observabilityfilterrulegroup.ts | 18 +- .../operations/deleteinternvaultsecret.ts | 2 +- src/models/operations/deletevaultsecret.ts | 2 +- src/models/operations/getanalyticsmeta.ts | 88 +----- src/models/operations/queryanalytics.ts | 182 +---------- src/models/operator.ts | 81 +++++ src/models/scalarfilter.ts | 68 +++++ src/models/scalarfilteroperator.ts | 30 ++ src/models/setfilter.ts | 72 +++++ src/models/setfilteroperator.ts | 26 ++ src/models/vaultsecretwriterequest.ts | 2 +- 59 files changed, 1307 insertions(+), 634 deletions(-) create mode 100644 docs/models/classifierfiltersfilter.mdx create mode 100644 docs/models/classifierscalarfilter.mdx create mode 100644 docs/models/classifierscalarfilteroperator.mdx rename docs/models/{operations/valueclassifierfilters.mdx => classifierscalarfiltervalue.mdx} (52%) create mode 100644 docs/models/classifiersetfilter.mdx create mode 100644 docs/models/classifiersetfilteroperator.mdx rename docs/models/{operations/value2.mdx => classifiersetfiltervalue.mdx} (82%) create mode 100644 docs/models/filter.mdx delete mode 100644 docs/models/operations/classifierfiltersfilter.mdx delete mode 100644 docs/models/operations/classifierfiltersvalue.mdx rename docs/models/operations/{granularityname.mdx => name.mdx} (64%) delete mode 100644 docs/models/operations/operator.mdx delete mode 100644 docs/models/operations/value1.mdx create mode 100644 docs/models/operatorenum.mdx rename docs/models/{operations => }/operatorname.mdx (83%) rename docs/models/{operations/filter.mdx => scalarfilter.mdx} (67%) create mode 100644 docs/models/scalarfilteroperator.mdx create mode 100644 docs/models/scalarfiltervalue.mdx create mode 100644 docs/models/setfilter.mdx create mode 100644 docs/models/setfilteroperator.mdx create mode 100644 docs/models/setfiltervalue.mdx rename docs/models/{operations => }/valuetype.mdx (82%) create mode 100644 src/models/classifierfiltersfilter.ts create mode 100644 src/models/classifierscalarfilter.ts create mode 100644 src/models/classifierscalarfilteroperator.ts create mode 100644 src/models/classifiersetfilter.ts create mode 100644 src/models/classifiersetfilteroperator.ts create mode 100644 src/models/filter.ts create mode 100644 src/models/operator.ts create mode 100644 src/models/scalarfilter.ts create mode 100644 src/models/scalarfilteroperator.ts create mode 100644 src/models/setfilter.ts create mode 100644 src/models/setfilteroperator.ts diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 2cbc91a6d..6c26421e1 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,19 +1,19 @@ lockVersion: "" id: "" management: - docChecksum: 56eca4b751933993ddc5af0bb58ac751 + docChecksum: 1c2c2889af7163e9938ebf6d60f74d0b docVersion: 1.0.0 speakeasyVersion: 1.803.2 generationVersion: 2.950.13 - releaseVersion: 1.5.23 - configChecksum: 8932260a6c6813aacb0459ebec1b456f + releaseVersion: 1.5.24 + configChecksum: 2a0cd39651c143896f80786d27ef429e repoURL: https://github.com/OpenRouterTeam/typescript-sdk.git installationURL: https://github.com/OpenRouterTeam/typescript-sdk published: true persistentEdits: - generation_id: 8b04e20a-e8c9-4cf2-85b9-e80fc6bf5308 - pristine_commit_hash: c8f0f95656b3b5c4e71de37be4e6edecfed43ae6 - pristine_tree_hash: e2f87818ed3971d1cca26ddea15775d8a6384ab8 + generation_id: 99780355-27d5-4290-8af8-fa1207071da9 + pristine_commit_hash: ce100dce60cde27bdabfbc45adc88036cc1e77f8 + pristine_tree_hash: c9010282a605bf236b60c01df31c360b55bb15ae features: typescript: acceptHeaders: 2.81.2 @@ -3417,6 +3417,34 @@ trackedFiles: id: d58e7d8070a7 last_write_checksum: sha1:c9019890bf479209045bc070aa4b1155c93a4772 pristine_git_object: b8fbf01fc79a15410e983487201252b133fd43e0 + docs/models/classifierfiltersfilter.mdx: + id: 9358f89ea4b6 + last_write_checksum: sha1:012191bbac3b2d2e4ffa7f43e7c64f5e02683708 + pristine_git_object: 9f028b2036ed235cfaebe7bb803a2cace870b3fc + docs/models/classifierscalarfilter.mdx: + id: a05a60199725 + last_write_checksum: sha1:9f4fd733e5d37589967367385d32b2b2bb4fc433 + pristine_git_object: 829716b7b726e02168323a7865c4a790f29d37a9 + docs/models/classifierscalarfilteroperator.mdx: + id: a6ee854f7438 + last_write_checksum: sha1:ba88372775e37c43deb9b4c58e583a79416642d1 + pristine_git_object: 9c9c15fb0e01c2cb00734029e7e62f88f69b0445 + docs/models/classifierscalarfiltervalue.mdx: + id: 56ac9a1c6591 + last_write_checksum: sha1:223529c542dafc50e4108533a4f3a6db7a6e267f + pristine_git_object: 0448d24974b5a29d69626b878fb0beae7ba491f4 + docs/models/classifiersetfilter.mdx: + id: 71ae67907f57 + last_write_checksum: sha1:780559c63046fa0818f4b6359ee3220d6aa96de5 + pristine_git_object: 546ac4232f5fb77e734b6000f6d472f332cfa1ed + docs/models/classifiersetfilteroperator.mdx: + id: 9d7fc2ecd06b + last_write_checksum: sha1:75a3f65efa5dc8d99ffe1d412c887e8936ad7310 + pristine_git_object: f2301d75d3ccfb53644e551add9b77010fc5b8e1 + docs/models/classifiersetfiltervalue.mdx: + id: 991dbd8f4745 + last_write_checksum: sha1:60f1f9f0dfe1299d620b9cc42403ef8dfee1c2d2 + pristine_git_object: 2c31d0bbfa935b79da3d0ccf9fdad68782540698 docs/models/cleartoolinputs.md: id: 10ddcade039c last_write_checksum: sha1:9f142685effc3a2ae67f3866aefed8fdf9f875a3 @@ -5004,6 +5032,10 @@ trackedFiles: id: cdf6ffc13758 last_write_checksum: sha1:9b55619d682366955a255a219f2e2bcce2808369 pristine_git_object: 40c684106df8ee2b0b22201845956d9de7ffed6b + docs/models/filter.mdx: + id: 73caa412c01f + last_write_checksum: sha1:e362ee4f3e3b625ddfd8eaa3fc1dff5d696d93a0 + pristine_git_object: 976d90a5b4c3bbff33b0244e8ebf6910618e74de docs/models/filters.md: id: 1370bfdd2199 last_write_checksum: sha1:97587cdb3f68df634389225016a7146d7b1f555a @@ -5701,8 +5733,8 @@ trackedFiles: deleted: true docs/models/imagegenerationrequest.mdx: id: 356fa63d53c6 - last_write_checksum: sha1:0eab67d23100452af97ecdc96a76330659e5d0fc - pristine_git_object: 7f9837054f9ef3da2379da2e28a2646b452510ea + last_write_checksum: sha1:4af6d6dc65488f00eb56427061b1f9faa4ba2230 + pristine_git_object: 989e74c0cd8c66e7f08b4bbb3f535b08edfe271b docs/models/imagegenerationrequestaspectratio.md: id: 9a249a62b3ea last_write_checksum: sha1:b20eefb2c7a5306ab85fb25aca5878107c4c4b57 @@ -8361,16 +8393,8 @@ trackedFiles: pristine_git_object: dd895d557021478d27a80c5c83020624d0bbed8c docs/models/operations/classifierfilters.mdx: id: 7dcacabae6f4 - last_write_checksum: sha1:0fc566159b4d36b7caae3c6dd123e3dd3bd621d4 - pristine_git_object: 01269e8349e2fdd00dd4bf7c4ef1c85e8050aa76 - docs/models/operations/classifierfiltersfilter.mdx: - id: "805837007825" - last_write_checksum: sha1:08e376cfd350e6be4fc7aa00826312e45333dae2 - pristine_git_object: 1caec920c47cc76614a36195335007be63bc7b25 - docs/models/operations/classifierfiltersvalue.mdx: - id: eacff5c94b38 - last_write_checksum: sha1:faaa40e63e9b0c1d537ebd63865cdaddef535577 - pristine_git_object: 8b7e4ca0a945066beb1ae3ea440cd7896aed8b68 + last_write_checksum: sha1:c4316e4b7d46e7353ae697ae034236836c35c54d + pristine_git_object: 7fc6369e8469929e148866d465497b798ddbcc31 docs/models/operations/content.mdx: id: 3885c021e578 last_write_checksum: sha1:ea2b60b475e1009a53fadc6944658de69e81a298 @@ -8930,8 +8954,8 @@ trackedFiles: pristine_git_object: b2b82e069d77e5790bc8eef5b9835fd094dfe5bc docs/models/operations/deleteinternvaultsecretrequest.mdx: id: d1aa47a39e4f - last_write_checksum: sha1:e6099c2d6ad4a0816f45e8298be023812cb39fee - pristine_git_object: cd88cfc5c5754c9fb6e729ca0a90c558f894c313 + last_write_checksum: sha1:62986bcaf68f2acf7026da34215aab5e80a9e691 + pristine_git_object: 09c2d1437b7a17b4e48ae5d30cfd28b6c0fb79f6 docs/models/operations/deletekeysglobals.mdx: id: 09ab22d1aa25 last_write_checksum: sha1:0e71c8b561e1a8e410050d9a0c83428ca4869af8 @@ -9000,8 +9024,8 @@ trackedFiles: pristine_git_object: cfab57a4a7dea08e79d87caa3a911b8e92f4db0e docs/models/operations/deletevaultsecretrequest.mdx: id: 0fd28a888194 - last_write_checksum: sha1:e5a36770e245d3dbd6eb6f1ff1916b4b0e32fa0a - pristine_git_object: c8d239758b70c6cf7bc1e292650a3d5e44906669 + last_write_checksum: sha1:03089778893046097dc851bfd4ba02b4b7576757 + pristine_git_object: b92e4674453457b86fc684e852aa28186a0fd2bf docs/models/operations/deleteworkspacebudgetglobals.md: id: 7e9a1f4cb03d last_write_checksum: sha1:eba7bc81e36395f0353c074480ac92045dc08ef8 @@ -9189,10 +9213,6 @@ trackedFiles: last_write_checksum: sha1:b7057ff8c24458508e56494414e4c218be095eb2 pristine_git_object: ebd4464d1ed8b6c817711bfc52a321006e1ac1de deleted: true - docs/models/operations/filter.mdx: - id: 39bf0945d515 - last_write_checksum: sha1:9886368e493369aa93b114d437ca6c6f8fa3bc99 - pristine_git_object: 88173dd16f0795f681b404a4fe0b62d404c14c9d docs/models/operations/getanalyticsmetadata.md: id: 1b2cf59402e0 last_write_checksum: sha1:0bd0f68e2eccbf87535c7fd79a3db26c6e19a77f @@ -9200,8 +9220,8 @@ trackedFiles: deleted: true docs/models/operations/getanalyticsmetadata.mdx: id: 229fa403b859 - last_write_checksum: sha1:09afd92f75bf7139562feeaabc8655af95c278ff - pristine_git_object: 1d5d2374e0ae058fe7a14bfb4ee9884678723820 + last_write_checksum: sha1:af9a746278cc95c79cca2f44b11530fc5f6bef18 + pristine_git_object: 34dd85009118c568c4eb683b0239bda551bc5d05 docs/models/operations/getanalyticsmetaglobals.md: id: 89569b853bb5 last_write_checksum: sha1:61c4842b935776790f1de55fe0a7c2427a5a62f7 @@ -9713,17 +9733,13 @@ trackedFiles: deleted: true docs/models/operations/granularity.mdx: id: 2a083a79b710 - last_write_checksum: sha1:ee3885d19319cf607c5c30313ff9f08fbe1a44ea - pristine_git_object: b1c4d431168d8db22fa812d318ed3143735c39fa + last_write_checksum: sha1:8e2332dd1d9676c9b042c47481d3407e31938f11 + pristine_git_object: 71e4791d202cd04377c32bc8c9d5a29bb3d9f08f docs/models/operations/granularityname.md: id: 9d91524b2b83 last_write_checksum: sha1:abeeecdb63f761bd213dbf38c014ab9ca6c5164d pristine_git_object: a037684fb89098c0e6007650d026bfc9cfe9880f deleted: true - docs/models/operations/granularityname.mdx: - id: 162d4d30af53 - last_write_checksum: sha1:7444a7542cb2e79ae9661bf9082cedc4a0ad1145 - pristine_git_object: 1ee3a1ca95213b2cc6147b71bb5a5b6d0a0718df docs/models/operations/groupby.mdx: id: 2f0abce92f30 last_write_checksum: sha1:95570cdf764ef8d928566f5db49584705080fd51 @@ -10402,6 +10418,10 @@ trackedFiles: id: 379dc3070d2a last_write_checksum: sha1:e47631d04866f7ec83737e934f14391e037c3175 pristine_git_object: 8f8eda2492414470708913261e9001072c96a24d + docs/models/operations/name.mdx: + id: b74a0e1c359f + last_write_checksum: sha1:4a864d39eef3a1456f324ee675a7ec8e7d684994 + pristine_git_object: 049f6175fdc0322aaf5f1f8c7226a599db5638ee docs/models/operations/objectembedding.mdx: id: 13e39ce5a598 last_write_checksum: sha1:31812369e37f0b89e45d2b28acaa802189a9fcd3 @@ -10415,19 +10435,11 @@ trackedFiles: last_write_checksum: sha1:484fd213fc62dab761c29fe4ede19870f0e9134a pristine_git_object: 2eefff4dd6ad55a0feced9c708c698edd6a1063a deleted: true - docs/models/operations/operator.mdx: - id: d13936b3f76e - last_write_checksum: sha1:a0ba3e732f2d80ddd68cddea56d31fc12a2677a1 - pristine_git_object: f035c0becbac40c1b95bc6a45de3c189cbb82668 docs/models/operations/operatorname.md: id: 793e3efb0d4d last_write_checksum: sha1:02b7ef364d625d28c8bbcadb9632e865093dbb2e pristine_git_object: 06c714030508d114ea42ee9b5ffabb7aff8b4cbb deleted: true - docs/models/operations/operatorname.mdx: - id: b294400755e1 - last_write_checksum: sha1:80d09360714e8f88e3ee9c6c26a4060fe454e8cc - pristine_git_object: bc08f3777ea213bf4bb7b4df242cd562be4dcc78 docs/models/operations/options.md: id: 3f7dfb3c7f5a last_write_checksum: sha1:b01d3d0402184121e57a37f10bd45e520fa9b9a1 @@ -10519,8 +10531,8 @@ trackedFiles: deleted: true docs/models/operations/queryanalyticsrequestbody.mdx: id: 9bd8cc2c12e1 - last_write_checksum: sha1:2424a7b9de376b67973a5fdc0781cbf4a4f87cea - pristine_git_object: 8a6893950d5d2276557b6a8b7c1239e1668f4839 + last_write_checksum: sha1:f764b7e9fc7efbe437c30f2b90a3ff8ba102cee0 + pristine_git_object: 610af8d4dc61e865ecf291f46905d4c7b302f226 docs/models/operations/queryanalyticsresponse.md: id: 4706b1ab5bf4 last_write_checksum: sha1:3f51b6c9e86a149e013899b7176f5b50ee1d176b @@ -10875,32 +10887,16 @@ trackedFiles: last_write_checksum: sha1:98df0eba6dcf58b45422c81fd5bba8eb0bee94fa pristine_git_object: 53413f58f636b1c4a95df181465e4eb829e17c39 deleted: true - docs/models/operations/value1.mdx: - id: 9bfea2c4987d - last_write_checksum: sha1:d38d86be2f646a8bf262a72ec56c8c09104182eb - pristine_git_object: aeea6bf2acb8472634df623d6409b078bd4e7846 docs/models/operations/value2.md: id: ff7c100bc64d last_write_checksum: sha1:999260a5f36f2d01d5061c01e1126bfd7f24d14c pristine_git_object: fc00e396be70d835c26c0dfa1bc4f5f634de0438 deleted: true - docs/models/operations/value2.mdx: - id: 0888b2d6aa69 - last_write_checksum: sha1:d7df120c2c7dcc9f2e196d6c17fef03900a442df - pristine_git_object: 8587e98cbfb6991cfd3914b2da7ff18748fd38bf - docs/models/operations/valueclassifierfilters.mdx: - id: e1cf822fc2d4 - last_write_checksum: sha1:09f17175447b8be5e0d228ec75e25889d6dde49b - pristine_git_object: 72e0a23c93df8e87299f828051b9c1165762541b docs/models/operations/valuetype.md: id: ad6c1c317816 last_write_checksum: sha1:10216b4dccedfc76c578c983a84eb8434fb81057 pristine_git_object: ff18b2fae70d2cc7f61116295723643ce4997d46 deleted: true - docs/models/operations/valuetype.mdx: - id: 33042f33bbd6 - last_write_checksum: sha1:330e6351d8bc5be3af656ee77191557de7cf148d - pristine_git_object: 51b7399f6d79e6e0f814d1558bfc7cfa849d8870 docs/models/operations/window.md: id: 22a97bd1759f last_write_checksum: sha1:91e118646eedfe6e353d93d4aa0d99d716fe8da1 @@ -10931,8 +10927,16 @@ trackedFiles: deleted: true docs/models/operator.mdx: id: 7489995ee696 - last_write_checksum: sha1:f6f4ca2c70e30255a54081044993105d556b6644 - pristine_git_object: a48254f9b873ee185e2c91a55811ab484317c975 + last_write_checksum: sha1:eb307f1bff3b0e9eda59dc8a8ccce1f8b2eb673f + pristine_git_object: f1309be2bc977ce95a692a8839910653c00c9791 + docs/models/operatorenum.mdx: + id: 6f3fe2e1250e + last_write_checksum: sha1:8d1b2d4f2124c890cca1ad72711cfc9bb3fcf24d + pristine_git_object: 0c4e9a2b23eeef97c92c7f91723f970b368d47f0 + docs/models/operatorname.mdx: + id: a84572df0c85 + last_write_checksum: sha1:32f3487475e42e5954d1bda5acfa640fa4f9288a + pristine_git_object: e324c9f989b6cc1ad561bc2dae2d0573de838479 docs/models/options.md: id: 5363d2a90efd last_write_checksum: sha1:fd0f88eeb9293f9297f53e92ca1d36af166d1349 @@ -13171,8 +13175,20 @@ trackedFiles: deleted: true docs/models/rule.mdx: id: a90e6f37132b - last_write_checksum: sha1:d08357d5f616036545610fca7b69f8c0df53d55d - pristine_git_object: 6446e182839f41727ee8f433075c64cb49c2e744 + last_write_checksum: sha1:c1608900448169eb93fe9050393806d41921491e + pristine_git_object: 7ceaf0746e5452688bda7e97f3b43c2d3d745e1f + docs/models/scalarfilter.mdx: + id: 21c0b07cc0e4 + last_write_checksum: sha1:9ff6ff9ae5062b9190412b66f4539966174bcb58 + pristine_git_object: 43dd6a52c90f14845914ce25ac122024a75dbb42 + docs/models/scalarfilteroperator.mdx: + id: fbda1b059e2e + last_write_checksum: sha1:5063e855a254de8d971fb4082ea67e947735f665 + pristine_git_object: 32698df0a54aa944e35a68723494e3bfe8e3e223 + docs/models/scalarfiltervalue.mdx: + id: f03ad52d5e83 + last_write_checksum: sha1:b8db032bcaf50a6c7f969ba02b8b2f7aa20e69b6 + pristine_git_object: 86fdd67d249a448a4529d0ad48388f531d635878 docs/models/scimgroup.mdx: id: 05083a5c381f last_write_checksum: sha1:5c5949106a074a7cabcb5c909b432f8b53abc015 @@ -13346,6 +13362,18 @@ trackedFiles: id: f5f5ba2df21a last_write_checksum: sha1:8e6a42a6c4f48cee14afa1dc85409aea10c3fcf5 pristine_git_object: cdea38dcb8c7560a540bc8b929362b0d5c8bd8bf + docs/models/setfilter.mdx: + id: a9e13e27da0c + last_write_checksum: sha1:461b81d6ca07cc0dc8b15ca88f5438c4090e78fd + pristine_git_object: cc4b32110d235a893608273bc93b2d77b2660156 + docs/models/setfilteroperator.mdx: + id: a9a67619202a + last_write_checksum: sha1:30010b6d962e0c09ca3efd654fc98c0471bdf0d5 + pristine_git_object: 3c81b6d8a319065910d21e7a4dba623c7d10ec46 + docs/models/setfiltervalue.mdx: + id: 848c0d9d0b99 + last_write_checksum: sha1:7719d26c4349de965983ac7a22ae49d61dba9333 + pristine_git_object: a4532f1a020d3ae4d3cc4889512fbf9517a48433 docs/models/shadowedby.mdx: id: c45218bca65d last_write_checksum: sha1:ceeb20a4a5f46d7cfbc5a66bdfa9ccb5f75fc9bb @@ -14971,6 +14999,10 @@ trackedFiles: last_write_checksum: sha1:6a308cb36ac4093c71db9b30b0dacb56e9a69d45 pristine_git_object: bc3d57a239e953ecbf8db811e906c50c38d7fd60 deleted: true + docs/models/valuetype.mdx: + id: ffb080f756a4 + last_write_checksum: sha1:abf6f8efe7189deb185dcea46c08e5aa0b68ea27 + pristine_git_object: 09557ff706cae5cb5c834a7996bab7822cc86127 docs/models/variables.mdx: id: a898d6bbef33 last_write_checksum: sha1:02aa8646079d62293338ef295481809bfe413ece @@ -15013,8 +15045,8 @@ trackedFiles: pristine_git_object: f2eca8dbc433ed03bb068f11258ab9f24b2f2aca docs/models/vaultsecretwriterequest.mdx: id: 8a53e6f590fe - last_write_checksum: sha1:57262303603915e633c8182fd13ba0d4197e1ec6 - pristine_git_object: 8a3da06462768b3a93a95f6c505300b74bc1801d + last_write_checksum: sha1:3f81a91b2db1ae6d40560bce0b97a48871e07eef + pristine_git_object: 4eab6d757ce42bb87e437dc3cf3acf3425d1382b docs/models/verbosity.md: id: a29d18f70f3d last_write_checksum: sha1:3a879217bbe2b2d711891b1d521d3e1fb2035a08 @@ -15683,12 +15715,12 @@ trackedFiles: pristine_git_object: 410efafd6a7f50d91ccb87131fedbe0c3d47e15a jsr.json: id: 7f6ab7767282 - last_write_checksum: sha1:d9ce420af1bbf8f75b7fa25c12b3ad7eb371eaf2 - pristine_git_object: 092cf85f304bf2345bfb8f045b9aea49635958bd + last_write_checksum: sha1:c0456be8014517c1c5fa34e68c7fdc2c29bb0271 + pristine_git_object: b940dae83d21af888d3a85298a2b819257df37e6 package.json: id: 7030d0b2f71b - last_write_checksum: sha1:7277a039b3d9fe09913f1e5f9e2b1bbc00c46d8d - pristine_git_object: e8bde550f5bd968374ccfab50ef2fe270f4f5315 + last_write_checksum: sha1:6e6f1365e8c4d1db917ede44f577fb086d889e55 + pristine_git_object: 38502067b1b07f86f7eead2e7ab2112e0ac1630c src/core.ts: id: f431fdbcd144 last_write_checksum: sha1:5aa66b0b6a5964f3eea7f3098c2eb3c0ee9c0131 @@ -16291,8 +16323,8 @@ trackedFiles: pristine_git_object: a187e58707bdb726ca2aff74941efe7493422d4e src/lib/config.ts: id: 320761608fb3 - last_write_checksum: sha1:e1514d9ef9c010d1f2b1273b166ae831438cc866 - pristine_git_object: 37c8b688fb07331d16ab68de25e0ac41f224fba1 + last_write_checksum: sha1:b73af6965258ecdaa7c6197c041cc75384f01dfb + pristine_git_object: 8e4e3161490601cc0ecb9fc2e101cc90a75a9644 src/lib/dlv.ts: id: b1988214835a last_write_checksum: sha1:eaac763b22717206a6199104e0403ed17a4e2711 @@ -17271,6 +17303,26 @@ trackedFiles: id: a67d6bbce478 last_write_checksum: sha1:5e2121d2200628c5556505aef016189e5b1b1f2e pristine_git_object: cce448221b795e92fca06a9b28766fdb596487c1 + src/models/classifierfiltersfilter.ts: + id: 0dfaa0b42d0d + last_write_checksum: sha1:b56be360e3e87d9913269f45f03780042b24db66 + pristine_git_object: 8c6abeaeeed0517dfb947ac1f33e590ceaeccf65 + src/models/classifierscalarfilter.ts: + id: 46c64a60f2ad + last_write_checksum: sha1:66c3d1414a1047a8992c265fd0213d70680ae283 + pristine_git_object: eb98d5ab075d52030ac11d936bf528e9ac675513 + src/models/classifierscalarfilteroperator.ts: + id: be3daabcb488 + last_write_checksum: sha1:ebb00803db330ad92704e8e66d6241ef1602201f + pristine_git_object: 940865dd208e5a35466ccc78b2dcdd4955356fda + src/models/classifiersetfilter.ts: + id: 469f32f201f3 + last_write_checksum: sha1:38a3ed7d65e37aa135f59b2b7cbc7dbdd62b3a77 + pristine_git_object: 9e20e752e4f7a30bc898431de2a2e6f171e31d6c + src/models/classifiersetfilteroperator.ts: + id: 51a625e91249 + last_write_checksum: sha1:557ed1f03b34360abf93b4b90ebe39ae2da1ad84 + pristine_git_object: 4dc22f867a184d434dc16bc38b30e30de49cddaf src/models/clientclosedrequestresponseerrordata.ts: id: ce503b476fc7 last_write_checksum: sha1:a48ee0fba9703fcf3d3ad85390456bdf70560b0f @@ -17827,6 +17879,10 @@ trackedFiles: id: 9e169d1b0b62 last_write_checksum: sha1:5bb6078118ad9978f983a04d2cf4f1f472c10cdc pristine_git_object: 48c95b6fa6f4879cb25e212af26b5aaaa55bfad9 + src/models/filter.ts: + id: bf04a8cd8dcd + last_write_checksum: sha1:9a106e24db011a75177cfab7752e3c6729bb3b9c + pristine_git_object: 331bcea362c7050dceaa4839153074e12b9f3b3b src/models/finishreason.ts: id: ceaee02b253a last_write_checksum: sha1:90440278a5ad521300686a5817ec791ec0f554d4 @@ -18045,8 +18101,8 @@ trackedFiles: pristine_git_object: fb3675f280860a384f4fb63367bd526494a1a649 src/models/imagegenerationrequest.ts: id: ea1ffc0d2470 - last_write_checksum: sha1:316e9126c70b4dc1d5232f2e301abb92de4a3ee6 - pristine_git_object: 889f049a0cd24eecb4c2ba96d6f98053aa3580fe + last_write_checksum: sha1:a68bcc0920590fa9335fbe7043702d61aaec45df + pristine_git_object: fa8e5f216d3373e57a9c503c032fd8459540d8c2 src/models/imagegenerationresponse.ts: id: 18aeba0f13cc last_write_checksum: sha1:4cd19da234bbdae4d406bd1cbc9629bd2e15f2a5 @@ -18125,8 +18181,8 @@ trackedFiles: pristine_git_object: 7abdfe096d3adff317db6837dc689c69db92e127 src/models/index.ts: id: f93644b0f37e - last_write_checksum: sha1:c1504241e88cbd1a1b27188700a8b45ac06ebccb - pristine_git_object: 0ca5fe3d7e09a40cfe554fd79ac95ceb5b4e673a + last_write_checksum: sha1:3e3ccf0b0880b7c3f478a0bf0212df2a30997766 + pristine_git_object: c0488bd456cb11b754dc070566a1d60e65a87f66 src/models/inputaudio.ts: id: 9bdc14c7565f last_write_checksum: sha1:cc3b750b39a3c3563b76930fd2989f9bfdb24c1f @@ -18461,8 +18517,8 @@ trackedFiles: pristine_git_object: bb6e6b2f5d690579fb84343a1d83bb660ca8e0d7 src/models/observabilityfilterrulegroup.ts: id: 8d44f7499b39 - last_write_checksum: sha1:4ea28d465cc3ff8c9e30ab664591a2e49d4e1843 - pristine_git_object: 42909345ed6cbb5797caef0e9f1da81dbe306eb6 + last_write_checksum: sha1:34dd5e3a4c4efee47d3539c00d8d55fde1c78c7f + pristine_git_object: 820cb2b8eff50cb99f3f1c1411cfbbd7d06cd405 src/models/observabilityfilterrulesconfig.ts: id: 297eacee53a2 last_write_checksum: sha1:4f22982e51f0d8cf222c998fab79d90c67d5d4d4 @@ -18773,8 +18829,8 @@ trackedFiles: pristine_git_object: 9f9996b3729c03bc6f64457f2cb9507348519276 src/models/operations/deleteinternvaultsecret.ts: id: b715772a86c5 - last_write_checksum: sha1:8ca5e5f4434cfb297ac245a1563d482d6595ac75 - pristine_git_object: 26117d24b3cea7dbbc577bdd19a7f98505a0dc52 + last_write_checksum: sha1:d12930a88067af9f3e358bc1d90165e506402a2c + pristine_git_object: 466a4728e8446745bdba39623d1ca1c5c516870f src/models/operations/deletekeys.ts: id: efa22339a3d6 last_write_checksum: sha1:b378797761e4c19909fc8889a01dce2d230c55af @@ -18797,8 +18853,8 @@ trackedFiles: pristine_git_object: 45d7fdf9e103ebc9c1f0e1f955fdfa1adb80f277 src/models/operations/deletevaultsecret.ts: id: 8a4e4d594e51 - last_write_checksum: sha1:27e7ada0105f18a5119df0100ea0f1cd9919d7d9 - pristine_git_object: 993b791558e4f185bcf249449ac14bf59dfd8da2 + last_write_checksum: sha1:24b355ce8d1a8828b45d5d1a19ec9cb681483996 + pristine_git_object: 06bdb0c92646f7055ed19cbc6df50aed02077ece src/models/operations/deleteworkspace.ts: id: 38325c1278ba last_write_checksum: sha1:75b7b270aaafc68898a90e57ddfe42cddb4314ea @@ -18829,8 +18885,8 @@ trackedFiles: pristine_git_object: 118b7a12302d34ae0b854ee66c17ca70e2d2801b src/models/operations/getanalyticsmeta.ts: id: 55adc33e474c - last_write_checksum: sha1:4a90c35a05d9a76c06f0f686dd3774e2f29fa52d - pristine_git_object: 431a28574a56c9a6047c757d073a8f21e4d7ace1 + last_write_checksum: sha1:a2994e3a044e8e8e0c2a60fbea723ed6be2b7641 + pristine_git_object: c7094196525fbe0f8872597bef94a511f03b2727 src/models/operations/getapprankings.ts: id: edd3364e84c1 last_write_checksum: sha1:3368aad033c01d34f611ba291e8cd555a107310a @@ -19117,8 +19173,8 @@ trackedFiles: pristine_git_object: ec58a5137bcc192799ece358f9ef949eb11bb6c3 src/models/operations/queryanalytics.ts: id: 2b9c6044e362 - last_write_checksum: sha1:7cb0a811810f6164517fcc8ebcd3b81bdd840e84 - pristine_git_object: bd762b37545ad5dd4e9f89a7282c12696bbbe34e + last_write_checksum: sha1:5d7ff422bdd0a6da618cc9f02beebb8911a97b88 + pristine_git_object: 935b3283745f165162d3657fac23d4c226c7c022 src/models/operations/sendchatcompletionrequest.ts: id: 52a55a780d2d last_write_checksum: sha1:e4b5e0b9cf265e98a00d8fa2f5e528d81b296285 @@ -19195,6 +19251,10 @@ trackedFiles: id: 7b1a6ff8bf8d last_write_checksum: sha1:47a54115bcb5376948bf5d3ec1e03b8a48f390a3 pristine_git_object: 70c510f4f371e9ff40affc2d90689ad709a4b46f + src/models/operator.ts: + id: 2c6d6b8bb46a + last_write_checksum: sha1:c7ef6a0a6fb8c4156372f39b2d8ae549d6dcf4fc + pristine_git_object: d852c41a486f34e8edad2adca048a555e3fdc439 src/models/oranthropicbashtoolresult.ts: id: 13070e32efe3 last_write_checksum: sha1:097525bdec2eb64b1eca30509a31f9c7127c6537 @@ -19775,6 +19835,14 @@ trackedFiles: id: 40bcbedca097 last_write_checksum: sha1:9f9bf04124b2f1022cde02da6fb3458b49e66cf4 pristine_git_object: 8596dcbaa7461760fa0e86132cdd735a8a360aff + src/models/scalarfilter.ts: + id: a35bae1c804d + last_write_checksum: sha1:570f4f26a01edf7e8c78e0af19c210a8b0296ad1 + pristine_git_object: dcc88be58439c8f25091040742f6a13f731ff8cc + src/models/scalarfilteroperator.ts: + id: 25c4ab8aa37c + last_write_checksum: sha1:199e20249ac369f98412f8a84fe659baf5025e89 + pristine_git_object: d3255a55cea7a63bcdd4d67ebea28aa51c2f572a src/models/scimgroup.ts: id: 660f64066687 last_write_checksum: sha1:931474f2a310bfd7064ac922edeabec04a1a1c59 @@ -19863,6 +19931,14 @@ trackedFiles: id: 312132889b9f last_write_checksum: sha1:feec63b3f2023e64dcad1ba586ba951af96c6916 pristine_git_object: 3dacfded326c17d47f940a668df4314d418e2b2f + src/models/setfilter.ts: + id: 996a872ffcc5 + last_write_checksum: sha1:cbc8052396b4a0f198e2c23164b501d12206717e + pristine_git_object: 43e36eba4cc8adb7abf4ff9b23f5e1658a7ec59e + src/models/setfilteroperator.ts: + id: 96f1a2679754 + last_write_checksum: sha1:2a07c00392d630bd70810f2e3fd863450a256ffc + pristine_git_object: 4c676c8e8d9c613dff792dcd619f134edf0f1989 src/models/shellcallitem.ts: id: a94bd412c431 last_write_checksum: sha1:fd7c56dd27fa8b3ae5fa1b9e8c1259d4e2cbccb4 @@ -20301,8 +20377,8 @@ trackedFiles: pristine_git_object: d96886e573aab99923738ffb9a771c34b34ce97b src/models/vaultsecretwriterequest.ts: id: fa3836b8b8e1 - last_write_checksum: sha1:2bb7a889a22353bf78b83fff72ecb5aecf947faf - pristine_git_object: fcb320875bf6acf4d359f04c3c475d8688da5a2d + last_write_checksum: sha1:f73a4c8ed43378227a2ceccd1b7aba3302831d60 + pristine_git_object: 3f4ce36fdce427dd3f1feb9e96760f15a5a60161 src/models/videogenerationrequest.ts: id: e72ea2e4c5b3 last_write_checksum: sha1:da0ba0a628df47041f4d3706fba44f0626452958 @@ -25181,3 +25257,4 @@ examples: "502": application/json: {"error": {"code": 502, "message": "Provider returned error"}} examplesVersion: 1.0.2 +releaseNotes: "## Typescript SDK Changes:\n* `openrouter.analytics.queryAnalytics()`: \n * `request.requestBody` **Changed** (Breaking ⚠️)\n" diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 0263efaba..155a7cfe1 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -38,7 +38,7 @@ generation: documentation: mintlify preApplyUnionDiscriminators: true typescript: - version: 1.5.23 + version: 1.5.24 acceptHeaderEnum: false additionalDependencies: dependencies: diff --git a/.speakeasy/out.openapi.yaml b/.speakeasy/out.openapi.yaml index 296a509f4..531384da2 100644 --- a/.speakeasy/out.openapi.yaml +++ b/.speakeasy/out.openapi.yaml @@ -8860,6 +8860,72 @@ components: required: - 'type' type: 'object' + ClassifierFiltersFilter: + anyOf: + - $ref: '#/components/schemas/ClassifierScalarFilter' + - $ref: '#/components/schemas/ClassifierSetFilter' + ClassifierScalarFilter: + properties: + field: + description: 'Classifier dimension name to filter on (snake_case identifier, e.g. "department", "work_type").' + example: 'department' + pattern: '^[a-zA-Z_][a-zA-Z0-9_]{0,63}$' + type: 'string' + operator: + $ref: '#/components/schemas/ClassifierScalarFilterOperator' + value: + anyOf: + - type: 'string' + - format: 'double' + type: 'number' + description: 'Scalar (string or number) filter value.' + example: 'Engineering' + required: + - 'field' + - 'operator' + - 'value' + type: 'object' + ClassifierScalarFilterOperator: + description: 'Equality operator taking a scalar filter value. Ordered comparisons are not available because classification values are strings.' + enum: + - 'eq' + - 'neq' + example: 'eq' + type: 'string' + x-speakeasy-unknown-values: allow + ClassifierSetFilter: + properties: + field: + description: 'Classifier dimension name to filter on (snake_case identifier, e.g. "department", "work_type").' + example: 'department' + pattern: '^[a-zA-Z_][a-zA-Z0-9_]{0,63}$' + type: 'string' + operator: + $ref: '#/components/schemas/ClassifierSetFilterOperator' + value: + description: 'Array of scalar filter values.' + example: + - 'Engineering' + - 'Support' + items: + anyOf: + - type: 'string' + - format: 'double' + type: 'number' + type: 'array' + required: + - 'field' + - 'operator' + - 'value' + type: 'object' + ClassifierSetFilterOperator: + description: 'Set-membership operator taking an array filter value.' + enum: + - 'in' + - 'not_in' + example: 'in' + type: 'string' + x-speakeasy-unknown-values: allow ClientClosedRequestResponse: description: 'Client Closed Request - The caller cancelled the request' example: @@ -9978,7 +10044,7 @@ components: example: 'employee_123' maxLength: 512 minLength: 1 - pattern: '^[^\u0000]+$' + pattern: '^(?!\s)(?![\s\S]*\s$)[^\u0000]+$' type: 'string' required: - 'user' @@ -11728,7 +11794,7 @@ components: example: 'employee_123' maxLength: 512 minLength: 1 - pattern: '^[^\u0000]+$' + pattern: '^(?!\s)(?![\s\S]*\s$)[^\u0000]+$' type: 'string' required: - 'user' @@ -12009,6 +12075,10 @@ components: example: {} properties: {} type: 'object' + Filter: + anyOf: + - $ref: '#/components/schemas/ScalarFilter' + - $ref: '#/components/schemas/SetFilter' FinishReason: enum: - 'stop' @@ -14279,7 +14349,7 @@ components: example: 1 type: 'integer' output_compression: - description: 'Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob.' + description: 'Compression level (0-100) for jpeg/webp output. Ignored by providers without a compression knob; providers that honor it may reject it with other output formats (e.g. OpenAI requires output_format "jpeg" or "webp").' example: 100 type: 'integer' output_format: @@ -14332,7 +14402,7 @@ components: maxLength: 256 type: 'string' size: - description: 'Optional. A convenience shorthand for output dimensions — pass a tier ("2K", "4K") or explicit pixels ("2048x2048") and we normalize it to the right dimensions for the chosen provider. A tier size is equivalent to setting `resolution` and combines with `aspect_ratio`. An explicit pixel size is authoritative: a mismatched `resolution` or `aspect_ratio` alongside it is rejected with a 400.' + description: 'Optional. A convenience shorthand for output dimensions — pass a tier ("2K", "4K") or explicit pixels ("2048x2048"). A tier size is equivalent to setting `resolution` and combines with `aspect_ratio`. Explicit pixel sizes are provider-dependent: providers that accept them treat the value as authoritative and reject a mismatched `resolution` or `aspect_ratio` alongside it with a 400. xAI and Sourceful V2/V2.5 reject explicit pixel sizes (use `resolution` and `aspect_ratio` there); Sourceful V2.6 supports them within its dimension limits and does not allow combining them with `resolution` or `aspect_ratio`.' example: '2K' type: 'string' stream: @@ -22877,6 +22947,33 @@ components: required: - 'type' type: 'object' + Operator: + properties: + name: + description: 'Operator identifier used in filter definitions' + enum: + - 'eq' + - 'neq' + - 'in' + - 'not_in' + - 'gt' + - 'gte' + - 'lt' + - 'lte' + example: 'eq' + type: 'string' + x-speakeasy-unknown-values: allow + value_type: + description: 'Whether the operator expects a single value or an array' + enum: + - 'scalar' + - 'array' + type: 'string' + x-speakeasy-unknown-values: allow + required: + - 'name' + - 'value_type' + type: 'object' ORAnthropicBashToolResult: description: 'Output of an `openrouter:bash` call executed in the OpenRouter sandbox (`engine: ''openrouter''`)' example: @@ -28952,6 +29049,37 @@ components: example: 'direct' type: 'string' x-speakeasy-unknown-values: allow + ScalarFilter: + properties: + field: + description: 'Dimension to filter on. Use the /meta endpoint for available dimensions.' + example: 'model' + type: 'string' + operator: + $ref: '#/components/schemas/ScalarFilterOperator' + value: + anyOf: + - type: 'string' + - format: 'double' + type: 'number' + description: 'Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned.' + required: + - 'field' + - 'operator' + - 'value' + type: 'object' + ScalarFilterOperator: + description: 'Comparison operator taking a scalar filter value.' + enum: + - 'eq' + - 'neq' + - 'gt' + - 'gte' + - 'lt' + - 'lte' + example: 'eq' + type: 'string' + x-speakeasy-unknown-values: allow ScimGroup: example: created_at: '2025-08-24T10:30:00.000Z' @@ -29577,6 +29705,38 @@ components: - 'data' - 'meta' type: 'object' + SetFilter: + properties: + field: + description: 'Dimension to filter on. Use the /meta endpoint for available dimensions.' + example: 'model' + type: 'string' + include_unset: + description: 'Include rows where the dimension has no value. Applies only to dimensions that have an unset bucket.' + type: 'boolean' + operator: + $ref: '#/components/schemas/SetFilterOperator' + value: + items: + anyOf: + - type: 'string' + - format: 'double' + type: 'number' + description: 'Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned.' + type: 'array' + required: + - 'field' + - 'operator' + - 'value' + type: 'object' + SetFilterOperator: + description: 'Set-membership operator taking an array filter value.' + enum: + - 'in' + - 'not_in' + example: 'in' + type: 'string' + x-speakeasy-unknown-values: allow ShellCallItem: description: 'A shell command execution call (newer variant)' example: @@ -33846,8 +34006,8 @@ components: minItems: 1 type: 'array' value: - description: 'Secret value, 1 to 65536 characters. It is encrypted at rest and never returned.' - maxLength: 65536 + description: 'Secret value, 1 to 65536 characters; a header-set credential (a JSON object of header name to value) may run to 985721 characters. It is encrypted at rest and never returned.' + maxLength: 985721 minLength: 1 type: 'string' required: @@ -35307,32 +35467,7 @@ paths: type: 'array' operators: items: - properties: - name: - description: 'Operator identifier used in filter definitions' - enum: - - 'eq' - - 'neq' - - 'in' - - 'not_in' - - 'gt' - - 'gte' - - 'lt' - - 'lte' - example: 'eq' - type: 'string' - x-speakeasy-unknown-values: allow - value_type: - description: 'Whether the operator expects a single value or an array' - enum: - - 'scalar' - - 'array' - type: 'string' - x-speakeasy-unknown-values: allow - required: - - 'name' - - 'value_type' - type: 'object' + $ref: '#/components/schemas/Operator' type: 'array' required: - 'metrics' @@ -35412,6 +35547,7 @@ paths: items: description: 'Classifier dimension name (snake_case identifier). Each name becomes its own column key in the response; providing two names cross-groups results by both dimensions. With no names, the response uses `clf_dimension_name`/`clf_dimension_value` columns (one row per dimension/value pair).' example: 'department' + pattern: '^[a-zA-Z_][a-zA-Z0-9_]{0,63}$' type: 'string' maxItems: 2 type: 'array' @@ -35431,33 +35567,7 @@ paths: type: 'string' filters: items: - properties: - field: - description: 'Classifier dimension name to filter on (snake_case identifier, e.g. "department", "work_type").' - example: 'department' - type: 'string' - operator: - description: 'Filter operator. Only equality/set operators are supported (eq, neq, in, not_in) — ordered comparisons are not available because classification values are strings.' - example: 'eq' - type: 'string' - value: - anyOf: - - type: 'string' - - format: 'double' - type: 'number' - - items: - anyOf: - - type: 'string' - - format: 'double' - type: 'number' - type: 'array' - description: 'Filter value. Use a scalar (string or number) for eq/neq, or an array for in/not_in.' - example: 'Engineering' - required: - - 'field' - - 'operator' - - 'value' - type: 'object' + $ref: '#/components/schemas/ClassifierFiltersFilter' maxItems: 10 minItems: 1 type: 'array' @@ -35474,35 +35584,7 @@ paths: type: 'array' filters: items: - properties: - field: - description: 'Dimension to filter on. Use the /meta endpoint for available dimensions.' - example: 'model' - type: 'string' - include_unset: - description: 'Include rows where the dimension has no value. Applies only to the `in` and `not_in` operators and dimensions that have an unset bucket.' - type: 'boolean' - operator: - description: 'Filter operator' - example: 'eq' - type: 'string' - value: - anyOf: - - type: 'string' - - format: 'double' - type: 'number' - - items: - anyOf: - - type: 'string' - - format: 'double' - type: 'number' - type: 'array' - description: 'Filter value (scalar or array depending on operator). Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned.' - required: - - 'field' - - 'operator' - - 'value' - type: 'object' + $ref: '#/components/schemas/Filter' maxItems: 20 type: 'array' granularity: @@ -36061,7 +36143,9 @@ paths: keyterms[]: description: 'Domain terms, names, or phrases to bias recognition toward; repeat the part once per term (keyterms=... is also accepted). Only supported by some providers; 400 when the selected model cannot use keyterms.' items: + maxLength: 100 type: 'string' + maxItems: 1000 type: 'array' language: description: 'The language of the input audio (ISO-639-1).' @@ -36086,9 +36170,12 @@ paths: source_url: description: 'Publicly reachable http(s) URL of the audio file, downloaded by the provider directly (no size limit on our side). The format is derived from the URL path extension. Only supported by some providers; exactly one of file or source_url is required.' format: 'uri' + maxLength: 8000 type: 'string' temperature: description: 'The sampling temperature.' + maximum: 1 + minimum: 0 type: 'number' timestamp_granularities[]: description: 'Timestamp detail levels to include when response_format is "verbose_json". "word" additionally returns word-level timestamps in the words array.' @@ -39922,7 +40009,7 @@ paths: example: 'employee_123' maxLength: 512 minLength: 1 - pattern: '^[^\u0000]+$' + pattern: '^(?!\s)(?![\s\S]*\s$)[^\u0000]+$' type: 'string' - description: 'Include deactivated registrations.' in: 'query' @@ -40110,7 +40197,7 @@ paths: example: 'employee_123' maxLength: 512 minLength: 1 - pattern: '^[^\u0000]+$' + pattern: '^(?!\s)(?![\s\S]*\s$)[^\u0000]+$' type: 'string' responses: '204': @@ -40173,7 +40260,7 @@ paths: example: 'employee_123' maxLength: 512 minLength: 1 - pattern: '^[^\u0000]+$' + pattern: '^(?!\s)(?![\s\S]*\s$)[^\u0000]+$' type: 'string' responses: '200': @@ -40256,7 +40343,7 @@ paths: example: 'employee_123' maxLength: 512 minLength: 1 - pattern: '^[^\u0000]+$' + pattern: '^(?!\s)(?![\s\S]*\s$)[^\u0000]+$' type: 'string' requestBody: content: @@ -52449,14 +52536,13 @@ paths: example: '7c9e6679-7425-40de-944b-e07fc1f90ae7' format: 'uuid' type: 'string' - - description: 'Secret name. Lowercase letters, digits and single underscores, starting with a letter and not ending with an underscore, 1 to 255 characters.' + - description: 'Existing secret name. Accepts legacy names stored before the 255-character write bound; new writes still require the documented name format.' in: 'path' name: 'name' required: true schema: - description: 'Secret name. Lowercase letters, digits and single underscores, starting with a letter and not ending with an underscore, 1 to 255 characters.' + description: 'Existing secret name. Accepts legacy names stored before the 255-character write bound; new writes still require the documented name format.' example: 'github_token' - maxLength: 255 minLength: 1 pattern: '^(?!.*__)[a-z]([a-z0-9_]*[a-z0-9])?$' type: 'string' @@ -52785,7 +52871,7 @@ paths: message: 'Request body too large' schema: $ref: '#/components/schemas/PayloadTooLargeResponse' - description: 'Payload Too Large - The JSON body exceeds 425000 bytes.' + description: 'Payload Too Large - The JSON body exceeds 1309643 bytes.' '429': content: application/json: @@ -53011,7 +53097,7 @@ paths: message: 'Request body too large' schema: $ref: '#/components/schemas/PayloadTooLargeResponse' - description: 'Payload Too Large - The JSON body exceeds 425000 bytes.' + description: 'Payload Too Large - The JSON body exceeds 1309643 bytes.' '429': content: application/json: @@ -53312,14 +53398,13 @@ paths: description: 'Deletes a secret from the workspace of the authenticated API key. Returns 204 with no body on success and 404 when the secret does not exist in the selected scope. Writes return 503 while vault writes are disabled for the caller. The scope is selected by the API key: workspace routes act on the key''s active workspace and intern routes act on one intern inside that workspace. There is no default workspace and no fallback to another scope. Every vault route, including reads, requires access to the Intern API programme and returns 404 outside it. An intern''s own API key is confined to that intern: it can always read the intern''s secrets and effective secrets, writes to them follow the rules above, and every other intern and every workspace route answers 404. Requests on regional hostnames such as `eu.openrouter.ai` are refused. [API key](/docs/api-reference/authentication) required.' operationId: 'deleteVaultSecret' parameters: - - description: 'Secret name. Lowercase letters, digits and single underscores, starting with a letter and not ending with an underscore, 1 to 255 characters.' + - description: 'Existing secret name. Accepts legacy names stored before the 255-character write bound; new writes still require the documented name format.' in: 'path' name: 'name' required: true schema: - description: 'Secret name. Lowercase letters, digits and single underscores, starting with a letter and not ending with an underscore, 1 to 255 characters.' + description: 'Existing secret name. Accepts legacy names stored before the 255-character write bound; new writes still require the documented name format.' example: 'github_token' - maxLength: 255 minLength: 1 pattern: '^(?!.*__)[a-z]([a-z0-9_]*[a-z0-9])?$' type: 'string' @@ -53639,7 +53724,7 @@ paths: message: 'Request body too large' schema: $ref: '#/components/schemas/PayloadTooLargeResponse' - description: 'Payload Too Large - The JSON body exceeds 425000 bytes.' + description: 'Payload Too Large - The JSON body exceeds 1309643 bytes.' '429': content: application/json: diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index d43753807..167b3928b 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -2,8 +2,8 @@ speakeasyVersion: 1.803.2 sources: OpenRouter API: sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:cd2c022a5dea61849cbd7dd27b0488798d2152c3ec7cb4bf61541e8a5365f43c - sourceBlobDigest: sha256:bd87ab193d6ce663effb05b9b4ac6a3ee42a333d7ef244f93741c411c4ef07ed + sourceRevisionDigest: sha256:b2d2f69115fcb752600b15c9c586fff9b4e8327dbfd18114c0202a093195cf48 + sourceBlobDigest: sha256:93060b7230c5d09a311da4ba08ab92b2e20f6208a7f2999167ef20cc70ea8704 tags: - latest - 1.0.0 @@ -11,10 +11,10 @@ targets: openrouter: source: OpenRouter API sourceNamespace: open-router-chat-completions-api - sourceRevisionDigest: sha256:cd2c022a5dea61849cbd7dd27b0488798d2152c3ec7cb4bf61541e8a5365f43c - sourceBlobDigest: sha256:bd87ab193d6ce663effb05b9b4ac6a3ee42a333d7ef244f93741c411c4ef07ed + sourceRevisionDigest: sha256:b2d2f69115fcb752600b15c9c586fff9b4e8327dbfd18114c0202a093195cf48 + sourceBlobDigest: sha256:93060b7230c5d09a311da4ba08ab92b2e20f6208a7f2999167ef20cc70ea8704 codeSamplesNamespace: open-router-chat-completions-api-typescript-code-samples - codeSamplesRevisionDigest: sha256:92c3fb3f91c7b453c375a411df2ae4afc2af79a7835c951c602c5ba1819f9cfe + codeSamplesRevisionDigest: sha256:dd9d4a8e137fd81535d5a12a550fcaeda4dd87145f8d9009f329242e9d48bcff workflow: workflowVersion: 1.0.0 speakeasyVersion: 1.803.2 diff --git a/RELEASES.md b/RELEASES.md index cb8f00985..ca3b3469a 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -4616,4 +4616,14 @@ Based on: ### Generated - [typescript v1.5.23] . ### Releases -- [NPM v1.5.23] https://www.npmjs.com/package/@openrouter/sdk/v/1.5.23 - . \ No newline at end of file +- [NPM v1.5.23] https://www.npmjs.com/package/@openrouter/sdk/v/1.5.23 - . + +## 2026-10-30 00:00:56 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.803.2 (2.950.13) https://github.com/speakeasy-api/speakeasy +### Generated +- [typescript v1.5.24] . +### Releases +- [NPM v1.5.24] https://www.npmjs.com/package/@openrouter/sdk/v/1.5.24 - . \ No newline at end of file diff --git a/docs/models/classifierfiltersfilter.mdx b/docs/models/classifierfiltersfilter.mdx new file mode 100644 index 000000000..9f028b203 --- /dev/null +++ b/docs/models/classifierfiltersfilter.mdx @@ -0,0 +1,29 @@ +--- +title: "ClassifierFiltersFilter" +--- + +## Supported Types + +### `models.ClassifierScalarFilter` + +```typescript +const value: models.ClassifierScalarFilter = { + field: "department", + operator: "eq", + value: "Engineering", +}; +``` + +### `models.ClassifierSetFilter` + +```typescript +const value: models.ClassifierSetFilter = { + field: "department", + operator: "in", + value: [ + "Engineering", + "Support", + ], +}; +``` + diff --git a/docs/models/classifierscalarfilter.mdx b/docs/models/classifierscalarfilter.mdx new file mode 100644 index 000000000..829716b7b --- /dev/null +++ b/docs/models/classifierscalarfilter.mdx @@ -0,0 +1,23 @@ +--- +title: "ClassifierScalarFilter" +--- + +## Example Usage + +```typescript +import { ClassifierScalarFilter } from "@openrouter/sdk/models"; + +let value: ClassifierScalarFilter = { + field: "department", + operator: "eq", + value: "Engineering", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `field` | *string* | ✔️ | Classifier dimension name to filter on (snake_case identifier, e.g. "department", "work_type"). | department | +| `operator` | [models.ClassifierScalarFilterOperator](../models/classifierscalarfilteroperator.mdx) | ✔️ | Equality operator taking a scalar filter value. Ordered comparisons are not available because classification values are strings. | eq | +| `value` | *models.ClassifierScalarFilterValue* | ✔️ | Scalar (string or number) filter value. | Engineering | \ No newline at end of file diff --git a/docs/models/classifierscalarfilteroperator.mdx b/docs/models/classifierscalarfilteroperator.mdx new file mode 100644 index 000000000..9c9c15fb0 --- /dev/null +++ b/docs/models/classifierscalarfilteroperator.mdx @@ -0,0 +1,21 @@ +--- +title: "ClassifierScalarFilterOperator" +--- + +Equality operator taking a scalar filter value. Ordered comparisons are not available because classification values are strings. + +## Example Usage + +```typescript +import { ClassifierScalarFilterOperator } from "@openrouter/sdk/models"; + +let value: ClassifierScalarFilterOperator = "eq"; + +// Open enum: unrecognized values are captured as Unrecognized +``` + +## Values + +```typescript +"eq" | "neq" | Unrecognized +``` \ No newline at end of file diff --git a/docs/models/operations/valueclassifierfilters.mdx b/docs/models/classifierscalarfiltervalue.mdx similarity index 52% rename from docs/models/operations/valueclassifierfilters.mdx rename to docs/models/classifierscalarfiltervalue.mdx index 72e0a23c9..0448d2497 100644 --- a/docs/models/operations/valueclassifierfilters.mdx +++ b/docs/models/classifierscalarfiltervalue.mdx @@ -1,13 +1,16 @@ --- -title: "ValueClassifierFilters" +title: "ClassifierScalarFilterValue" --- +Scalar (string or number) filter value. + + ## Supported Types ### `string` ```typescript -const value: string = ""; +const value: string = "Engineering"; ``` ### `number` diff --git a/docs/models/classifiersetfilter.mdx b/docs/models/classifiersetfilter.mdx new file mode 100644 index 000000000..546ac4232 --- /dev/null +++ b/docs/models/classifiersetfilter.mdx @@ -0,0 +1,26 @@ +--- +title: "ClassifierSetFilter" +--- + +## Example Usage + +```typescript +import { ClassifierSetFilter } from "@openrouter/sdk/models"; + +let value: ClassifierSetFilter = { + field: "department", + operator: "in", + value: [ + "Engineering", + "Support", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | +| `field` | *string* | ✔️ | Classifier dimension name to filter on (snake_case identifier, e.g. "department", "work_type"). | department | +| `operator` | [models.ClassifierSetFilterOperator](../models/classifiersetfilteroperator.mdx) | ✔️ | Set-membership operator taking an array filter value. | in | +| `value` | *models.ClassifierSetFilterValue*[] | ✔️ | Array of scalar filter values. | [
"Engineering",
"Support"
] | \ No newline at end of file diff --git a/docs/models/classifiersetfilteroperator.mdx b/docs/models/classifiersetfilteroperator.mdx new file mode 100644 index 000000000..f2301d75d --- /dev/null +++ b/docs/models/classifiersetfilteroperator.mdx @@ -0,0 +1,21 @@ +--- +title: "ClassifierSetFilterOperator" +--- + +Set-membership operator taking an array filter value. + +## Example Usage + +```typescript +import { ClassifierSetFilterOperator } from "@openrouter/sdk/models"; + +let value: ClassifierSetFilterOperator = "in"; + +// Open enum: unrecognized values are captured as Unrecognized +``` + +## Values + +```typescript +"in" | "not_in" | Unrecognized +``` \ No newline at end of file diff --git a/docs/models/operations/value2.mdx b/docs/models/classifiersetfiltervalue.mdx similarity index 82% rename from docs/models/operations/value2.mdx rename to docs/models/classifiersetfiltervalue.mdx index 8587e98cb..2c31d0bbf 100644 --- a/docs/models/operations/value2.mdx +++ b/docs/models/classifiersetfiltervalue.mdx @@ -1,5 +1,5 @@ --- -title: "Value2" +title: "ClassifierSetFilterValue" --- ## Supported Types diff --git a/docs/models/filter.mdx b/docs/models/filter.mdx new file mode 100644 index 000000000..976d90a5b --- /dev/null +++ b/docs/models/filter.mdx @@ -0,0 +1,28 @@ +--- +title: "Filter" +--- + +## Supported Types + +### `models.ScalarFilter` + +```typescript +const value: models.ScalarFilter = { + field: "model", + operator: "eq", + value: "", +}; +``` + +### `models.SetFilter` + +```typescript +const value: models.SetFilter = { + field: "model", + operator: "in", + value: [ + "", + ], +}; +``` + diff --git a/docs/models/imagegenerationrequest.mdx b/docs/models/imagegenerationrequest.mdx index 7f9837054..989e74c0c 100644 --- a/docs/models/imagegenerationrequest.mdx +++ b/docs/models/imagegenerationrequest.mdx @@ -17,22 +17,22 @@ let value: ImageGenerationRequest = { ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `aspectRatio` | [models.ImageGenerationRequestAspectRatio](../models/imagegenerationrequestaspectratio.mdx) | ➖ | Normalized aspect ratio of the generated image. Providers clamp to their supported subset. | 16:9 | -| `background` | [models.ImageGenerationRequestBackground](../models/imagegenerationrequestbackground.mdx) | ➖ | Background treatment. `transparent` requires an output_format that supports alpha (png or webp). | auto | -| `inputReferences` | [models.ContentPartImage](../models/contentpartimage.mdx)[] | ➖ | Reference images to guide image-to-image generation, as base64 data URLs or HTTP(S) URLs. | | -| `model` | *string* | ✔️ | The image generation model to use | bytedance-seed/seedream-4.5 | -| `n` | *number* | ➖ | Upper bound on the number of images to generate (1-10). Providers may return fewer images, and providers that only support single-image generation reject n > 1. | 1 | -| `outputCompression` | *number* | ➖ | Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob. | 100 | -| `outputFormat` | [models.ImageGenerationRequestOutputFormat](../models/imagegenerationrequestoutputformat.mdx) | ➖ | Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`. | png | -| `prompt` | *string* | ✔️ | Text description of the desired image | a red panda astronaut floating in space, studio lighting | -| `provider` | [models.ImageGenerationProviderPreferences](../models/imagegenerationproviderpreferences.mdx) | ➖ | Provider routing preferences and provider-specific passthrough configuration. | \{
"allow_fallbacks": false,
"only": [
"google-ai-studio"
]
} | -| `quality` | [models.ImageGenerationRequestQuality](../models/imagegenerationrequestquality.mdx) | ➖ | Rendering quality. Providers without a quality knob ignore this. | high | -| `resolution` | [models.ImageGenerationRequestResolution](../models/imagegenerationrequestresolution.mdx) | ➖ | Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider. | 2K | -| `seed` | *number* | ➖ | If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers. | | -| `sessionId` | *string* | ➖ | A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. | session-1234 | -| `size` | *string* | ➖ | Optional. A convenience shorthand for output dimensions — pass a tier ("2K", "4K") or explicit pixels ("2048x2048") and we normalize it to the right dimensions for the chosen provider. A tier size is equivalent to setting `resolution` and combines with `aspect_ratio`. An explicit pixel size is authoritative: a mismatched `resolution` or `aspect_ratio` alongside it is rejected with a 400. | 2K | -| `stream` | *boolean* | ➖ | If true, partial images are streamed as SSE events as they become available. Only supported by providers with native streaming (currently OpenAI). Non-streaming providers ignore this flag and return a buffered response. | | -| `trace` | [models.TraceConfig](../models/traceconfig.mdx) | ➖ | Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name, parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations. | \{
"trace_id": "trace-abc123",
"trace_name": "my-app-trace"
} | -| `user` | *string* | ➖ | A stable identifier for your end-users. Used to help detect and prevent abuse. Never sent to providers verbatim: for providers whose data policy requires user IDs, it is folded into a hashed, per-account upstream user identifier. | end-user-abc123 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `aspectRatio` | [models.ImageGenerationRequestAspectRatio](../models/imagegenerationrequestaspectratio.mdx) | ➖ | Normalized aspect ratio of the generated image. Providers clamp to their supported subset. | 16:9 | +| `background` | [models.ImageGenerationRequestBackground](../models/imagegenerationrequestbackground.mdx) | ➖ | Background treatment. `transparent` requires an output_format that supports alpha (png or webp). | auto | +| `inputReferences` | [models.ContentPartImage](../models/contentpartimage.mdx)[] | ➖ | Reference images to guide image-to-image generation, as base64 data URLs or HTTP(S) URLs. | | +| `model` | *string* | ✔️ | The image generation model to use | bytedance-seed/seedream-4.5 | +| `n` | *number* | ➖ | Upper bound on the number of images to generate (1-10). Providers may return fewer images, and providers that only support single-image generation reject n > 1. | 1 | +| `outputCompression` | *number* | ➖ | Compression level (0-100) for jpeg/webp output. Ignored by providers without a compression knob; providers that honor it may reject it with other output formats (e.g. OpenAI requires output_format "jpeg" or "webp"). | 100 | +| `outputFormat` | [models.ImageGenerationRequestOutputFormat](../models/imagegenerationrequestoutputformat.mdx) | ➖ | Encoding of the returned image bytes. Most models produce raster formats (png, jpeg, webp). SVG is supported by vectorization models (e.g. Quiver) — the SVG markup is UTF-8 base64-encoded in `b64_json`. | png | +| `prompt` | *string* | ✔️ | Text description of the desired image | a red panda astronaut floating in space, studio lighting | +| `provider` | [models.ImageGenerationProviderPreferences](../models/imagegenerationproviderpreferences.mdx) | ➖ | Provider routing preferences and provider-specific passthrough configuration. | \{
"allow_fallbacks": false,
"only": [
"google-ai-studio"
]
} | +| `quality` | [models.ImageGenerationRequestQuality](../models/imagegenerationrequestquality.mdx) | ➖ | Rendering quality. Providers without a quality knob ignore this. | high | +| `resolution` | [models.ImageGenerationRequestResolution](../models/imagegenerationrequestresolution.mdx) | ➖ | Normalized resolution tier of the generated image. Concrete pixel dimensions are derived per-provider. | 2K | +| `seed` | *number* | ➖ | If specified, the generation will sample deterministically, such that repeated requests with the same seed and parameters should return the same result. Determinism is not guaranteed for all providers. | | +| `sessionId` | *string* | ➖ | A unique identifier for grouping related requests (e.g., a conversation or agent workflow). Used for observability grouping in Broadcast and private logging; never sent to the provider. If provided in both the request body and the x-session-id header, the body value takes precedence. Maximum of 256 characters. | session-1234 | +| `size` | *string* | ➖ | Optional. A convenience shorthand for output dimensions — pass a tier ("2K", "4K") or explicit pixels ("2048x2048"). A tier size is equivalent to setting `resolution` and combines with `aspect_ratio`. Explicit pixel sizes are provider-dependent: providers that accept them treat the value as authoritative and reject a mismatched `resolution` or `aspect_ratio` alongside it with a 400. xAI and Sourceful V2/V2.5 reject explicit pixel sizes (use `resolution` and `aspect_ratio` there); Sourceful V2.6 supports them within its dimension limits and does not allow combining them with `resolution` or `aspect_ratio`. | 2K | +| `stream` | *boolean* | ➖ | If true, partial images are streamed as SSE events as they become available. Only supported by providers with native streaming (currently OpenAI). Non-streaming providers ignore this flag and return a buffered response. | | +| `trace` | [models.TraceConfig](../models/traceconfig.mdx) | ➖ | Metadata for observability and tracing. Known keys (trace_id, trace_name, span_name, generation_name, parent_span_id) have special handling. Additional keys are passed through as custom metadata to configured broadcast destinations. | \{
"trace_id": "trace-abc123",
"trace_name": "my-app-trace"
} | +| `user` | *string* | ➖ | A stable identifier for your end-users. Used to help detect and prevent abuse. Never sent to providers verbatim: for providers whose data policy requires user IDs, it is folded into a hashed, per-account upstream user identifier. | end-user-abc123 | \ No newline at end of file diff --git a/docs/models/operations/classifierfilters.mdx b/docs/models/operations/classifierfilters.mdx index 01269e834..7fc6369e8 100644 --- a/docs/models/operations/classifierfilters.mdx +++ b/docs/models/operations/classifierfilters.mdx @@ -20,4 +20,4 @@ let value: ClassifierFilters = { | Field | Type | Required | Description | Example | | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | | `classifierId` | *string* | ✔️ | UUID of the classifier whose tags to filter by. Must match classifier_dimensions.classifier_id when both are specified. | 550e8400-e29b-41d4-a716-446655440000 | -| `filters` | [operations.ClassifierFiltersFilter](../../models/operations/classifierfiltersfilter.mdx)[] | ✔️ | N/A | | \ No newline at end of file +| `filters` | *models.ClassifierFiltersFilter*[] | ✔️ | N/A | | \ No newline at end of file diff --git a/docs/models/operations/classifierfiltersfilter.mdx b/docs/models/operations/classifierfiltersfilter.mdx deleted file mode 100644 index 1caec920c..000000000 --- a/docs/models/operations/classifierfiltersfilter.mdx +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "ClassifierFiltersFilter" ---- - -## Example Usage - -```typescript -import { ClassifierFiltersFilter } from "@openrouter/sdk/models/operations"; - -let value: ClassifierFiltersFilter = { - field: "department", - operator: "eq", - value: "Engineering", -}; -``` - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `field` | *string* | ✔️ | Classifier dimension name to filter on (snake_case identifier, e.g. "department", "work_type"). | department | -| `operator` | *string* | ✔️ | Filter operator. Only equality/set operators are supported (eq, neq, in, not_in) — ordered comparisons are not available because classification values are strings. | eq | -| `value` | *operations.ClassifierFiltersValue* | ✔️ | Filter value. Use a scalar (string or number) for eq/neq, or an array for in/not_in. | Engineering | \ No newline at end of file diff --git a/docs/models/operations/classifierfiltersvalue.mdx b/docs/models/operations/classifierfiltersvalue.mdx deleted file mode 100644 index 8b7e4ca0a..000000000 --- a/docs/models/operations/classifierfiltersvalue.mdx +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: "ClassifierFiltersValue" ---- - -Filter value. Use a scalar (string or number) for eq/neq, or an array for in/not_in. - - -## Supported Types - -### `string` - -```typescript -const value: string = "Engineering"; -``` - -### `number` - -```typescript -const value: number = 1284.03; -``` - -### `operations.ValueClassifierFilters[]` - -```typescript -const value: operations.ValueClassifierFilters[] = [ - "", -]; -``` - diff --git a/docs/models/operations/deleteinternvaultsecretrequest.mdx b/docs/models/operations/deleteinternvaultsecretrequest.mdx index cd88cfc5c..09c2d1437 100644 --- a/docs/models/operations/deleteinternvaultsecretrequest.mdx +++ b/docs/models/operations/deleteinternvaultsecretrequest.mdx @@ -21,4 +21,4 @@ let value: DeleteInternVaultSecretRequest = { | `appTitle` | *string* | ➖ | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `appCategories` | *string* | ➖ | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | | `internId` | *string* | ✔️ | UUID of an intern in the workspace selected by the API key. | 7c9e6679-7425-40de-944b-e07fc1f90ae7 | -| `name` | *string* | ✔️ | Secret name. Lowercase letters, digits and single underscores, starting with a letter and not ending with an underscore, 1 to 255 characters. | github_token | \ No newline at end of file +| `name` | *string* | ✔️ | Existing secret name. Accepts legacy names stored before the 255-character write bound; new writes still require the documented name format. | github_token | \ No newline at end of file diff --git a/docs/models/operations/deletevaultsecretrequest.mdx b/docs/models/operations/deletevaultsecretrequest.mdx index c8d239758..b92e46744 100644 --- a/docs/models/operations/deletevaultsecretrequest.mdx +++ b/docs/models/operations/deletevaultsecretrequest.mdx @@ -19,4 +19,4 @@ let value: DeleteVaultSecretRequest = { | `httpReferer` | *string* | ➖ | The app identifier should be your app's URL and is used as the primary identifier for rankings.
This is used to track API usage per application.
| | | `appTitle` | *string* | ➖ | The app display name allows you to customize how your app appears in OpenRouter's dashboard.
| | | `appCategories` | *string* | ➖ | Comma-separated list of app categories (e.g. "cli-agent,cloud-agent"). Used for marketplace rankings.
| | -| `name` | *string* | ✔️ | Secret name. Lowercase letters, digits and single underscores, starting with a letter and not ending with an underscore, 1 to 255 characters. | github_token | \ No newline at end of file +| `name` | *string* | ✔️ | Existing secret name. Accepts legacy names stored before the 255-character write bound; new writes still require the documented name format. | github_token | \ No newline at end of file diff --git a/docs/models/operations/getanalyticsmetadata.mdx b/docs/models/operations/getanalyticsmetadata.mdx index 1d5d2374e..34dd85009 100644 --- a/docs/models/operations/getanalyticsmetadata.mdx +++ b/docs/models/operations/getanalyticsmetadata.mdx @@ -34,4 +34,4 @@ let value: GetAnalyticsMetaData = { | `dimensions` | [operations.Dimension](../../models/operations/dimension.mdx)[] | ✔️ | N/A | | `granularities` | [operations.Granularity](../../models/operations/granularity.mdx)[] | ✔️ | N/A | | `metrics` | [operations.Metric](../../models/operations/metric.mdx)[] | ✔️ | N/A | -| `operators` | [operations.Operator](../../models/operations/operator.mdx)[] | ✔️ | N/A | \ No newline at end of file +| `operators` | [models.Operator](../../models/operator.mdx)[] | ✔️ | N/A | \ No newline at end of file diff --git a/docs/models/operations/granularity.mdx b/docs/models/operations/granularity.mdx index b1c4d4311..71e4791d2 100644 --- a/docs/models/operations/granularity.mdx +++ b/docs/models/operations/granularity.mdx @@ -15,7 +15,7 @@ let value: Granularity = { ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | -| `displayLabel` | *string* | ✔️ | Human-readable label | Day | -| `name` | [operations.GranularityName](../../models/operations/granularityname.mdx) | ✔️ | Granularity identifier | day | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `displayLabel` | *string* | ✔️ | Human-readable label | Day | +| `name` | [operations.Name](../../models/operations/name.mdx) | ✔️ | Granularity identifier | day | \ No newline at end of file diff --git a/docs/models/operations/granularityname.mdx b/docs/models/operations/name.mdx similarity index 64% rename from docs/models/operations/granularityname.mdx rename to docs/models/operations/name.mdx index 1ee3a1ca9..049f6175f 100644 --- a/docs/models/operations/granularityname.mdx +++ b/docs/models/operations/name.mdx @@ -1,5 +1,5 @@ --- -title: "GranularityName" +title: "Name" --- Granularity identifier @@ -7,9 +7,9 @@ Granularity identifier ## Example Usage ```typescript -import { GranularityName } from "@openrouter/sdk/models/operations"; +import { Name } from "@openrouter/sdk/models/operations"; -let value: GranularityName = "day"; +let value: Name = "day"; // Open enum: unrecognized values are captured as Unrecognized ``` diff --git a/docs/models/operations/operator.mdx b/docs/models/operations/operator.mdx deleted file mode 100644 index f035c0bec..000000000 --- a/docs/models/operations/operator.mdx +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "Operator" ---- - -## Example Usage - -```typescript -import { Operator } from "@openrouter/sdk/models/operations"; - -let value: Operator = { - name: "eq", - valueType: "array", -}; -``` - -## Fields - -| Field | Type | Required | Description | Example | -| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | -| `name` | [operations.OperatorName](../../models/operations/operatorname.mdx) | ✔️ | Operator identifier used in filter definitions | eq | -| `valueType` | [operations.ValueType](../../models/operations/valuetype.mdx) | ✔️ | Whether the operator expects a single value or an array | | \ No newline at end of file diff --git a/docs/models/operations/queryanalyticsrequestbody.mdx b/docs/models/operations/queryanalyticsrequestbody.mdx index 8a6893950..610af8d4d 100644 --- a/docs/models/operations/queryanalyticsrequestbody.mdx +++ b/docs/models/operations/queryanalyticsrequestbody.mdx @@ -21,7 +21,7 @@ let value: QueryAnalyticsRequestBody = { | `classifierDimensions` | [operations.ClassifierDimensions](../../models/operations/classifierdimensions.mdx) | ➖ | Group results by custom classifier tags, breaking down metrics by the specified dimension values. Requires an active classifier on the workspace. | | | `classifierFilters` | [operations.ClassifierFilters](../../models/operations/classifierfilters.mdx) | ➖ | Filter results to generations with specific classifier tag values. Can be combined with classifier_dimensions (must use the same classifier_id) or used independently with standard dimensions. | | | `dimensions` | *string*[] | ➖ | N/A | | -| `filters` | [operations.Filter](../../models/operations/filter.mdx)[] | ➖ | N/A | | +| `filters` | *models.Filter*[] | ➖ | N/A | | | `granularity` | *string* | ➖ | Time granularity | day | | `groupLimit` | *number* | ➖ | Maximum rows per distinct combination of dimensions. When omitted on time-series queries (granularity + dimensions), auto-computed to avoid truncating time windows. Explicit values override the default and may truncate time buckets if set lower than the number of buckets in the range. Ignored when no dimensions are specified. | 100 | | `limit` | *number* | ➖ | Maximum total rows returned. Defaults to 1000. On time-series queries with dimensions and no explicit group_limit, the server may raise this to accommodate the expected number of unique time-bucket/dimension combinations. | | diff --git a/docs/models/operations/value1.mdx b/docs/models/operations/value1.mdx deleted file mode 100644 index aeea6bf2a..000000000 --- a/docs/models/operations/value1.mdx +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Value1" ---- - -Filter value (scalar or array depending on operator). Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned. - - -## Supported Types - -### `string` - -```typescript -const value: string = ""; -``` - -### `number` - -```typescript -const value: number = 1284.03; -``` - -### `operations.Value2[]` - -```typescript -const value: operations.Value2[] = []; -``` - diff --git a/docs/models/operator.mdx b/docs/models/operator.mdx index a48254f9b..f1309be2b 100644 --- a/docs/models/operator.mdx +++ b/docs/models/operator.mdx @@ -7,13 +7,15 @@ title: "Operator" ```typescript import { Operator } from "@openrouter/sdk/models"; -let value: Operator = "ends_with"; - -// Open enum: unrecognized values are captured as Unrecognized +let value: Operator = { + name: "eq", + valueType: "array", +}; ``` -## Values +## Fields -```typescript -"equals" | "not_equals" | "contains" | "not_contains" | "regex" | "starts_with" | "ends_with" | "gt" | "lt" | "gte" | "lte" | "exists" | "not_exists" | Unrecognized -``` \ No newline at end of file +| Field | Type | Required | Description | Example | +| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | +| `name` | [models.OperatorName](../models/operatorname.mdx) | ✔️ | Operator identifier used in filter definitions | eq | +| `valueType` | [models.ValueType](../models/valuetype.mdx) | ✔️ | Whether the operator expects a single value or an array | | \ No newline at end of file diff --git a/docs/models/operatorenum.mdx b/docs/models/operatorenum.mdx new file mode 100644 index 000000000..0c4e9a2b2 --- /dev/null +++ b/docs/models/operatorenum.mdx @@ -0,0 +1,19 @@ +--- +title: "OperatorEnum" +--- + +## Example Usage + +```typescript +import { OperatorEnum } from "@openrouter/sdk/models"; + +let value: OperatorEnum = "not_exists"; + +// Open enum: unrecognized values are captured as Unrecognized +``` + +## Values + +```typescript +"equals" | "not_equals" | "contains" | "not_contains" | "regex" | "starts_with" | "ends_with" | "gt" | "lt" | "gte" | "lte" | "exists" | "not_exists" | Unrecognized +``` \ No newline at end of file diff --git a/docs/models/operations/operatorname.mdx b/docs/models/operatorname.mdx similarity index 83% rename from docs/models/operations/operatorname.mdx rename to docs/models/operatorname.mdx index bc08f3777..e324c9f98 100644 --- a/docs/models/operations/operatorname.mdx +++ b/docs/models/operatorname.mdx @@ -7,7 +7,7 @@ Operator identifier used in filter definitions ## Example Usage ```typescript -import { OperatorName } from "@openrouter/sdk/models/operations"; +import { OperatorName } from "@openrouter/sdk/models"; let value: OperatorName = "eq"; diff --git a/docs/models/rule.mdx b/docs/models/rule.mdx index 6446e1828..7ceaf0746 100644 --- a/docs/models/rule.mdx +++ b/docs/models/rule.mdx @@ -15,8 +15,8 @@ let value: Rule = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | -| `field` | [models.Field](../models/field.mdx) | ✔️ | N/A | -| `operator` | [models.Operator](../models/operator.mdx) | ✔️ | N/A | -| `value` | *models.ObservabilityFilterRuleGroupValue* | ➖ | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | +| `field` | [models.Field](../models/field.mdx) | ✔️ | N/A | +| `operator` | [models.OperatorEnum](../models/operatorenum.mdx) | ✔️ | N/A | +| `value` | *models.ObservabilityFilterRuleGroupValue* | ➖ | N/A | \ No newline at end of file diff --git a/docs/models/operations/filter.mdx b/docs/models/scalarfilter.mdx similarity index 67% rename from docs/models/operations/filter.mdx rename to docs/models/scalarfilter.mdx index 88173dd16..43dd6a52c 100644 --- a/docs/models/operations/filter.mdx +++ b/docs/models/scalarfilter.mdx @@ -1,24 +1,23 @@ --- -title: "Filter" +title: "ScalarFilter" --- ## Example Usage ```typescript -import { Filter } from "@openrouter/sdk/models/operations"; +import { ScalarFilter } from "@openrouter/sdk/models"; -let value: Filter = { +let value: ScalarFilter = { field: "model", operator: "eq", - value: 4211.9, + value: "", }; ``` ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `field` | *string* | ✔️ | Dimension to filter on. Use the /meta endpoint for available dimensions. | model | -| `includeUnset` | *boolean* | ➖ | Include rows where the dimension has no value. Applies only to the `in` and `not_in` operators and dimensions that have an unset bucket. | | -| `operator` | *string* | ✔️ | Filter operator | eq | -| `value` | *operations.Value1* | ✔️ | Filter value (scalar or array depending on operator). Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned. | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `field` | *string* | ✔️ | Dimension to filter on. Use the /meta endpoint for available dimensions. | model | +| `operator` | [models.ScalarFilterOperator](../models/scalarfilteroperator.mdx) | ✔️ | Comparison operator taking a scalar filter value. | eq | +| `value` | *models.ScalarFilterValue* | ✔️ | Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned. | | \ No newline at end of file diff --git a/docs/models/scalarfilteroperator.mdx b/docs/models/scalarfilteroperator.mdx new file mode 100644 index 000000000..32698df0a --- /dev/null +++ b/docs/models/scalarfilteroperator.mdx @@ -0,0 +1,21 @@ +--- +title: "ScalarFilterOperator" +--- + +Comparison operator taking a scalar filter value. + +## Example Usage + +```typescript +import { ScalarFilterOperator } from "@openrouter/sdk/models"; + +let value: ScalarFilterOperator = "eq"; + +// Open enum: unrecognized values are captured as Unrecognized +``` + +## Values + +```typescript +"eq" | "neq" | "gt" | "gte" | "lt" | "lte" | Unrecognized +``` \ No newline at end of file diff --git a/docs/models/scalarfiltervalue.mdx b/docs/models/scalarfiltervalue.mdx new file mode 100644 index 000000000..86fdd67d2 --- /dev/null +++ b/docs/models/scalarfiltervalue.mdx @@ -0,0 +1,21 @@ +--- +title: "ScalarFilterValue" +--- + +Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned. + + +## Supported Types + +### `string` + +```typescript +const value: string = ""; +``` + +### `number` + +```typescript +const value: number = 1284.03; +``` + diff --git a/docs/models/setfilter.mdx b/docs/models/setfilter.mdx new file mode 100644 index 000000000..cc4b32110 --- /dev/null +++ b/docs/models/setfilter.mdx @@ -0,0 +1,26 @@ +--- +title: "SetFilter" +--- + +## Example Usage + +```typescript +import { SetFilter } from "@openrouter/sdk/models"; + +let value: SetFilter = { + field: "model", + operator: "in", + value: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `field` | *string* | ✔️ | Dimension to filter on. Use the /meta endpoint for available dimensions. | model | +| `includeUnset` | *boolean* | ➖ | Include rows where the dimension has no value. Applies only to dimensions that have an unset bucket. | | +| `operator` | [models.SetFilterOperator](../models/setfilteroperator.mdx) | ✔️ | Set-membership operator taking an array filter value. | in | +| `value` | *models.SetFilterValue*[] | ✔️ | N/A | | \ No newline at end of file diff --git a/docs/models/setfilteroperator.mdx b/docs/models/setfilteroperator.mdx new file mode 100644 index 000000000..3c81b6d8a --- /dev/null +++ b/docs/models/setfilteroperator.mdx @@ -0,0 +1,21 @@ +--- +title: "SetFilterOperator" +--- + +Set-membership operator taking an array filter value. + +## Example Usage + +```typescript +import { SetFilterOperator } from "@openrouter/sdk/models"; + +let value: SetFilterOperator = "in"; + +// Open enum: unrecognized values are captured as Unrecognized +``` + +## Values + +```typescript +"in" | "not_in" | Unrecognized +``` \ No newline at end of file diff --git a/docs/models/setfiltervalue.mdx b/docs/models/setfiltervalue.mdx new file mode 100644 index 000000000..a4532f1a0 --- /dev/null +++ b/docs/models/setfiltervalue.mdx @@ -0,0 +1,21 @@ +--- +title: "SetFilterValue" +--- + +Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned. + + +## Supported Types + +### `string` + +```typescript +const value: string = ""; +``` + +### `number` + +```typescript +const value: number = 1284.03; +``` + diff --git a/docs/models/operations/valuetype.mdx b/docs/models/valuetype.mdx similarity index 82% rename from docs/models/operations/valuetype.mdx rename to docs/models/valuetype.mdx index 51b7399f6..09557ff70 100644 --- a/docs/models/operations/valuetype.mdx +++ b/docs/models/valuetype.mdx @@ -7,7 +7,7 @@ Whether the operator expects a single value or an array ## Example Usage ```typescript -import { ValueType } from "@openrouter/sdk/models/operations"; +import { ValueType } from "@openrouter/sdk/models"; let value: ValueType = "scalar"; diff --git a/docs/models/vaultsecretwriterequest.mdx b/docs/models/vaultsecretwriterequest.mdx index 8a3da0646..4eab6d757 100644 --- a/docs/models/vaultsecretwriterequest.mdx +++ b/docs/models/vaultsecretwriterequest.mdx @@ -22,4 +22,4 @@ let value: VaultSecretWriteRequest = { | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `hosts` | *string*[] | ✔️ | Exact DNS hostnames the secret may be sent to, 1 to 100 entries. Each entry is lowercased and a trailing dot is removed, so `API.Example.com.` is stored as `api.example.com`. Schemes, ports, paths, wildcards and empty values are rejected. Duplicates after normalization are collapsed. Matching is exact: a secret bound to `api.example.com` is never released to `example.com` or any other hostname. | -| `value` | *string* | ✔️ | Secret value, 1 to 65536 characters. It is encrypted at rest and never returned. | \ No newline at end of file +| `value` | *string* | ✔️ | Secret value, 1 to 65536 characters; a header-set credential (a JSON object of header name to value) may run to 985721 characters. It is encrypted at rest and never returned. | \ No newline at end of file diff --git a/jsr.json b/jsr.json index 092cf85f3..b940dae83 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@openrouter/sdk", - "version": "1.5.23", + "version": "1.5.24", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package.json b/package.json index e8bde550f..38502067b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@openrouter/sdk", - "version": "1.5.23", + "version": "1.5.24", "author": "OpenRouter", "description": "The OpenRouter TypeScript SDK is a type-safe toolkit for building AI applications with access to 400+ language models through a unified API.", "keywords": [ @@ -21,8 +21,8 @@ "license": "Apache-2.0", "packageManager": "pnpm@10.22.0", "publishConfig": { - "provenance": true, - "access": "public" + "access": "public", + "provenance": true }, "type": "module", "main": "./esm/index.js", @@ -73,15 +73,15 @@ "lint": "eslint --cache --max-warnings=0 src", "build": "tsc && node scripts/unbarrel-imports.js", "prepublishOnly": "npm run build", - "test:e2e": "vitest --run --project e2e", - "typecheck": "tsc --noEmit", "compile": "tsc && node scripts/unbarrel-imports.js", - "test": "vitest --run --project unit", "test:transit": "exit 0", "test:watch": "vitest --watch --project unit", - "typecheck:transit": "exit 0", + "typecheck": "tsc --noEmit", "postinstall": "node scripts/check-types.js || true", - "prepare": "npm run build" + "prepare": "npm run build", + "test": "vitest --run --project unit", + "test:e2e": "vitest --run --project e2e", + "typecheck:transit": "exit 0" }, "peerDependencies": { diff --git a/src/lib/config.ts b/src/lib/config.ts index 346b5359e..6033784e1 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -79,7 +79,7 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0.0", - sdkVersion: "1.5.23", + sdkVersion: "1.5.24", genVersion: "2.950.13", - userAgent: "speakeasy-sdk/typescript 1.5.23 2.950.13 1.0.0 @openrouter/sdk", + userAgent: "speakeasy-sdk/typescript 1.5.24 2.950.13 1.0.0 @openrouter/sdk", } as const; diff --git a/src/models/classifierfiltersfilter.ts b/src/models/classifierfiltersfilter.ts new file mode 100644 index 000000000..8c6abeaee --- /dev/null +++ b/src/models/classifierfiltersfilter.ts @@ -0,0 +1,42 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 0dfaa0b42d0d + */ + +import * as z from "zod/v4"; +import { + ClassifierScalarFilter, + ClassifierScalarFilter$Outbound, + ClassifierScalarFilter$outboundSchema, +} from "./classifierscalarfilter.js"; +import { + ClassifierSetFilter, + ClassifierSetFilter$Outbound, + ClassifierSetFilter$outboundSchema, +} from "./classifiersetfilter.js"; + +export type ClassifierFiltersFilter = + | ClassifierScalarFilter + | ClassifierSetFilter; + +/** @internal */ +export type ClassifierFiltersFilter$Outbound = + | ClassifierScalarFilter$Outbound + | ClassifierSetFilter$Outbound; + +/** @internal */ +export const ClassifierFiltersFilter$outboundSchema: z.ZodType< + ClassifierFiltersFilter$Outbound, + ClassifierFiltersFilter +> = z.union([ + ClassifierScalarFilter$outboundSchema, + ClassifierSetFilter$outboundSchema, +]); + +export function classifierFiltersFilterToJSON( + classifierFiltersFilter: ClassifierFiltersFilter, +): string { + return JSON.stringify( + ClassifierFiltersFilter$outboundSchema.parse(classifierFiltersFilter), + ); +} diff --git a/src/models/classifierscalarfilter.ts b/src/models/classifierscalarfilter.ts new file mode 100644 index 000000000..eb98d5ab0 --- /dev/null +++ b/src/models/classifierscalarfilter.ts @@ -0,0 +1,74 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 46c64a60f2ad + */ + +import * as z from "zod/v4"; +import { + ClassifierScalarFilterOperator, + ClassifierScalarFilterOperator$outboundSchema, +} from "./classifierscalarfilteroperator.js"; + +/** + * Scalar (string or number) filter value. + */ +export type ClassifierScalarFilterValue = string | number; + +export type ClassifierScalarFilter = { + /** + * Classifier dimension name to filter on (snake_case identifier, e.g. "department", "work_type"). + */ + field: string; + /** + * Equality operator taking a scalar filter value. Ordered comparisons are not available because classification values are strings. + */ + operator: ClassifierScalarFilterOperator; + /** + * Scalar (string or number) filter value. + */ + value: string | number; +}; + +/** @internal */ +export type ClassifierScalarFilterValue$Outbound = string | number; + +/** @internal */ +export const ClassifierScalarFilterValue$outboundSchema: z.ZodType< + ClassifierScalarFilterValue$Outbound, + ClassifierScalarFilterValue +> = z.union([z.string(), z.number()]); + +export function classifierScalarFilterValueToJSON( + classifierScalarFilterValue: ClassifierScalarFilterValue, +): string { + return JSON.stringify( + ClassifierScalarFilterValue$outboundSchema.parse( + classifierScalarFilterValue, + ), + ); +} + +/** @internal */ +export type ClassifierScalarFilter$Outbound = { + field: string; + operator: string; + value: string | number; +}; + +/** @internal */ +export const ClassifierScalarFilter$outboundSchema: z.ZodType< + ClassifierScalarFilter$Outbound, + ClassifierScalarFilter +> = z.object({ + field: z.string(), + operator: ClassifierScalarFilterOperator$outboundSchema, + value: z.union([z.string(), z.number()]), +}); + +export function classifierScalarFilterToJSON( + classifierScalarFilter: ClassifierScalarFilter, +): string { + return JSON.stringify( + ClassifierScalarFilter$outboundSchema.parse(classifierScalarFilter), + ); +} diff --git a/src/models/classifierscalarfilteroperator.ts b/src/models/classifierscalarfilteroperator.ts new file mode 100644 index 000000000..940865dd2 --- /dev/null +++ b/src/models/classifierscalarfilteroperator.ts @@ -0,0 +1,28 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: be3daabcb488 + */ + +import * as z from "zod/v4"; +import * as openEnums from "../types/enums.js"; +import { OpenEnum } from "../types/enums.js"; + +/** + * Equality operator taking a scalar filter value. Ordered comparisons are not available because classification values are strings. + */ +export const ClassifierScalarFilterOperator = { + Eq: "eq", + Neq: "neq", +} as const; +/** + * Equality operator taking a scalar filter value. Ordered comparisons are not available because classification values are strings. + */ +export type ClassifierScalarFilterOperator = OpenEnum< + typeof ClassifierScalarFilterOperator +>; + +/** @internal */ +export const ClassifierScalarFilterOperator$outboundSchema: z.ZodType< + string, + ClassifierScalarFilterOperator +> = openEnums.outboundSchema(ClassifierScalarFilterOperator); diff --git a/src/models/classifiersetfilter.ts b/src/models/classifiersetfilter.ts new file mode 100644 index 000000000..9e20e752e --- /dev/null +++ b/src/models/classifiersetfilter.ts @@ -0,0 +1,69 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 469f32f201f3 + */ + +import * as z from "zod/v4"; +import { + ClassifierSetFilterOperator, + ClassifierSetFilterOperator$outboundSchema, +} from "./classifiersetfilteroperator.js"; + +export type ClassifierSetFilterValue = string | number; + +export type ClassifierSetFilter = { + /** + * Classifier dimension name to filter on (snake_case identifier, e.g. "department", "work_type"). + */ + field: string; + /** + * Set-membership operator taking an array filter value. + */ + operator: ClassifierSetFilterOperator; + /** + * Array of scalar filter values. + */ + value: Array; +}; + +/** @internal */ +export type ClassifierSetFilterValue$Outbound = string | number; + +/** @internal */ +export const ClassifierSetFilterValue$outboundSchema: z.ZodType< + ClassifierSetFilterValue$Outbound, + ClassifierSetFilterValue +> = z.union([z.string(), z.number()]); + +export function classifierSetFilterValueToJSON( + classifierSetFilterValue: ClassifierSetFilterValue, +): string { + return JSON.stringify( + ClassifierSetFilterValue$outboundSchema.parse(classifierSetFilterValue), + ); +} + +/** @internal */ +export type ClassifierSetFilter$Outbound = { + field: string; + operator: string; + value: Array; +}; + +/** @internal */ +export const ClassifierSetFilter$outboundSchema: z.ZodType< + ClassifierSetFilter$Outbound, + ClassifierSetFilter +> = z.object({ + field: z.string(), + operator: ClassifierSetFilterOperator$outboundSchema, + value: z.array(z.union([z.string(), z.number()])), +}); + +export function classifierSetFilterToJSON( + classifierSetFilter: ClassifierSetFilter, +): string { + return JSON.stringify( + ClassifierSetFilter$outboundSchema.parse(classifierSetFilter), + ); +} diff --git a/src/models/classifiersetfilteroperator.ts b/src/models/classifiersetfilteroperator.ts new file mode 100644 index 000000000..4dc22f867 --- /dev/null +++ b/src/models/classifiersetfilteroperator.ts @@ -0,0 +1,28 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 51a625e91249 + */ + +import * as z from "zod/v4"; +import * as openEnums from "../types/enums.js"; +import { OpenEnum } from "../types/enums.js"; + +/** + * Set-membership operator taking an array filter value. + */ +export const ClassifierSetFilterOperator = { + In: "in", + NotIn: "not_in", +} as const; +/** + * Set-membership operator taking an array filter value. + */ +export type ClassifierSetFilterOperator = OpenEnum< + typeof ClassifierSetFilterOperator +>; + +/** @internal */ +export const ClassifierSetFilterOperator$outboundSchema: z.ZodType< + string, + ClassifierSetFilterOperator +> = openEnums.outboundSchema(ClassifierSetFilterOperator); diff --git a/src/models/filter.ts b/src/models/filter.ts new file mode 100644 index 000000000..331bcea36 --- /dev/null +++ b/src/models/filter.ts @@ -0,0 +1,29 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: bf04a8cd8dcd + */ + +import * as z from "zod/v4"; +import { + ScalarFilter, + ScalarFilter$Outbound, + ScalarFilter$outboundSchema, +} from "./scalarfilter.js"; +import { + SetFilter, + SetFilter$Outbound, + SetFilter$outboundSchema, +} from "./setfilter.js"; + +export type Filter = ScalarFilter | SetFilter; + +/** @internal */ +export type Filter$Outbound = ScalarFilter$Outbound | SetFilter$Outbound; + +/** @internal */ +export const Filter$outboundSchema: z.ZodType = z + .union([ScalarFilter$outboundSchema, SetFilter$outboundSchema]); + +export function filterToJSON(filter: Filter): string { + return JSON.stringify(Filter$outboundSchema.parse(filter)); +} diff --git a/src/models/imagegenerationrequest.ts b/src/models/imagegenerationrequest.ts index 889f049a0..fa8e5f216 100644 --- a/src/models/imagegenerationrequest.ts +++ b/src/models/imagegenerationrequest.ts @@ -153,7 +153,7 @@ export type ImageGenerationRequest = { */ n?: number | undefined; /** - * Compression level (0-100) for webp/jpeg output. Ignored for png and by providers without a compression knob. + * Compression level (0-100) for jpeg/webp output. Ignored by providers without a compression knob; providers that honor it may reject it with other output formats (e.g. OpenAI requires output_format "jpeg" or "webp"). */ outputCompression?: number | undefined; /** @@ -185,7 +185,7 @@ export type ImageGenerationRequest = { */ sessionId?: string | undefined; /** - * Optional. A convenience shorthand for output dimensions — pass a tier ("2K", "4K") or explicit pixels ("2048x2048") and we normalize it to the right dimensions for the chosen provider. A tier size is equivalent to setting `resolution` and combines with `aspect_ratio`. An explicit pixel size is authoritative: a mismatched `resolution` or `aspect_ratio` alongside it is rejected with a 400. + * Optional. A convenience shorthand for output dimensions — pass a tier ("2K", "4K") or explicit pixels ("2048x2048"). A tier size is equivalent to setting `resolution` and combines with `aspect_ratio`. Explicit pixel sizes are provider-dependent: providers that accept them treat the value as authoritative and reject a mismatched `resolution` or `aspect_ratio` alongside it with a 400. xAI and Sourceful V2/V2.5 reject explicit pixel sizes (use `resolution` and `aspect_ratio` there); Sourceful V2.6 supports them within its dimension limits and does not allow combining them with `resolution` or `aspect_ratio`. */ size?: string | undefined; /** diff --git a/src/models/index.ts b/src/models/index.ts index 0ca5fe3d7..c0488bd45 100644 --- a/src/models/index.ts +++ b/src/models/index.ts @@ -232,6 +232,11 @@ export * from "./chattoolmessage.js"; export * from "./chatusage.js"; export * from "./chatusermessage.js"; export * from "./chatwebsearchshorthand.js"; +export * from "./classifierfiltersfilter.js"; +export * from "./classifierscalarfilter.js"; +export * from "./classifierscalarfilteroperator.js"; +export * from "./classifiersetfilter.js"; +export * from "./classifiersetfilteroperator.js"; export * from "./clientclosedrequestresponseerrordata.js"; export * from "./codeinterpretercallcodedeltaevent.js"; export * from "./codeinterpretercallcodedoneevent.js"; @@ -342,6 +347,7 @@ export * from "./fileresponse.js"; export * from "./filesearchservertool.js"; export * from "./filesservertool.js"; export * from "./filesservertoolconfig.js"; +export * from "./filter.js"; export * from "./finishreason.js"; export * from "./forbiddenresponseerrordata.js"; export * from "./formatjsonobjectconfig.js"; @@ -538,6 +544,7 @@ export * from "./openrouterfiledeleted.js"; export * from "./openrouterfilelist.js"; export * from "./openroutermetadata.js"; export * from "./openrouterwebsearchservertool.js"; +export * from "./operator.js"; export * from "./oranthropicbashtoolresult.js"; export * from "./oranthropiccontentblock.js"; export * from "./oranthropicnullablecaller.js"; @@ -683,6 +690,8 @@ export * from "./responsesstreamingresponse.js"; export * from "./routerattempt.js"; export * from "./routerparams.js"; export * from "./routingstrategy.js"; +export * from "./scalarfilter.js"; +export * from "./scalarfilteroperator.js"; export * from "./scimgroup.js"; export * from "./scimgroupmapping.js"; export * from "./scimsyncjob.js"; @@ -705,6 +714,8 @@ export * from "./serviceunavailableresponseerrordata.js"; export * from "./sessioncostitem.js"; export * from "./sessioncostmeta.js"; export * from "./sessioncostresponse.js"; +export * from "./setfilter.js"; +export * from "./setfilteroperator.js"; export * from "./shellcallitem.js"; export * from "./shellcalloutputcontent.js"; export * from "./shellcalloutputitem.js"; diff --git a/src/models/observabilityfilterrulegroup.ts b/src/models/observabilityfilterrulegroup.ts index 42909345e..820cb2b8e 100644 --- a/src/models/observabilityfilterrulegroup.ts +++ b/src/models/observabilityfilterrulegroup.ts @@ -32,7 +32,7 @@ export const Field = { } as const; export type Field = OpenEnum; -export const Operator = { +export const OperatorEnum = { Equals: "equals", NotEquals: "not_equals", Contains: "contains", @@ -47,13 +47,13 @@ export const Operator = { Exists: "exists", NotExists: "not_exists", } as const; -export type Operator = OpenEnum; +export type OperatorEnum = OpenEnum; export type ObservabilityFilterRuleGroupValue = string | number; export type Rule = { field: Field; - operator: Operator; + operator: OperatorEnum; value?: string | number | undefined; }; @@ -77,11 +77,11 @@ export const Field$outboundSchema: z.ZodType = openEnums .outboundSchema(Field); /** @internal */ -export const Operator$inboundSchema: z.ZodType = openEnums - .inboundSchema(Operator); +export const OperatorEnum$inboundSchema: z.ZodType = + openEnums.inboundSchema(OperatorEnum); /** @internal */ -export const Operator$outboundSchema: z.ZodType = openEnums - .outboundSchema(Operator); +export const OperatorEnum$outboundSchema: z.ZodType = + openEnums.outboundSchema(OperatorEnum); /** @internal */ export const ObservabilityFilterRuleGroupValue$inboundSchema: z.ZodType< @@ -119,7 +119,7 @@ export function observabilityFilterRuleGroupValueFromJSON( /** @internal */ export const Rule$inboundSchema: z.ZodType = z.object({ field: Field$inboundSchema, - operator: Operator$inboundSchema, + operator: OperatorEnum$inboundSchema, value: z.union([z.string(), z.number()]).optional(), }); /** @internal */ @@ -132,7 +132,7 @@ export type Rule$Outbound = { /** @internal */ export const Rule$outboundSchema: z.ZodType = z.object({ field: Field$outboundSchema, - operator: Operator$outboundSchema, + operator: OperatorEnum$outboundSchema, value: z.union([z.string(), z.number()]).optional(), }); diff --git a/src/models/operations/deleteinternvaultsecret.ts b/src/models/operations/deleteinternvaultsecret.ts index 26117d24b..466a4728e 100644 --- a/src/models/operations/deleteinternvaultsecret.ts +++ b/src/models/operations/deleteinternvaultsecret.ts @@ -53,7 +53,7 @@ export type DeleteInternVaultSecretRequest = { */ internId: string; /** - * Secret name. Lowercase letters, digits and single underscores, starting with a letter and not ending with an underscore, 1 to 255 characters. + * Existing secret name. Accepts legacy names stored before the 255-character write bound; new writes still require the documented name format. */ name: string; }; diff --git a/src/models/operations/deletevaultsecret.ts b/src/models/operations/deletevaultsecret.ts index 993b79155..06bdb0c92 100644 --- a/src/models/operations/deletevaultsecret.ts +++ b/src/models/operations/deletevaultsecret.ts @@ -49,7 +49,7 @@ export type DeleteVaultSecretRequest = { */ appCategories?: string | undefined; /** - * Secret name. Lowercase letters, digits and single underscores, starting with a letter and not ending with an underscore, 1 to 255 characters. + * Existing secret name. Accepts legacy names stored before the 255-character write bound; new writes still require the documented name format. */ name: string; }; diff --git a/src/models/operations/getanalyticsmeta.ts b/src/models/operations/getanalyticsmeta.ts index 431a28574..c70941965 100644 --- a/src/models/operations/getanalyticsmeta.ts +++ b/src/models/operations/getanalyticsmeta.ts @@ -10,6 +10,7 @@ import * as openEnums from "../../types/enums.js"; import { OpenEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import * as models from "../index.js"; export type GetAnalyticsMetaGlobals = { /** @@ -69,7 +70,7 @@ export type Dimension = { /** * Granularity identifier */ -export const GranularityName = { +export const Name = { Minute: "minute", Hour: "hour", Day: "day", @@ -79,7 +80,7 @@ export const GranularityName = { /** * Granularity identifier */ -export type GranularityName = OpenEnum; +export type Name = OpenEnum; export type Granularity = { /** @@ -89,7 +90,7 @@ export type Granularity = { /** * Granularity identifier */ - name: GranularityName; + name: Name; }; /** @@ -126,52 +127,11 @@ export type Metric = { name: string; }; -/** - * Operator identifier used in filter definitions - */ -export const OperatorName = { - Eq: "eq", - Neq: "neq", - In: "in", - NotIn: "not_in", - Gt: "gt", - Gte: "gte", - Lt: "lt", - Lte: "lte", -} as const; -/** - * Operator identifier used in filter definitions - */ -export type OperatorName = OpenEnum; - -/** - * Whether the operator expects a single value or an array - */ -export const ValueType = { - Scalar: "scalar", - Array: "array", -} as const; -/** - * Whether the operator expects a single value or an array - */ -export type ValueType = OpenEnum; - -export type Operator = { - /** - * Operator identifier used in filter definitions - */ - name: OperatorName; - /** - * Whether the operator expects a single value or an array - */ - valueType: ValueType; -}; - export type GetAnalyticsMetaData = { dimensions: Array; granularities: Array; metrics: Array; - operators: Array; + operators: Array; }; /** @@ -231,16 +191,14 @@ export function dimensionFromJSON( } /** @internal */ -export const GranularityName$inboundSchema: z.ZodType< - GranularityName, - unknown -> = openEnums.inboundSchema(GranularityName); +export const Name$inboundSchema: z.ZodType = openEnums + .inboundSchema(Name); /** @internal */ export const Granularity$inboundSchema: z.ZodType = z .object({ display_label: z.string(), - name: GranularityName$inboundSchema, + name: Name$inboundSchema, }).transform((v) => { return remap$(v, { "display_label": "displayLabel", @@ -285,34 +243,6 @@ export function metricFromJSON( ); } -/** @internal */ -export const OperatorName$inboundSchema: z.ZodType = - openEnums.inboundSchema(OperatorName); - -/** @internal */ -export const ValueType$inboundSchema: z.ZodType = openEnums - .inboundSchema(ValueType); - -/** @internal */ -export const Operator$inboundSchema: z.ZodType = z.object({ - name: OperatorName$inboundSchema, - value_type: ValueType$inboundSchema, -}).transform((v) => { - return remap$(v, { - "value_type": "valueType", - }); -}); - -export function operatorFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => Operator$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Operator' from JSON`, - ); -} - /** @internal */ export const GetAnalyticsMetaData$inboundSchema: z.ZodType< GetAnalyticsMetaData, @@ -321,7 +251,7 @@ export const GetAnalyticsMetaData$inboundSchema: z.ZodType< dimensions: z.array(z.lazy(() => Dimension$inboundSchema)), granularities: z.array(z.lazy(() => Granularity$inboundSchema)), metrics: z.array(z.lazy(() => Metric$inboundSchema)), - operators: z.array(z.lazy(() => Operator$inboundSchema)), + operators: z.array(models.Operator$inboundSchema), }); export function getAnalyticsMetaDataFromJSON( diff --git a/src/models/operations/queryanalytics.ts b/src/models/operations/queryanalytics.ts index bd762b375..935b32837 100644 --- a/src/models/operations/queryanalytics.ts +++ b/src/models/operations/queryanalytics.ts @@ -10,6 +10,7 @@ import * as openEnums from "../../types/enums.js"; import { OpenEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import * as models from "../index.js"; export type QueryAnalyticsGlobals = { /** @@ -48,28 +49,6 @@ export type ClassifierDimensions = { includeNulls?: boolean | undefined; }; -export type ValueClassifierFilters = string | number; - -/** - * Filter value. Use a scalar (string or number) for eq/neq, or an array for in/not_in. - */ -export type ClassifierFiltersValue = string | number | Array; - -export type ClassifierFiltersFilter = { - /** - * Classifier dimension name to filter on (snake_case identifier, e.g. "department", "work_type"). - */ - field: string; - /** - * Filter operator. Only equality/set operators are supported (eq, neq, in, not_in) — ordered comparisons are not available because classification values are strings. - */ - operator: string; - /** - * Filter value. Use a scalar (string or number) for eq/neq, or an array for in/not_in. - */ - value: string | number | Array; -}; - /** * Filter results to generations with specific classifier tag values. Can be combined with classifier_dimensions (must use the same classifier_id) or used independently with standard dimensions. */ @@ -78,33 +57,7 @@ export type ClassifierFilters = { * UUID of the classifier whose tags to filter by. Must match classifier_dimensions.classifier_id when both are specified. */ classifierId: string; - filters: Array; -}; - -export type Value2 = string | number; - -/** - * Filter value (scalar or array depending on operator). Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned. - */ -export type Value1 = string | number | Array; - -export type Filter = { - /** - * Dimension to filter on. Use the /meta endpoint for available dimensions. - */ - field: string; - /** - * Include rows where the dimension has no value. Applies only to the `in` and `not_in` operators and dimensions that have an unset bucket. - */ - includeUnset?: boolean | undefined; - /** - * Filter operator - */ - operator: string; - /** - * Filter value (scalar or array depending on operator). Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned. - */ - value: string | number | Array; + filters: Array; }; export const Direction = { @@ -142,7 +95,7 @@ export type QueryAnalyticsRequestBody = { */ classifierFilters?: ClassifierFilters | undefined; dimensions?: Array | undefined; - filters?: Array | undefined; + filters?: Array | undefined; /** * Time granularity */ @@ -242,80 +195,10 @@ export function classifierDimensionsToJSON( ); } -/** @internal */ -export type ValueClassifierFilters$Outbound = string | number; - -/** @internal */ -export const ValueClassifierFilters$outboundSchema: z.ZodType< - ValueClassifierFilters$Outbound, - ValueClassifierFilters -> = z.union([z.string(), z.number()]); - -export function valueClassifierFiltersToJSON( - valueClassifierFilters: ValueClassifierFilters, -): string { - return JSON.stringify( - ValueClassifierFilters$outboundSchema.parse(valueClassifierFilters), - ); -} - -/** @internal */ -export type ClassifierFiltersValue$Outbound = - | string - | number - | Array; - -/** @internal */ -export const ClassifierFiltersValue$outboundSchema: z.ZodType< - ClassifierFiltersValue$Outbound, - ClassifierFiltersValue -> = z.union([ - z.string(), - z.number(), - z.array(z.union([z.string(), z.number()])), -]); - -export function classifierFiltersValueToJSON( - classifierFiltersValue: ClassifierFiltersValue, -): string { - return JSON.stringify( - ClassifierFiltersValue$outboundSchema.parse(classifierFiltersValue), - ); -} - -/** @internal */ -export type ClassifierFiltersFilter$Outbound = { - field: string; - operator: string; - value: string | number | Array; -}; - -/** @internal */ -export const ClassifierFiltersFilter$outboundSchema: z.ZodType< - ClassifierFiltersFilter$Outbound, - ClassifierFiltersFilter -> = z.object({ - field: z.string(), - operator: z.string(), - value: z.union([ - z.string(), - z.number(), - z.array(z.union([z.string(), z.number()])), - ]), -}); - -export function classifierFiltersFilterToJSON( - classifierFiltersFilter: ClassifierFiltersFilter, -): string { - return JSON.stringify( - ClassifierFiltersFilter$outboundSchema.parse(classifierFiltersFilter), - ); -} - /** @internal */ export type ClassifierFilters$Outbound = { classifier_id: string; - filters: Array; + filters: Array; }; /** @internal */ @@ -324,7 +207,7 @@ export const ClassifierFilters$outboundSchema: z.ZodType< ClassifierFilters > = z.object({ classifierId: z.string(), - filters: z.array(z.lazy(() => ClassifierFiltersFilter$outboundSchema)), + filters: z.array(models.ClassifierFiltersFilter$outboundSchema), }).transform((v) => { return remap$(v, { classifierId: "classifier_id", @@ -339,57 +222,6 @@ export function classifierFiltersToJSON( ); } -/** @internal */ -export type Value2$Outbound = string | number; - -/** @internal */ -export const Value2$outboundSchema: z.ZodType = z - .union([z.string(), z.number()]); - -export function value2ToJSON(value2: Value2): string { - return JSON.stringify(Value2$outboundSchema.parse(value2)); -} - -/** @internal */ -export type Value1$Outbound = string | number | Array; - -/** @internal */ -export const Value1$outboundSchema: z.ZodType = z - .union([z.string(), z.number(), z.array(z.union([z.string(), z.number()]))]); - -export function value1ToJSON(value1: Value1): string { - return JSON.stringify(Value1$outboundSchema.parse(value1)); -} - -/** @internal */ -export type Filter$Outbound = { - field: string; - include_unset?: boolean | undefined; - operator: string; - value: string | number | Array; -}; - -/** @internal */ -export const Filter$outboundSchema: z.ZodType = z - .object({ - field: z.string(), - includeUnset: z.boolean().optional(), - operator: z.string(), - value: z.union([ - z.string(), - z.number(), - z.array(z.union([z.string(), z.number()])), - ]), - }).transform((v) => { - return remap$(v, { - includeUnset: "include_unset", - }); - }); - -export function filterToJSON(filter: Filter): string { - return JSON.stringify(Filter$outboundSchema.parse(filter)); -} - /** @internal */ export const Direction$outboundSchema: z.ZodType = openEnums .outboundSchema(Direction); @@ -435,7 +267,7 @@ export type QueryAnalyticsRequestBody$Outbound = { classifier_dimensions?: ClassifierDimensions$Outbound | undefined; classifier_filters?: ClassifierFilters$Outbound | undefined; dimensions?: Array | undefined; - filters?: Array | undefined; + filters?: Array | undefined; granularity?: string | undefined; group_limit?: number | undefined; limit?: number | undefined; @@ -453,7 +285,7 @@ export const QueryAnalyticsRequestBody$outboundSchema: z.ZodType< .optional(), classifierFilters: z.lazy(() => ClassifierFilters$outboundSchema).optional(), dimensions: z.array(z.string()).optional(), - filters: z.array(z.lazy(() => Filter$outboundSchema)).optional(), + filters: z.array(models.Filter$outboundSchema).optional(), granularity: z.string().optional(), groupLimit: z.int().optional(), limit: z.int().optional(), diff --git a/src/models/operator.ts b/src/models/operator.ts new file mode 100644 index 000000000..d852c41a4 --- /dev/null +++ b/src/models/operator.ts @@ -0,0 +1,81 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 2c6d6b8bb46a + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import * as openEnums from "../types/enums.js"; +import { OpenEnum } from "../types/enums.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +/** + * Operator identifier used in filter definitions + */ +export const OperatorName = { + Eq: "eq", + Neq: "neq", + In: "in", + NotIn: "not_in", + Gt: "gt", + Gte: "gte", + Lt: "lt", + Lte: "lte", +} as const; +/** + * Operator identifier used in filter definitions + */ +export type OperatorName = OpenEnum; + +/** + * Whether the operator expects a single value or an array + */ +export const ValueType = { + Scalar: "scalar", + Array: "array", +} as const; +/** + * Whether the operator expects a single value or an array + */ +export type ValueType = OpenEnum; + +export type Operator = { + /** + * Operator identifier used in filter definitions + */ + name: OperatorName; + /** + * Whether the operator expects a single value or an array + */ + valueType: ValueType; +}; + +/** @internal */ +export const OperatorName$inboundSchema: z.ZodType = + openEnums.inboundSchema(OperatorName); + +/** @internal */ +export const ValueType$inboundSchema: z.ZodType = openEnums + .inboundSchema(ValueType); + +/** @internal */ +export const Operator$inboundSchema: z.ZodType = z.object({ + name: OperatorName$inboundSchema, + value_type: ValueType$inboundSchema, +}).transform((v) => { + return remap$(v, { + "value_type": "valueType", + }); +}); + +export function operatorFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Operator$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Operator' from JSON`, + ); +} diff --git a/src/models/scalarfilter.ts b/src/models/scalarfilter.ts new file mode 100644 index 000000000..dcc88be58 --- /dev/null +++ b/src/models/scalarfilter.ts @@ -0,0 +1,68 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: a35bae1c804d + */ + +import * as z from "zod/v4"; +import { + ScalarFilterOperator, + ScalarFilterOperator$outboundSchema, +} from "./scalarfilteroperator.js"; + +/** + * Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned. + */ +export type ScalarFilterValue = string | number; + +export type ScalarFilter = { + /** + * Dimension to filter on. Use the /meta endpoint for available dimensions. + */ + field: string; + /** + * Comparison operator taking a scalar filter value. + */ + operator: ScalarFilterOperator; + /** + * Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned. + */ + value: string | number; +}; + +/** @internal */ +export type ScalarFilterValue$Outbound = string | number; + +/** @internal */ +export const ScalarFilterValue$outboundSchema: z.ZodType< + ScalarFilterValue$Outbound, + ScalarFilterValue +> = z.union([z.string(), z.number()]); + +export function scalarFilterValueToJSON( + scalarFilterValue: ScalarFilterValue, +): string { + return JSON.stringify( + ScalarFilterValue$outboundSchema.parse(scalarFilterValue), + ); +} + +/** @internal */ +export type ScalarFilter$Outbound = { + field: string; + operator: string; + value: string | number; +}; + +/** @internal */ +export const ScalarFilter$outboundSchema: z.ZodType< + ScalarFilter$Outbound, + ScalarFilter +> = z.object({ + field: z.string(), + operator: ScalarFilterOperator$outboundSchema, + value: z.union([z.string(), z.number()]), +}); + +export function scalarFilterToJSON(scalarFilter: ScalarFilter): string { + return JSON.stringify(ScalarFilter$outboundSchema.parse(scalarFilter)); +} diff --git a/src/models/scalarfilteroperator.ts b/src/models/scalarfilteroperator.ts new file mode 100644 index 000000000..d3255a55c --- /dev/null +++ b/src/models/scalarfilteroperator.ts @@ -0,0 +1,30 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 25c4ab8aa37c + */ + +import * as z from "zod/v4"; +import * as openEnums from "../types/enums.js"; +import { OpenEnum } from "../types/enums.js"; + +/** + * Comparison operator taking a scalar filter value. + */ +export const ScalarFilterOperator = { + Eq: "eq", + Neq: "neq", + Gt: "gt", + Gte: "gte", + Lt: "lt", + Lte: "lte", +} as const; +/** + * Comparison operator taking a scalar filter value. + */ +export type ScalarFilterOperator = OpenEnum; + +/** @internal */ +export const ScalarFilterOperator$outboundSchema: z.ZodType< + string, + ScalarFilterOperator +> = openEnums.outboundSchema(ScalarFilterOperator); diff --git a/src/models/setfilter.ts b/src/models/setfilter.ts new file mode 100644 index 000000000..43e36eba4 --- /dev/null +++ b/src/models/setfilter.ts @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 996a872ffcc5 + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../lib/primitives.js"; +import { + SetFilterOperator, + SetFilterOperator$outboundSchema, +} from "./setfilteroperator.js"; + +/** + * Several dimensions are enriched in responses (returned as human-readable labels), but filters must use the underlying ID: `api_key_id` — numeric ID (from generation metadata) or key hash (64-char hex from GET /api/v1/keys, resolved server-side); `user` — Clerk user ID (e.g. "user_abc123"), not the display name; `workspace` — workspace UUID, not the workspace name (filtering or grouping by the account default workspace also covers activity recorded before workspace resolution existed, which is attributed to that default workspace); `app` — numeric app ID, not the app title; `model` — permaslug (e.g. "openai/gpt-4o"), not the display name. Other dimensions (provider, origin, country, etc.) are not enriched and accept the value as returned. + */ +export type SetFilterValue = string | number; + +export type SetFilter = { + /** + * Dimension to filter on. Use the /meta endpoint for available dimensions. + */ + field: string; + /** + * Include rows where the dimension has no value. Applies only to dimensions that have an unset bucket. + */ + includeUnset?: boolean | undefined; + /** + * Set-membership operator taking an array filter value. + */ + operator: SetFilterOperator; + value: Array; +}; + +/** @internal */ +export type SetFilterValue$Outbound = string | number; + +/** @internal */ +export const SetFilterValue$outboundSchema: z.ZodType< + SetFilterValue$Outbound, + SetFilterValue +> = z.union([z.string(), z.number()]); + +export function setFilterValueToJSON(setFilterValue: SetFilterValue): string { + return JSON.stringify(SetFilterValue$outboundSchema.parse(setFilterValue)); +} + +/** @internal */ +export type SetFilter$Outbound = { + field: string; + include_unset?: boolean | undefined; + operator: string; + value: Array; +}; + +/** @internal */ +export const SetFilter$outboundSchema: z.ZodType< + SetFilter$Outbound, + SetFilter +> = z.object({ + field: z.string(), + includeUnset: z.boolean().optional(), + operator: SetFilterOperator$outboundSchema, + value: z.array(z.union([z.string(), z.number()])), +}).transform((v) => { + return remap$(v, { + includeUnset: "include_unset", + }); +}); + +export function setFilterToJSON(setFilter: SetFilter): string { + return JSON.stringify(SetFilter$outboundSchema.parse(setFilter)); +} diff --git a/src/models/setfilteroperator.ts b/src/models/setfilteroperator.ts new file mode 100644 index 000000000..4c676c8e8 --- /dev/null +++ b/src/models/setfilteroperator.ts @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 96f1a2679754 + */ + +import * as z from "zod/v4"; +import * as openEnums from "../types/enums.js"; +import { OpenEnum } from "../types/enums.js"; + +/** + * Set-membership operator taking an array filter value. + */ +export const SetFilterOperator = { + In: "in", + NotIn: "not_in", +} as const; +/** + * Set-membership operator taking an array filter value. + */ +export type SetFilterOperator = OpenEnum; + +/** @internal */ +export const SetFilterOperator$outboundSchema: z.ZodType< + string, + SetFilterOperator +> = openEnums.outboundSchema(SetFilterOperator); diff --git a/src/models/vaultsecretwriterequest.ts b/src/models/vaultsecretwriterequest.ts index fcb320875..3f4ce36fd 100644 --- a/src/models/vaultsecretwriterequest.ts +++ b/src/models/vaultsecretwriterequest.ts @@ -14,7 +14,7 @@ export type VaultSecretWriteRequest = { */ hosts: Array; /** - * Secret value, 1 to 65536 characters. It is encrypted at rest and never returned. + * Secret value, 1 to 65536 characters; a header-set credential (a JSON object of header name to value) may run to 985721 characters. It is encrypted at rest and never returned. */ value: string; }; From 207642061d999c9282f011e8fdc34696670741d7 Mon Sep 17 00:00:00 2001 From: "speakeasy-github[bot]" <128539517+speakeasy-github[bot]@users.noreply.github.com> Date: Fri, 30 Oct 2026 00:03:24 +0000 Subject: [PATCH 2/2] empty commit to trigger [run-tests] workflow