diff --git a/.speakeasy/gen.lock b/.speakeasy/gen.lock index 30063bce7..6e45dc0c6 100644 --- a/.speakeasy/gen.lock +++ b/.speakeasy/gen.lock @@ -1,26 +1,27 @@ lockVersion: 2.0.0 id: 664aaca5-a41f-4434-8f2a-642dba92fe68 management: - docChecksum: 1d1c4c798b764226bfeeae4268f907c1 + docChecksum: 23bc36681c86f15ea07a6f837d426164 docVersion: 0.9.0 - speakeasyVersion: 1.792.0 - generationVersion: 2.927.0 - releaseVersion: 0.18.1 - configChecksum: b41e1af1adbc70d0bc4b01c65b187d4e + speakeasyVersion: 1.795.0 + generationVersion: 2.931.0 + releaseVersion: 0.19.0 + configChecksum: 3876461a99417effa3db61451f57122f repoURL: https://github.com/gleanwork/api-client-typescript.git installationURL: https://github.com/gleanwork/api-client-typescript published: true persistentEdits: - generation_id: 316e19b7-3050-46ef-914c-73e5f77cf0cf - pristine_commit_hash: d4067214f61489816e561e4223172fb6fce61a6d - pristine_tree_hash: f35cd2723c9cdde29badb55dd110c00620f4f332 + generation_id: 62003777-4a0e-497c-a450-e6fc4c123ad2 + pristine_commit_hash: 4bd1d7cce08e7ac61b5a8fe726837e7a4db3f9fa + pristine_tree_hash: 481f01662fb1d5cb039c360431c1d92cf852cb9d features: typescript: acceptHeaders: 2.81.2 additionalDependencies: 0.1.0 additionalProperties: 0.1.4 + callbacks: 1.0.1 constsAndDefaults: 0.1.14 - core: 3.31.4 + core: 3.31.5 defaultEnabledRetries: 0.1.0 deprecations: 2.81.1 devContainers: 2.90.1 @@ -34,6 +35,7 @@ features: globalSecurityFlattening: 0.1.1 globalServerURLs: 2.83.1 groups: 2.81.3 + inputOutputModels: 2.82.1 methodServerURLs: 2.82.2 mockServer: 0.1.4 nameOverrides: 2.81.4 @@ -43,7 +45,7 @@ features: retries: 2.83.1 sdkHooks: 0.4.0 tests: 0.17.7 - unions: 2.86.4 + unions: 2.86.5 uploadStreams: 0.1.1 trackedFiles: .devcontainer/README.md: @@ -86,6 +88,10 @@ trackedFiles: id: 0ce9707cb848 last_write_checksum: sha1:bc4454e196fcd219f5a78da690375a884f5ed07b pristine_git_object: 08f95f4552349360b2c0b01802aa71ec3a55d2c2 + docs/models/callbacks/platformtriggerscreatetriggerwebhookeventrequest.md: + id: fd5ae7699fa9 + last_write_checksum: sha1:51cf5b22d4e742b7ea11a72041cf88e94823894a + pristine_git_object: 3c9cf7cbb23727bd3c1b9368abc38a86290a38b1 docs/models/components/accessrequestpermissiondeniedresponseerrortype.md: id: e1f9efd58195 last_write_checksum: sha1:94f57d4019fcf2fdcef554d67c28d0fd3131c783 @@ -416,12 +422,16 @@ trackedFiles: pristine_git_object: cd2612de7ba45b2cf00d3c36dfcdd42047e1668e docs/models/components/calendarevent.md: id: 7d3368213748 - last_write_checksum: sha1:7e25e056fffd5d64141cbc2b4a7b0a158845e86c - pristine_git_object: 5ad36d34ebabe78f31db4b3fcbc6379222001928 + last_write_checksum: sha1:4c5de91e7b24c66060dc103ec03008f36c8b7238 + pristine_git_object: bde3e03849b0375c55de908e2ab0da2305e92f8e docs/models/components/calendareventeventtype.md: id: ead997d06c1e last_write_checksum: sha1:268d85d1d775a7986e2b9e67abf43d5a1cf3f4f3 pristine_git_object: ce9d60a569cfca49b3ee20ffba81c31596b7c53b + docs/models/components/calendarroombookingstatus.md: + id: e9b0a5b6c161 + last_write_checksum: sha1:0297eddfa06daf9780e4c5644e3236a4d46b6f90 + pristine_git_object: a945038269bf48664476d74bbb69297f03f11584 docs/models/components/canonicalizingregextype.md: id: 57228d58fb12 last_write_checksum: sha1:a04313d9b3f688c15341355cf812ae6a7c036522 @@ -1248,24 +1258,24 @@ trackedFiles: pristine_git_object: 2d773c43730426ba979a2509498cc8367493d9e6 docs/models/components/feedrequestcategory.md: id: 801f1c3c64d4 - last_write_checksum: sha1:829d662641d467beed3330e4d537278c37f39545 - pristine_git_object: e5751cfd305108cba99864eb42478c256c57fe2e + last_write_checksum: sha1:08a3a91a851e5c7ac1c4885f0f0f5af40cce7382 + pristine_git_object: bdc9f84671370ef05d4da0ec9e5a02717cb69556 docs/models/components/feedrequestoptions.md: id: 76c5e4412304 last_write_checksum: sha1:9d026d140bef548159ac576066007ccc73ab5cee pristine_git_object: d36f4c0ede1e69c9b152b812a2aa33da8ec6c08a docs/models/components/feedresponse.md: id: a781b46b0647 - last_write_checksum: sha1:5b4cbe745428ba4b3596365f775d668f416cb235 - pristine_git_object: 4dca9eb879911b70ba3c11a23aa8bb3ed0dcb60b + last_write_checksum: sha1:da222a4b97b497b5386ab018ca0c6e0dd24272f6 + pristine_git_object: e0d78966cfc548106d853e46efd75b329ca6f816 docs/models/components/feedresult.md: id: c3084f56c0cc - last_write_checksum: sha1:74a6712c89de2a5b720a08fcd90d96d2b8614cc1 - pristine_git_object: 887a43f4d699b3ea3cb2cbc4af56bb639295b4a3 + last_write_checksum: sha1:1c868e892b347bcff76d4973e567f9dd6892a4ca + pristine_git_object: e205a401a4b10a28c6eb9d37be40834d7e61a181 docs/models/components/feedresultcategory.md: id: 94c0249352b4 - last_write_checksum: sha1:77ea9d22736cbf9818b4fa4167fbd10fb3f6fa23 - pristine_git_object: e9d2d9253302b7afabf2cec5f7baba521eb33107 + last_write_checksum: sha1:93ed115bad5c4a6431bd5cd5fb18e933363ac4ff + pristine_git_object: 36186d89c885b0f301fe45f525504e0f4f0b9c20 docs/models/components/fieldscope.md: id: 23caffb85bb7 last_write_checksum: sha1:b90b2a0fba0f78b414366202e56a1637a8a8793f @@ -1544,8 +1554,8 @@ trackedFiles: pristine_git_object: 7e5d5893d25765e9f9ea059729f7b555c4d01729 docs/models/components/input.md: id: ea03f2204b6f - last_write_checksum: sha1:eb8ac82864d54262c378a9d4ebf0ef0712fbbcd9 - pristine_git_object: 96badd3b78b581c0a67bc2f97c719f3845e15a14 + last_write_checksum: sha1:bad70b6a7129bc6648d25d48433a238f2f99605e + pristine_git_object: b45515ae444d9f22efd0cb129c06a4519f632e1a docs/models/components/inputoptions.md: id: 62e10ac3918a last_write_checksum: sha1:5fa0d9e69f800b6b886a9c7b70f9dba0636fc407 @@ -1600,8 +1610,8 @@ trackedFiles: pristine_git_object: 796fa0574cd02b5ca3a7046196a7cc4a214eeda0 docs/models/components/justificationtype.md: id: 5a15880767a5 - last_write_checksum: sha1:5b9822a5f44f433893ef8e41131b11eba33fb7c4 - pristine_git_object: a2597f9373525a93cc58d61537511c5594c42e5e + last_write_checksum: sha1:21419ea370c1b677394491bea72fd0869df8fe60 + pristine_git_object: 6eabb1799c0956ebd78c7e10f7ce4d603ad11b41 docs/models/components/knowledgetype.md: id: cf27a7cefa69 last_write_checksum: sha1:6e94f203bb1d3a0d12f0bdb0119bf36301536e8d @@ -1780,8 +1790,8 @@ trackedFiles: pristine_git_object: 8c115d56e434547047e4d750d962204a910fd24c docs/models/components/objectt.md: id: d897e3e8edba - last_write_checksum: sha1:e7b573e2ee1253cf3a30e967a018767f7f3747ee - pristine_git_object: a05893b2705baf3da442cf2cd8f3c9f78499d066 + last_write_checksum: sha1:73368290716c5828b865762dc045cf0387a8a7e4 + pristine_git_object: 127074910bcad44f8187e1c9dae0b05592be80ba docs/models/components/operatormetadata.md: id: 6893433a0808 last_write_checksum: sha1:995e619f59c75a9ec611873174cd0e8420b7005d @@ -1884,8 +1894,8 @@ trackedFiles: pristine_git_object: ae27eac7dfd55251b07c82582cf66f4e3674d7ad docs/models/components/placementreason.md: id: 4aca343a58b8 - last_write_checksum: sha1:31cfe4cb23b1ad813abe043e5f8d9d8d15740ba7 - pristine_git_object: 041fac880aca7c8fd71516bc473c54f43302f6a8 + last_write_checksum: sha1:509885082eab5876a9026362ba78812311b3f56c + pristine_git_object: adf60a35e9ab75dafb72e48e9bf892bac321f43f docs/models/components/platformactionsummary.md: id: 93ecbff93962 last_write_checksum: sha1:f0856d617e3918f6769d90cfecd01cce600a3889 @@ -1936,104 +1946,108 @@ trackedFiles: pristine_git_object: 78cf9e720ba360b732b4967138d4bd2495224239 docs/models/components/platformchatcitationannotation.md: id: 467352b9d75c - last_write_checksum: sha1:5d9c48d79832e75503ec99352f5fac9cffaa2fc1 - pristine_git_object: ca81ae7d7ae7fad5b5fee6c862b32a9d80ad0af5 + last_write_checksum: sha1:b3c0a3d5a776c050c434c4e9490f48f5b81f82d0 + pristine_git_object: 78057674857c1ef92f4a3795bdca94ed8ff3f927 docs/models/components/platformchatcitationannotationtype.md: id: a4ad1507c330 - last_write_checksum: sha1:33948fa2ae191f707278392987e069c478fd8e2e - pristine_git_object: 431d1e87da2ccebe4ca25e1ba7e09afe90b963c4 + last_write_checksum: sha1:26fdb41c145f5c85cef7ea36aac3ee1b1b90330a + pristine_git_object: 9e95ef86a0c14f3fcb18fbef061482f1d391d6cb docs/models/components/platformchatcitationsnippet.md: id: 2d053c4698b7 last_write_checksum: sha1:25d3a8c09a004c8f0b5e2a129fd494e0703f321f pristine_git_object: ceef765233c3603553570aa4981eafbceb11cdcb docs/models/components/platformchatcitationsource.md: id: 86a98410d676 - last_write_checksum: sha1:216d08ec75d65814e68097066dd4e23426d0918c - pristine_git_object: 9a241d45d7234371e2d1ef975dbf6b8badcebc92 + last_write_checksum: sha1:0f520acac2249c77c4adda5391a5237dc538ee2f + pristine_git_object: 5935ba186b4c812246426dbc58f74aea02012223 docs/models/components/platformchatcompletedresponse.md: id: f6dd2c9cf877 - last_write_checksum: sha1:3f50d26741626729c4dd4611f3168436183f0ca8 - pristine_git_object: 4112c465bc5d64c7df9c907f93259c3fa53d21bf + last_write_checksum: sha1:0f3e231e0ea1b6c9ee6a5d5e6b46e311e5fde64b + pristine_git_object: 532606ea16f0c5c6fbe31d1f09043fd68c6f24b7 docs/models/components/platformchatcompletedresponsestatus.md: id: c0af5424b1a3 - last_write_checksum: sha1:9b6328a51bff8e7e9f3302646efa3432592b7aea - pristine_git_object: 2ccfe44a3d445b6e6161fa4d2544b201c9cb4f35 + last_write_checksum: sha1:02ad186fc241ecb21ea4d042979b9dd6c446fb99 + pristine_git_object: 515cc88fa1c6f8ac6add2f20b51e155b85fc973e docs/models/components/platformchatcreaterequest.md: id: af3d88254add - last_write_checksum: sha1:9a8cbbdc33cc0fb2e0eafe1890b58c719811ea28 - pristine_git_object: 867b1327aeec094cb8230c5db07347df55fa7b55 + last_write_checksum: sha1:e72d820c7a33012381b203eb3f4754245568bbd3 + pristine_git_object: 12abbb633d931554dfaf20d720dd4bb09934afa0 docs/models/components/platformchatcustomentitysource.md: id: c6cba9d9b3a1 - last_write_checksum: sha1:6892fa8ce03f09b47ff1005d28730733101213db - pristine_git_object: b47aaca7994e651ff19215a51c53f9836952457b + last_write_checksum: sha1:40989b45d95f690b907de2546e56fde825562081 + pristine_git_object: fcf4eebafdae2ff110f77798ca0a2d1913fe8215 docs/models/components/platformchatcustomentitysourcetype.md: id: 1686e673d2ce - last_write_checksum: sha1:ef89a85baed3e6b9ebf97bc1eaf319c89ab56a5e - pristine_git_object: 3d4c97aa170488baa5245b6fc0ee659d0557a252 + last_write_checksum: sha1:49cbebae6e08377c2744959a9622b9f9c2943106 + pristine_git_object: 8f4d9728e74d80849830a4c028497a8820b1315b docs/models/components/platformchatdocumentsource.md: id: 617dca740a9f - last_write_checksum: sha1:d2190425cc6b1553ec0927811f91d3a0dd62a3fc - pristine_git_object: 5eb3a135bc30d961fb769eec324bbde0174167de + last_write_checksum: sha1:e62e04bbda1703983a8f2c7f4cd90709da2c87de + pristine_git_object: 8edc0e21541307e4c191fb71f8b024e04975b47c docs/models/components/platformchatdocumentsourcedocument1.md: id: ff1663e8f163 - last_write_checksum: sha1:cd425a8ef5eed18b90e66899a382bff7ab70aaf1 - pristine_git_object: 1fc3303b7060ae2a2d716b78d25ad2a5cb259dec + last_write_checksum: sha1:6c986de47abda93e00162103ec2e2354c726bbe5 + pristine_git_object: 19719d431dd304d39a1a6ecabf0e9a92c9336b1b docs/models/components/platformchatdocumentsourcedocument2.md: id: c0337e866e89 - last_write_checksum: sha1:538c0a8feeb2d41c40479b1a6a5936fec4835583 - pristine_git_object: 6a2e15b1081b66561ca4107696004b8f7816e35b + last_write_checksum: sha1:19b1e5ab2c6c464e68bd72eb583f1dc8da778de1 + pristine_git_object: f15d0ca3f3e9351d87d14992a87663ddd1fee894 docs/models/components/platformchatdocumentsourcetype1.md: id: 8d72cb90f74a - last_write_checksum: sha1:984152abc9d58e7f25d5af1514fb356454494a98 - pristine_git_object: eeb86693bb310523540192e87cdc855073bbfa67 + last_write_checksum: sha1:9b6c6d4206903c1beead8376c9b9433f7ba90cbd + pristine_git_object: 5ee11e078f6b2cffdc499e12ae1dbae65d1c2172 docs/models/components/platformchatdocumentsourcetype2.md: id: 09b92f604a92 - last_write_checksum: sha1:c889901ae0546003a9a660b38c092e4a2b6957a9 - pristine_git_object: 7dfc5ae264b37bf921abac683a0ea3aa13484704 + last_write_checksum: sha1:63f5d3b4a924b18eaeedb52b79fd66c674079494 + pristine_git_object: e09115c451711d3d557c830373b0e4b3505819f0 docs/models/components/platformchatfilesource.md: id: 53441e77a478 - last_write_checksum: sha1:0786ad462fcf15c225f22e4724785de150945f20 - pristine_git_object: fabd2c2c050d3630e21c7e9a35f393a6a9ab11d9 + last_write_checksum: sha1:6c382310bb76b3e183184c0d5a578f767ec891d3 + pristine_git_object: f2b29054cd25fbbedcca675ae2910c5e39ae56e9 docs/models/components/platformchatfilesourcetype.md: id: ac2f5e034fdd - last_write_checksum: sha1:bc0ab4d89c861d73389148ef6250aff189558217 - pristine_git_object: 5b838dd93d1b094279e3c1ce786d19fe5943e262 + last_write_checksum: sha1:d0332f021465c06fa79e37c9d9c0d1a7dc40af16 + pristine_git_object: 94501dd9ec6442ab625936528b17156311b9b5b1 docs/models/components/platformchatinputmessage.md: id: 482fd05bd77f - last_write_checksum: sha1:4a034d6d3163ea355267499053fd90ad38074fe2 - pristine_git_object: 0f2877e479acb04a4c542ebff7c53f00122aa8af + last_write_checksum: sha1:5d406a8f04c8f12f495e5e473a9025bad9f7baf6 + pristine_git_object: 09e5bde5260efa53409de9a6fe59222686970bc5 docs/models/components/platformchatinputmessagerole.md: id: d433e7bbef35 - last_write_checksum: sha1:2804779b4d95e111ef46a31a74037a98c2242019 - pristine_git_object: ec35150fda39656dade25d507cc4e53988ceb1f3 + last_write_checksum: sha1:0b361bb9d55596a0022878ef1aa91c9e782c5870 + pristine_git_object: 137d0c8608eb32b8672c234a91b6f18739ed2d21 docs/models/components/platformchatoutputmessage.md: id: 06f5e11e058a - last_write_checksum: sha1:181f598f2296f5f191a56af3d9c3aae422aa5c36 - pristine_git_object: 5d489223e7ef8f7344d12be33535b5e5aae8284b + last_write_checksum: sha1:1be8e49ede9b8bc5cd2e0c6147a7a39384a61dda + pristine_git_object: 2e54ec787d22939c0a77cdbd374df7ac2b64ffce docs/models/components/platformchatoutputmessagerole.md: id: cfd66f34b70b - last_write_checksum: sha1:19633ad69c890724989f2df78c978b010b24b3ce - pristine_git_object: 117fb3c6cbce5aa7846ed4b4d72d63040c970080 + last_write_checksum: sha1:7d5d0e66bb3b12d23ba9b184d57c489d6f2a1858 + pristine_git_object: 9a34c0b72b98652d13b39951084384bfd5da953c docs/models/components/platformchatoutputmessagetype.md: id: 488f9e7e5a1b - last_write_checksum: sha1:c15b1438615d7254e47f19cfd98ece8b0887f483 - pristine_git_object: d5a2d1b69c9220e8099404ce8b11a476b545650d + last_write_checksum: sha1:a6bd1bf40f785a11b7b207ae1ec3f763b0096abf + pristine_git_object: c8d864be2b9327f48625725498c435ca5d7c69f6 docs/models/components/platformchatoutputtextcontent.md: id: 41ecc87e478f - last_write_checksum: sha1:b601d8dda927d82a39fb063f95a08bc2a4782841 - pristine_git_object: a1dcabf4a58317a939bc0f8e42134539b13085b1 + last_write_checksum: sha1:0cf363611390743f1e05a653e3a1f8a0e12705f8 + pristine_git_object: 9f1c7036acde7a2301713719d83e7240e677a73c docs/models/components/platformchatoutputtextcontenttype.md: id: 12dc2e11fdf6 - last_write_checksum: sha1:94b3d2951ffdff69fe7fe47ecee32d9397049c91 - pristine_git_object: 7e0207d7ceb7e39d23d8d420644bca0a16e67d75 + last_write_checksum: sha1:e7a572736c4dd5b42dbb316dd1760f90cd779f7f + pristine_git_object: a99d06bd804f416c8560a2be2b3d5f3f1b9611d6 docs/models/components/platformchatpersonsource.md: id: 853620498d42 - last_write_checksum: sha1:9a2b65f4da06c1434dfb782cde48c768d51aeab4 - pristine_git_object: 24526a8a22ea517d656e7f9ace8a0d125f6a5cbd + last_write_checksum: sha1:cb88541daeaac62a5f11029ad27ad1dfc8b5f237 + pristine_git_object: e1689b9c8659babde802b7d4eb096c1f23e2e25d docs/models/components/platformchatpersonsourcetype.md: id: 76448f09c0da - last_write_checksum: sha1:da601bb01291c01aa38082f075f8d0ae464c710f - pristine_git_object: 79762d5251f92c5e8139579777486846b3d017d4 + last_write_checksum: sha1:735c6d77289937a589ece1d17c9050bc672149e7 + pristine_git_object: 0a80c33b4d577b2c53e2513505ed428e3ef46830 + docs/models/components/platformcontentschedulewebhookevent.md: + id: 889cf2a8f5f3 + last_write_checksum: sha1:ad520f9a5eee0ac3352505900f82e35803e96090 + pristine_git_object: 303fc543686f4711daffd8b83d30e175748e75ed docs/models/components/platformcontenttype.md: id: f5a30f465d14 last_write_checksum: sha1:d225b587d2a1d67643445aef678a99ded30fb27a @@ -2042,6 +2056,10 @@ trackedFiles: id: a136737cacdd last_write_checksum: sha1:ca7fd1352eb694766778a6147488922ef34789a7 pristine_git_object: f130748a198a9dd4d0234d5f5be6de4f1d92f399 + docs/models/components/platformdocumentchangewebhookevent.md: + id: a9c5d462f657 + last_write_checksum: sha1:b08713402f3469d1d0d316f88340de39ca5c542d + pristine_git_object: 57a2bed10e6ac3df1de2384d51973f2529ef9ec4 docs/models/components/platformfilter.md: id: 97ac5bc59c2c last_write_checksum: sha1:e80ec75f5fbf157e2287cf4ff04fd667dea2c9e3 @@ -2234,6 +2252,118 @@ trackedFiles: id: d2e589bb488c last_write_checksum: sha1:b16b0fb45a16cafd4942fc70075e8ba92d0b9386 pristine_git_object: 28f98d038baa3731367724285537485f3c8f5c20 + docs/models/components/platformtrigger.md: + id: 32a12f673811 + last_write_checksum: sha1:7ca6455d048b798f52fd14767c83edd4a4a463f0 + pristine_git_object: 469781672af4e5c3a0b24ca21916324b7818195d + docs/models/components/platformtriggerauth.md: + id: 93d59d8bcfdb + last_write_checksum: sha1:1d5a7efd1356bfc099fd54dfe7009da9ca5dcfcb + pristine_git_object: a24eafbfee02444de48c5edc92c454982a91b70d + docs/models/components/platformtriggerauthoutput.md: + id: e18beb5a055c + last_write_checksum: sha1:a3feaa4e54ae09b9e33503461ccd6f06dc681fe0 + pristine_git_object: a74128caca591adccc78837282b3675a5f33bed3 + docs/models/components/platformtriggerauthtype.md: + id: 76662866ae7f + last_write_checksum: sha1:4230511d5f2861a37fdc8a9f4ab0704afe7b5c68 + pristine_git_object: aee6e6e3cf96bf4bf1bb5d1db0bfddab15d5c660 + docs/models/components/platformtriggercreaterequest.md: + id: a97627618e38 + last_write_checksum: sha1:237f97465acc2e661168c448344ae51ca9f2d822 + pristine_git_object: c6f166aa55a0b0efec05fe5a253e79c5112bab04 + docs/models/components/platformtriggercreateresponse.md: + id: fa81b7ea6f02 + last_write_checksum: sha1:f1affe6550b3ec1a9d640c3c473732fea726900a + pristine_git_object: f3692427fe1f0a3eb8ce00b588eaaba5d1a0e125 + docs/models/components/platformtriggerdelivery.md: + id: 27acedd99596 + last_write_checksum: sha1:617c940746c149d61ff7d218403bd37a8cc57b08 + pristine_git_object: 4c438f57cd2f604f752e1dfde5b9dc4453820799 + docs/models/components/platformtriggerdeliveryoutput.md: + id: d43d76e3de5a + last_write_checksum: sha1:3973ed2997f81138664087dce47ca3edd8e03f6e + pristine_git_object: 968ec662b380707e8a712713f6d2c1e16d83bb82 + docs/models/components/platformtriggerevent.md: + id: 9f2ebb43fbec + last_write_checksum: sha1:74c041cd69ae56b58933cf4ad58d5b097e75e62b + pristine_git_object: 354c5c272838099805c06d1e76c33dee94484100 + docs/models/components/platformtriggereventreason.md: + id: 09d9f792a0e5 + last_write_checksum: sha1:3485c4f3cedced4ce7bc8b3c540841e36b7d8662 + pristine_git_object: 73ee39449183f83445c5eeebabebe5c20c50d3e1 + docs/models/components/platformtriggereventsearchrequest.md: + id: 61f9e0c276a4 + last_write_checksum: sha1:6c2f08d7817fc6c21f572745b0c63812afe2c974 + pristine_git_object: 8f99ca4329d5a8a122a35aeec36bdec703a76d26 + docs/models/components/platformtriggereventsearchresponse.md: + id: 85395bd452f0 + last_write_checksum: sha1:fbeebb4537461da93a8081cbe6e25d9422e95b35 + pristine_git_object: fafab438e4752321d841a098ca89839e4b1e3989 + docs/models/components/platformtriggereventtype.md: + id: 372fce2173ad + last_write_checksum: sha1:c84d664d525b8416997efc285e6bbc69786b3b48 + pristine_git_object: b02cf6ef0a2f0ed7da9d7376e643992a9744e59b + docs/models/components/platformtriggergetresponse.md: + id: 04a870f974c5 + last_write_checksum: sha1:147f9703a3e7d0a2f3b77d3deb3a581d3ac8b52c + pristine_git_object: 2f3966c233494485a9009eed6dc12d114667ef7e + docs/models/components/platformtriggerlistresponse.md: + id: 7193b491b236 + last_write_checksum: sha1:8d51331b5aa9e96e4b51fe1b302952530f745b6c + pristine_git_object: 7c6564db04a430080d9a15efebd34709efc2f723 + docs/models/components/platformtriggerpreset.md: + id: 8dab5ee09132 + last_write_checksum: sha1:961fb172437e66cebded03e6a1c79c97fe902190 + pristine_git_object: b3ef72c94530f1a97d3b58e3f000b82e7ae72959 + docs/models/components/platformtriggerpreseteventsearchrequest.md: + id: 232bb5d70f19 + last_write_checksum: sha1:e1f59742747688c57d3f173278e96bf690953be9 + pristine_git_object: 37e0dde728feafed12badace86b4aec5055ace46 + docs/models/components/platformtriggerpresetgetresponse.md: + id: d93f7d84a9b4 + last_write_checksum: sha1:fb0043d2fb3715dd4ba827113967676328bd8e16 + pristine_git_object: 9283080a97fff8907288f54389bc19ea178fde29 + docs/models/components/platformtriggerpresetinput.md: + id: 75dfb9fce60e + last_write_checksum: sha1:cd379edd127045cc166235c55258e4f6a20f1152 + pristine_git_object: 82c21d670dc061ddc66ae7e7d219a69fe1a70431 + docs/models/components/platformtriggerpresetinputtype.md: + id: 5403fe42b56a + last_write_checksum: sha1:eca30910693f643ab759db261fcfb46874d87b8d + pristine_git_object: aebdcb837766829e254cc327aeb91290ba44e1a7 + docs/models/components/platformtriggerpresetinputvalue.md: + id: ea912180a24b + last_write_checksum: sha1:a5b6aaf4d7c32d3ca7aad4914ff9ab5d748bf2ba + pristine_git_object: 557da9915069ff78d791182bef73379a124bf418 + docs/models/components/platformtriggerpresetinputvaluelistresponse.md: + id: 0a02b101babf + last_write_checksum: sha1:922e4f48b115ca768bb1afd462c139fcb79d9df7 + pristine_git_object: ab8a047d26815c172e7e23b0aaae8cbeb96b139a + docs/models/components/platformtriggerpresetlistresponse.md: + id: bab71c3f1873 + last_write_checksum: sha1:9bef179d980d75dad89549fed801b203d9fbbdd4 + pristine_git_object: dc5546d572af50213dcd6b1d721d17d850589d36 + docs/models/components/platformtriggerpresetsummary.md: + id: d217348ad46c + last_write_checksum: sha1:9f01e6347d2fd904a13f4defd9d74a9b628bcdfc + pristine_git_object: 44ba354215953aef5aed649228c4fe4d8f6dc40a + docs/models/components/platformtriggerstatus.md: + id: acc0ffd5e2f3 + last_write_checksum: sha1:5e4a35c7a68d7fbf0a0973664dd6165f27a116a5 + pristine_git_object: ca9ec29d891a01670d213d896564ecc02be0208f + docs/models/components/platformtriggerupdaterequest.md: + id: 20c0e1b0b8bc + last_write_checksum: sha1:d6ca9ddc72e27eeaec0503444d15dbd15f1976ab + pristine_git_object: 7bdf39359b8585a440b37f4ad08281f1609061ef + docs/models/components/platformtriggerwebhookevent.md: + id: 8ce4a6161e45 + last_write_checksum: sha1:9bcd625bd7b27c24d78ddc8acee78c10a5ba098f + pristine_git_object: 57b7e8f45ba0cba41ac703ea9740edb2d5fc4b99 + docs/models/components/platformtriggerwithsecret.md: + id: 8869d4f7bd58 + last_write_checksum: sha1:dc4d8d0539c842b7d28ab649edad1d6f1834c4d3 + pristine_git_object: f917b0a7d68ff8e2c7a33dcb980f8b3dcf64f2ee docs/models/components/platformwarning.md: id: 615bac51a737 last_write_checksum: sha1:cb3d9a4127f9aba55ce674a8306f254e902cd6d3 @@ -3276,8 +3406,8 @@ trackedFiles: pristine_git_object: 86d0551865da2973d4bc49c26a9ae3fab6829f85 docs/models/operations/platformchatcreateresponse.md: id: 44dd0bebd3e0 - last_write_checksum: sha1:1f3c420fdaf977cf73b06ce01a6be36d5b05cc92 - pristine_git_object: 2772585cc21493ed1803ac626389de65cb7c6a73 + last_write_checksum: sha1:d375d440423bb5f63826a7732421c436d4c7e4e7 + pristine_git_object: d5d70fb1bc3dee0a7748fe2af942b9ac10ed2c10 docs/models/operations/platformsearchfiltersrequest.md: id: fb15f593735d last_write_checksum: sha1:f2d1bd989b9012c481f0131bb912764e6ac1b702 @@ -3338,6 +3468,42 @@ trackedFiles: id: 0ecd8af8f701 last_write_checksum: sha1:8b58b56477bd6f5fb4eab11b2ba3eb48d92c6978 pristine_git_object: 7740772104f89ae3b723fadb59fad3ece476c0e0 + docs/models/operations/platformtriggerpresetseventssearchrequest.md: + id: e7975eb729f5 + last_write_checksum: sha1:d288c2d1aa9cff9b673fb63624ebf3b5de1cc4ae + pristine_git_object: ccc1014ccec863d86f7ee642c8118702918888bc + docs/models/operations/platformtriggerpresetsgetrequest.md: + id: 1c73fba32272 + last_write_checksum: sha1:459bb477a356452fa5ea47faa2c461fc7383c222 + pristine_git_object: 3e092b1fdcbf9c88ebe8729a06a8b1d2dd1112c5 + docs/models/operations/platformtriggerpresetsinputvalueslistrequest.md: + id: 2bcf296778c5 + last_write_checksum: sha1:e6cdd14b333197896559db63e0df7fc3770c0419 + pristine_git_object: 8fbe206ba3757253f9cec9c6c4c7ba63b6da4654 + docs/models/operations/platformtriggerpresetslistrequest.md: + id: d5d046363585 + last_write_checksum: sha1:8bd6c83462bee40aa40cad36f899600439758816 + pristine_git_object: a73a93e5e3ac6ba20b8ff7eaa4066d9b895aae7c + docs/models/operations/platformtriggersdeleterequest.md: + id: 9d9c01c3ab75 + last_write_checksum: sha1:4161f07ee0d3e55ac3b3e7ef6b3d6cd315633134 + pristine_git_object: c81f9e53b4af35e9bbaa3d493e92787be190bad8 + docs/models/operations/platformtriggerseventssearchrequest.md: + id: b55312ea0a25 + last_write_checksum: sha1:e1044ac8014e29d86982bb286e77c7552c61f64f + pristine_git_object: d7ca59e0b37eeeb3bc9890b581b2f97bce91844a + docs/models/operations/platformtriggersgetrequest.md: + id: e6ec4199a6fc + last_write_checksum: sha1:fe8d67ef6b1277f20dafe7dd5663926d251f7870 + pristine_git_object: e16272a6c8558ce75ab595a7447cdd0512165ac0 + docs/models/operations/platformtriggerslistrequest.md: + id: f833e5ee0b52 + last_write_checksum: sha1:bced611122f84ced35604c012001afe9e98c5dba + pristine_git_object: a9e97c3cfc0165dcee4824e0ad81ee30f12d3470 + docs/models/operations/platformtriggersupdaterequest.md: + id: 501a8c9f6fd4 + last_write_checksum: sha1:d1b5461fad8717e16b07cda9b0db84f09618796e + pristine_git_object: fd81b8d67523f03d3f6a9cbdab4fe392776a6edc docs/models/operations/postapiindexv1debugdatasourcedocumenteventsrequest.md: id: 13205d748dcd last_write_checksum: sha1:a4343ef66a0c237e1eada5f9fe0ca897db13a0a2 @@ -3544,12 +3710,16 @@ trackedFiles: pristine_git_object: 2c29a709d3d1b54d4abef32fe9f29f6364bfee38 docs/sdks/skills/README.md: id: 3a14a5c90791 - last_write_checksum: sha1:9a6b26965cd30eef9cce0579c4f1ecae5b3dec57 - pristine_git_object: 2634c0a6b41b2fd050aa7d16cd76a44bf08cb5df + last_write_checksum: sha1:ebc027c5eb4a9403ae43f51aa265913f87ae22e6 + pristine_git_object: 4231043fb363657a0098fca957fbd6e9316b028d docs/sdks/tools/README.md: id: 044286549bac - last_write_checksum: sha1:3f76f759a2a96e7e736f4c470d2937ef217d92da - pristine_git_object: ebf0e4ed488f82018b8f475e667b1659e5a83d0e + last_write_checksum: sha1:23fcbbfc0e1b9d89c8466b6313b5125e05cd5aa7 + pristine_git_object: bed0af9a44427e3eb7c2d8509454f1b77a7e4075 + docs/sdks/triggers/README.md: + id: 6706220e8a9c + last_write_checksum: sha1:faaa03767ed6f0284c003a7c3a3ee966c6382aaf + pristine_git_object: 08d7532f3257552bb6b28215daeb0024cf2190f3 docs/sdks/verification/README.md: id: 8148670b64d3 last_write_checksum: sha1:5dae6116a97c546dd5d203beddd266ded05cdeec @@ -3584,12 +3754,12 @@ trackedFiles: pristine_git_object: 5a2797590d4be351d62915017d5b2a0f853537c8 jsr.json: id: 7f6ab7767282 - last_write_checksum: sha1:4d1be527ed9db32b91078dd54c04f39fe72ed642 - pristine_git_object: 6252229ac6decc07bb05e2d5b1da9186bd8f789c + last_write_checksum: sha1:c9a44e99f3f94e80f0c4af0c835b7f2d94dcd700 + pristine_git_object: c1e678a6b35ff3ebd027d43c0cc257395bbdd528 package.json: id: 7030d0b2f71b - last_write_checksum: sha1:4f731e1df17b33991b0c2f542f9f95fd28c35a50 - pristine_git_object: 1aa7344f7cf0340c13677ac09efde9c5b6181fc2 + last_write_checksum: sha1:34878b705f494208a9fdc5f08791aa2d55396a74 + pristine_git_object: 9fb584bc8531716b2b3d07b9a869f12b06289581 src/__tests__/activities.test.ts: id: 65fa859b8f59 last_write_checksum: sha1:756bc40095f4495bbf62739b8218bb4a559a24f2 @@ -3704,8 +3874,8 @@ trackedFiles: pristine_git_object: d252821b825c62856886e3ab9287181d7ef7f9de src/__tests__/messages.test.ts: id: 39e293f09219 - last_write_checksum: sha1:17d923a23384341a26ce4774612e47a9bcfc8dc6 - pristine_git_object: 41c0b3c93454418989eac9a34b10c888541e3e2e + last_write_checksum: sha1:d71d67d8ed6743e623401b4101f70705c2eb5172 + pristine_git_object: a4785e3180745bef1ba299e2191e9c49bec1da88 src/__tests__/mockserver/.gitignore: id: 4a7fc421b6b6 last_write_checksum: sha1:228e1b05712a973948fd771323a2140a3b355ff4 @@ -3760,8 +3930,8 @@ trackedFiles: pristine_git_object: af3a6d136d837850b34ed893a8faf800ea114721 src/__tests__/mockserver/internal/handler/generated_handlers.go: id: e6f590a8ce11 - last_write_checksum: sha1:a9fa57aed3c4938557d917daa19418662e0966af - pristine_git_object: b45346d964dc06675b38d160fc39a54663d9edef + last_write_checksum: sha1:447773fdfed679f8320a119aff6e536fe92a3515 + pristine_git_object: 010a384f34c7c716520ce6e62261c2fb4b5e548a src/__tests__/mockserver/internal/handler/pathdeleterestapiindexcustommetadataschemagroupname.go: id: ef047f0e0f32 last_write_checksum: sha1:187ff16d05efa1c937632f61dd3f49e49691d5ff @@ -3806,6 +3976,26 @@ trackedFiles: id: 3e78ab5e8aac last_write_checksum: sha1:fcfe1c35c8eb5a2cf5b59039fb4f417c9b41e5a9 pristine_git_object: 378a0630e5be5b0fe9d6f25920076c4b7f57deb4 + src/__tests__/mockserver/internal/handler/pathgetapitriggerpresets.go: + id: 1bf1cd639fcd + last_write_checksum: sha1:196bba405f612dfc15022d313cfee40ac8a0c210 + pristine_git_object: b2a2e1bc902ec79fdda1bf149a9224a82422ca8f + src/__tests__/mockserver/internal/handler/pathgetapitriggerpresetspresetid.go: + id: 69fc355daa2f + last_write_checksum: sha1:5582e926a32cb176f34cf344ab3aed10e65a0181 + pristine_git_object: ffcb3bab0bd7e8b5b71ff8cda2465144f38050de + src/__tests__/mockserver/internal/handler/pathgetapitriggerpresetspresetidinputvalues.go: + id: 90e14855e035 + last_write_checksum: sha1:b51061c7b991df9c810d8f3b7c4844959cbcda93 + pristine_git_object: 4ee901dcf2d85a526c5fca4883ff4c4936b27292 + src/__tests__/mockserver/internal/handler/pathgetapitriggers.go: + id: f494b7e57c3b + last_write_checksum: sha1:4511c0ced3ad4650aee9c2a1a2c63aa8ca8a8539 + pristine_git_object: 90905e6bd99ffafecf38ed67d550f0f673eed56c + src/__tests__/mockserver/internal/handler/pathgetapitriggerstriggerid.go: + id: 463c8d7bbd74 + last_write_checksum: sha1:a8f41fa4735684fe08df2cba602880abd97a2985 + pristine_git_object: 54a9adb916a91b9c8b091d1db4a4092b97791f69 src/__tests__/mockserver/internal/handler/pathgetrestapiindexcustommetadataschemagroupname.go: id: 68f9bc7ddc35 last_write_checksum: sha1:4fe0018044e99586f72be23534b463468e194ba2 @@ -3866,6 +4056,10 @@ trackedFiles: id: 280e3c3128d3 last_write_checksum: sha1:8a67ea67346ae87b7dca6f9364f8bea8168edcef pristine_git_object: b34f7bb79e934d0bfea1e3fab523553b2edd055a + src/__tests__/mockserver/internal/handler/pathpatchapitriggerstriggerid.go: + id: 60124b89f681 + last_write_checksum: sha1:c14bf59bfcfe591354652d41dbc78334fb68e139 + pristine_git_object: c94cec3522cb41833476975080b4e2f18c7b5924 src/__tests__/mockserver/internal/handler/pathpatchrestapiv1configuredatasourcesdatasourceidinstancesinstanceid.go: id: 4a84c44a0136 last_write_checksum: sha1:39b22d980421128b90c41c84170e2517e737ddd2 @@ -4026,6 +4220,18 @@ trackedFiles: id: 352938cf16f1 last_write_checksum: sha1:32820997decd4c3178b0821c69eb534767e8471d pristine_git_object: a610cb5bf45d86cce7e7ff810a2b03503df3d64b + src/__tests__/mockserver/internal/handler/pathpostapitriggerpresetspresetideventssearch.go: + id: cccf2454ed3f + last_write_checksum: sha1:32838820dbd662ff22cd91922e26c1fcb3ff152e + pristine_git_object: 7d52adbbbbc63464ba57786cd81b65fdedde2678 + src/__tests__/mockserver/internal/handler/pathpostapitriggers.go: + id: 5ea81159ef53 + last_write_checksum: sha1:b6a0cf8e1fe35dbce6e0da8b68c34980a2fc76b9 + pristine_git_object: 4d5a24621da8b62f1d6029bc007531886aef1943 + src/__tests__/mockserver/internal/handler/pathpostapitriggerstriggerideventssearch.go: + id: dab45dea610f + last_write_checksum: sha1:e77e30076fb792334da13c1690df87a7cca7c788 + pristine_git_object: 54a7513438fb7e39b150b8e694035958a9140515 src/__tests__/mockserver/internal/handler/pathpostrestapiindexsubmissionsdatasourceinstancetype.go: id: 410f5ff99a6d last_write_checksum: sha1:71db746b9c36c16fcc088c2fe953b5f73ca232e8 @@ -4156,8 +4362,8 @@ trackedFiles: pristine_git_object: 2e612d4143e02dd5e90750945b781302230969b3 src/__tests__/mockserver/internal/handler/pathpostrestapiv1getchat.go: id: 4a9c64bf3a68 - last_write_checksum: sha1:bd92836a7e38740708f76f52b19704fda11d9ab7 - pristine_git_object: a7e16d16bf67e08174b9a7ec990934165ce72f6a + last_write_checksum: sha1:2766e6a943d9c18dc4d8a7f9e3bc7122a76bde0c + pristine_git_object: e2243868c4ccfbb9c80e49f9ca99c92735f4978f src/__tests__/mockserver/internal/handler/pathpostrestapiv1getchatapplication.go: id: 069e6f3638f9 last_write_checksum: sha1:fe7b6e94356f030628f826fdaa494f1f87bcba8a @@ -4314,6 +4520,10 @@ trackedFiles: id: fd668c9dd962 last_write_checksum: sha1:a2a4e08b770e6bf6c9071be60fc77f32e869b99a pristine_git_object: e727046196ca66f39773e863f1bbe595eda7296c + src/__tests__/mockserver/internal/sdk/models/callbacks/platformtriggerscreate.go: + id: 9f4d2c30444f + last_write_checksum: sha1:b03ff2ba41cc91e27ca4d28406fe9d0228bcb2f2 + pristine_git_object: 37ccf40e891ffc73cf23ff27124af0dc3fb2e668 src/__tests__/mockserver/internal/sdk/models/components/accessrequestpermissiondeniedresponseerror.go: id: f879123c8965 last_write_checksum: sha1:4a0014d776ebbbcd8f95518c19113e75d3422cdd @@ -4552,8 +4762,12 @@ trackedFiles: pristine_git_object: e695de9382faeb36315bd2ee5193d0a09bdaafb6 src/__tests__/mockserver/internal/sdk/models/components/calendarevent.go: id: d7e23777ed1e - last_write_checksum: sha1:00e52d3795c7b629817fa6dbcad6174bdad65cf6 - pristine_git_object: 5b5de44131051d294c63d40e701b28ba08b4f203 + last_write_checksum: sha1:a9d5a4e0d51cb5a09dcd19f4d57f90f43838f10b + pristine_git_object: cb8469207fb774945a4c8eb83dcd4faa3ca1e5f9 + src/__tests__/mockserver/internal/sdk/models/components/calendarroombookingstatus.go: + id: ff0cce8cf47a + last_write_checksum: sha1:ef1410ee99d2404b9548a26f84b7191efa6f4973 + pristine_git_object: d4c5ee0b9d07c4fce3cc77af94b14e5304e52646 src/__tests__/mockserver/internal/sdk/models/components/canonicalizingregextype.go: id: 2673395799fa last_write_checksum: sha1:59703f89a6c2a27d90b6943798b3052e8d0c7fbc @@ -5224,12 +5438,12 @@ trackedFiles: pristine_git_object: eaa87413391e44f74a2647a75d861904a051a1af src/__tests__/mockserver/internal/sdk/models/components/feedentry.go: id: 809547cb5c68 - last_write_checksum: sha1:c8a35dce583e56a382f37d33b263066f489fc6c1 - pristine_git_object: c10cf6160b33b8dba52632d14c542b5596afcbe3 + last_write_checksum: sha1:66d681032d245f1619931c9965db0b9fc8367dd4 + pristine_git_object: cc69d17551389d97ad83ff29d380d89a3227790e src/__tests__/mockserver/internal/sdk/models/components/feedrequest.go: id: f7bd2c505cff - last_write_checksum: sha1:570996d04749d147d75ec36caa21524209376a1e - pristine_git_object: 0a92f10622f9d3bd77b3aad8660e3d5efe0222e8 + last_write_checksum: sha1:cfc56433977be2c80d8fab232f492792fbc73c92 + pristine_git_object: a5f8b3a90bb5f38fb85c844272f39e368fb71225 src/__tests__/mockserver/internal/sdk/models/components/feedrequestoptions.go: id: d6a1872334df last_write_checksum: sha1:1ab14ce889dc4f6a8cd018f5ef731ee05e3c4f3a @@ -5240,8 +5454,8 @@ trackedFiles: pristine_git_object: c92a344643e978700da31b2f24afaf9d14fd8d69 src/__tests__/mockserver/internal/sdk/models/components/feedresult.go: id: 90772ce61c8a - last_write_checksum: sha1:0b9177ec69b138ff564f27de7a1c0f9a3b697363 - pristine_git_object: a3066261f9a430485a2d225a835251fd7681c336 + last_write_checksum: sha1:4dbd1a71f92818054220204f3d6e454fd766a875 + pristine_git_object: 7d221ae18bef2201c7db781fdc696594e81dcea5 src/__tests__/mockserver/internal/sdk/models/components/followupaction.go: id: b87db474fc6a last_write_checksum: sha1:94c11e6ccb0d238213354241dff0baa101808b64 @@ -5752,8 +5966,8 @@ trackedFiles: pristine_git_object: 64931aae7e6a17c399ed405fb398a14b86702e7b src/__tests__/mockserver/internal/sdk/models/components/platformchatcitationannotation.go: id: 466159faf700 - last_write_checksum: sha1:d3c9dbc073c57f0c8a2f0728296cd489d8e7b6b2 - pristine_git_object: b0b9de0e97debdae9574ae01731804400e813516 + last_write_checksum: sha1:8335bc27d5b0a2b3b98808ffa519213a1720ec8c + pristine_git_object: 792b812532e77f43008f823c28b8146aa779d1e0 src/__tests__/mockserver/internal/sdk/models/components/platformchatcitationsnippet.go: id: 76edcacaf93e last_write_checksum: sha1:4296a29677db370c9cfc3b28218b01435b4bcad8 @@ -5764,40 +5978,44 @@ trackedFiles: pristine_git_object: 39ab410cfb929cad72dd967aead0cfab65926a96 src/__tests__/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go: id: 8f56121059d0 - last_write_checksum: sha1:8a9ff937256b6185b2d52572c8c305b8a5ee9b6e - pristine_git_object: 9e0cdb0a5c2d6e4f39a710c9613a9eb6583fb193 + last_write_checksum: sha1:fd2e0585b44227d99bb44d01661719c24a3b7b28 + pristine_git_object: ccc1ffa7eacc635780dcc91a8f8e7fc3dd06e2d9 src/__tests__/mockserver/internal/sdk/models/components/platformchatcreaterequest.go: id: d7b9bdfe9b8f - last_write_checksum: sha1:552b2c08522df687649c1de74a22c922fd8c4de8 - pristine_git_object: 06561e4b8fe0c578342ac044c9218cd2181ab836 + last_write_checksum: sha1:e06a0eba90ebb7412bfb22ed1013265f40f055f5 + pristine_git_object: 204108288aa9ca3ee76f7df55b45ed80610a3277 src/__tests__/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go: id: b77f94af96a8 - last_write_checksum: sha1:82b70c87fb580862f8b4bedb8683f90843f91835 - pristine_git_object: 1d41c6b64ca1a20d6c59b6081c090c63ec9df252 + last_write_checksum: sha1:55727c996824a4fdb61b9334a7c6db7bc2e1b80c + pristine_git_object: def886172fc39e8fa7236c2a9332e56571e60900 src/__tests__/mockserver/internal/sdk/models/components/platformchatdocumentsource.go: id: f232d703d68c - last_write_checksum: sha1:947242208f71fe3517a4bfb659aed9ffa1fb89bf - pristine_git_object: 707be168d9d8be5599693d7112c382334ca17fe4 + last_write_checksum: sha1:610f9656675342c75d6209a4aac1be0d9c8916be + pristine_git_object: 3086e8358d592339e5e59b41679029784a1c700f src/__tests__/mockserver/internal/sdk/models/components/platformchatfilesource.go: id: 40e6ccf2fdae - last_write_checksum: sha1:38d71223861b787768eb7ab24c994b002c75f63f - pristine_git_object: 69991a9a5893f634387b854c0964665aff4580f2 + last_write_checksum: sha1:0a394842bf2569f2053b6d1669a9194208ed85aa + pristine_git_object: f1e39d6950f3cd342403dd0747105a6b29191b40 src/__tests__/mockserver/internal/sdk/models/components/platformchatinputmessage.go: id: 3073b8cf092d - last_write_checksum: sha1:14c2e9d83b70aefc12438fb7d10b84ff41f81ca7 - pristine_git_object: df2c424a9367e111b265b337a69b6273969571bb + last_write_checksum: sha1:6340f73e5bffac9a724f8eb9f6a73082273cf080 + pristine_git_object: 27fa64cbf8a93a7d9825b49f1637ae119e78315e src/__tests__/mockserver/internal/sdk/models/components/platformchatoutputmessage.go: id: b4782e0cffe9 - last_write_checksum: sha1:5692711fd8c035df5dfd9deb83377780f03bca2d - pristine_git_object: f02e9b2d266915b4962d952eddbc7d4cf3068370 + last_write_checksum: sha1:0c5708d631196c2c4cdf0e64a2ba23939acecbd2 + pristine_git_object: a8a58d2ede6d01bc4c7b626b6830d17bda3444a7 src/__tests__/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go: id: 3bd4856d4753 - last_write_checksum: sha1:0d96861b7abc1ecccad547f8ddb0f6ad12cd20bb - pristine_git_object: dc6e6121b338abb037224b80e972e27583da90b8 + last_write_checksum: sha1:859d1b5f0063a12f31d2a544aaa78d01e57a445f + pristine_git_object: 0cecacad8c07e17a57ae9d2a0dabef1a074931ad src/__tests__/mockserver/internal/sdk/models/components/platformchatpersonsource.go: id: 3b8c301f9600 - last_write_checksum: sha1:190002a9bcc4e5180fa28c8463f4b2b6a1c655ec - pristine_git_object: f27dcb8149822078336c7a925cdcce9722cfda7c + last_write_checksum: sha1:9e5f72c1a5d130516f17326db5ea40100385e413 + pristine_git_object: a17cf3988ef8e44af1a5dc6331f88efb766ce2c5 + src/__tests__/mockserver/internal/sdk/models/components/platformcontentschedulewebhookevent.go: + id: 1dec110fbea1 + last_write_checksum: sha1:af9daf2078ac7a31ea3edaff07b8523d137e2da7 + pristine_git_object: f8284566fdd6004bb58bbb2c54e3375974b06747 src/__tests__/mockserver/internal/sdk/models/components/platformcontenttype.go: id: 35fc64c34a6d last_write_checksum: sha1:ccf4b0720954621f96c5f58cd961c0c9d2cf6e7b @@ -5806,6 +6024,10 @@ trackedFiles: id: c443191c9b7d last_write_checksum: sha1:53ad3d12274dddd6baf162024c244ceb7a5cd350 pristine_git_object: 73410740eccc6e408393ca03dc6d757fac686239 + src/__tests__/mockserver/internal/sdk/models/components/platformdocumentchangewebhookevent.go: + id: e3d51bf15c74 + last_write_checksum: sha1:9b662addab70bcef961ddde90a2676ff6d3f9585 + pristine_git_object: 44d3586595ad0514956530ebccbf75d163912e18 src/__tests__/mockserver/internal/sdk/models/components/platformfilter.go: id: 81cb594b3436 last_write_checksum: sha1:6323c368b8503432e07b7d6ca7fde8d535332a88 @@ -5986,6 +6208,110 @@ trackedFiles: id: b8e92c9af7ab last_write_checksum: sha1:4e21c170201779eccc4d8c31ddbd56673895e674 pristine_git_object: 324a22fd24bcaec171674bdcb42eee769463f21e + src/__tests__/mockserver/internal/sdk/models/components/platformtrigger.go: + id: 9e1dbe70a16e + last_write_checksum: sha1:e7cab0975bc049ecacce729f3d67cb31941a1a26 + pristine_git_object: 1fbc8044c1b2f8942bc2f971e9274c8b01f1c121 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerauthoutput.go: + id: 19714f2f7f1d + last_write_checksum: sha1:d2b11f2d5009ca4e216f8d04ed005a4fca2b8a90 + pristine_git_object: 362627076c350e09ce9f7e8a043438ad7d326723 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggercreaterequest.go: + id: 3998088a527e + last_write_checksum: sha1:d3878c77eaee965facf36a73e46509d1384285c1 + pristine_git_object: ca36065db2e91240f93f2f9147cd453f77702ff4 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggercreateresponse.go: + id: 66f1748722fa + last_write_checksum: sha1:29a5b87ae0927d56a8ff57af603ea9533fe85a25 + pristine_git_object: eb12985a44ec39c922fda1e9b9169df6557b7425 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerdelivery.go: + id: 60753ec0281e + last_write_checksum: sha1:cad6778a62220198206422f20c4bb3e68cfc75d4 + pristine_git_object: a9e96bfa9b38f627f8e3ec86cc68daf5d6970878 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerdeliveryoutput.go: + id: dde6e04e6eb6 + last_write_checksum: sha1:459ccbc041de0272ecd565d63d2f359168a76799 + pristine_git_object: 7ab369980bfbe66e3d4d3493337916f78a5517e2 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerevent.go: + id: 2c0f8e7ebdba + last_write_checksum: sha1:559e48a19aff2b048667539e570e90766758e3d1 + pristine_git_object: a756a2969f141ad0b949df030be2216d211bb47e + src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventreason.go: + id: 405ea0e78cf3 + last_write_checksum: sha1:d20280dabeea5d6892cb6d9e92fc69177fa443a1 + pristine_git_object: 43165608e309a5b121ff01ec0e34fd41be80eb52 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventsearchrequest.go: + id: d25ba9f345f0 + last_write_checksum: sha1:584fc0abba8bcff84af699600b634312fbb45ec3 + pristine_git_object: efa845e42e16c80d8518e1e67eaacd731a7b0068 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventsearchresponse.go: + id: f435d829b645 + last_write_checksum: sha1:86901446ed354edcb40528af705bb1f9ab3663ef + pristine_git_object: e0fd80510eb79b95ed1a8b680b7d5b6507baddd8 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventtype.go: + id: 5e48dd4bcd0a + last_write_checksum: sha1:a9a926c9f6c843130d7e6ba39baa5c0285889bde + pristine_git_object: b13dc2f4766d96325cf8ba37d9c12edf9c7add60 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggergetresponse.go: + id: 64b98792dbba + last_write_checksum: sha1:d9f2103c288fb35874151df3c89ad76cf65ee8c9 + pristine_git_object: ea6c1b93d33f8398ef20a6a2ca5beecf6956ee31 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerlistresponse.go: + id: abf652846301 + last_write_checksum: sha1:aa34d44652a19bb54ef60c7831dca2b34a328cb3 + pristine_git_object: 1cee1c54e399f19319600f45230cb7d9b58c33e3 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpreset.go: + id: 08efcfe12520 + last_write_checksum: sha1:dd4b71d92e97e50e777e7385ef8e97be815ffa9d + pristine_git_object: 3208faada7cc38b7227dc266f0bd3eec43b5bf58 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpreseteventsearchrequest.go: + id: 18d2dc638cce + last_write_checksum: sha1:27052d9c01b5db97385035d026efc0d6efc10c9c + pristine_git_object: 9ab06d308c980aa60b95c2b5771db2ca90323d61 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetgetresponse.go: + id: 8f41ea4211ca + last_write_checksum: sha1:fcd13a59377c9cd3bcdb137add79f566f469547a + pristine_git_object: 427979a9563004b03cca89ab2dfe8ba549e9bfdb + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinput.go: + id: c6236742b533 + last_write_checksum: sha1:c2a154d18b4e85f35e7217cd2dfe2d8ec0cf9340 + pristine_git_object: 6629c89a881c21f8333f99f7351ac631924438eb + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinputtype.go: + id: a219707dd271 + last_write_checksum: sha1:99b7137483a129d06ff051755b5feba646a5678b + pristine_git_object: c7a91822a7a93cc3a3dbc0874e2a76c93836b8fd + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinputvalue.go: + id: 40c940d549ae + last_write_checksum: sha1:96ed01593447faa770e8d5eb8fab1f07c8a7ae2a + pristine_git_object: 1d4e8732ebba5b93cb3b1341d525f75089b66a95 + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinputvaluelistresponse.go: + id: db1a212739d1 + last_write_checksum: sha1:1b8ddb759acb65e11ed1cf9c93e7a8a990aeab83 + pristine_git_object: 07b41f1c4fc240fc7271200a8177d34f85ff8d6b + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetlistresponse.go: + id: 25016540ff2e + last_write_checksum: sha1:e7fdfa67436da158ed70ea1935de504a9af3c747 + pristine_git_object: d419129d61ba90c297dab4f8298dda4be7eb369b + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetsummary.go: + id: 1ce129382e94 + last_write_checksum: sha1:cb9b4974eff0b9cb6fd019acee7d29915ab8a436 + pristine_git_object: 21379947f7814f1ac49511e6fedda9dec4798cca + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerstatus.go: + id: 44b0e6baa4bd + last_write_checksum: sha1:ade87dce9ac7e144594af62331eda2adf4e4e59c + pristine_git_object: 32840b7820fb384cde5088d1970dbf88a788aacf + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerupdaterequest.go: + id: 5ce573b641d5 + last_write_checksum: sha1:23b7745adbdd196d43d02451dc8d6cbd39eff463 + pristine_git_object: ce65a5ae64f1276e6b9d99282d1e3b22060117dd + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerwebhookevent.go: + id: 5358430e5961 + last_write_checksum: sha1:e88952ff9988a612ff05fc119543d58d992cc14b + pristine_git_object: ab3c71f530a2988f912bbad3ac5538882554631d + src/__tests__/mockserver/internal/sdk/models/components/platformtriggerwithsecret.go: + id: 0751b4273ea2 + last_write_checksum: sha1:4b00ec7a38d32d3f58147b668d9e904b226566a8 + pristine_git_object: 45f0f6422a2d208e93ca896a567d0420584f19e5 src/__tests__/mockserver/internal/sdk/models/components/platformwarning.go: id: 47e6f65a8f0e last_write_checksum: sha1:a1e791366d778cca8b2510ed34e2fe62796191a6 @@ -6926,6 +7252,46 @@ trackedFiles: id: 5dab5ea12f2b last_write_checksum: sha1:dae94b074a43988aaff25ae114e9c8f68a29d495 pristine_git_object: 505fba968ce250a879f5c9c9b5895dcc87a94f7a + src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetseventssearch.go: + id: dd503042e330 + last_write_checksum: sha1:74258f4f3dc532efb219792f915ce63c3c97e2d6 + pristine_git_object: b20ea6ed95702031415514fe4e3de250054735fa + src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetsget.go: + id: aed476f89b5e + last_write_checksum: sha1:1ce9fe608631c493b587852d82672eee2993d050 + pristine_git_object: d4c99aa90106f0abd2c1d910f9128e668941cd34 + src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetsinputvalueslist.go: + id: ff41e38b05e8 + last_write_checksum: sha1:f9de454ec6c3d77489d1d507b9e2b26ecc7d1e9c + pristine_git_object: 011a8a3f51c828182017ca247a711ba385cd0718 + src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetslist.go: + id: eeb558367466 + last_write_checksum: sha1:c204d851da2c8da9ccd2f8dde14c8d46e54156ec + pristine_git_object: a17b640b689d125a93a5715da5b33bd2d4ade871 + src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerscreate.go: + id: 1e8ca316af8f + last_write_checksum: sha1:8a3a4503cf6b7906bebc7687d7b51278eb46a98e + pristine_git_object: 204c957c2ca9714f861d1eb33ca3ad26571826c5 + src/__tests__/mockserver/internal/sdk/models/operations/platformtriggersdelete.go: + id: e2a95e92b8ed + last_write_checksum: sha1:e6da93c308a9ed7d338afa165349e450d06c8799 + pristine_git_object: 412f31210352e8a59be17211cce07400d2d51c6e + src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerseventssearch.go: + id: 81ec4e316aa4 + last_write_checksum: sha1:5cdfb359a59ba29d0b9fff4ee5b873160aaad405 + pristine_git_object: 17b663de3fda17deec6c9c89deb4cabc942106c2 + src/__tests__/mockserver/internal/sdk/models/operations/platformtriggersget.go: + id: 414c35e1991e + last_write_checksum: sha1:53d312c0042da873f6adf199b6a9ce4473a238fd + pristine_git_object: 67149ca8511c0e8f50e61a84329d11f4093b2ccf + src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerslist.go: + id: 6ae8b05f94b5 + last_write_checksum: sha1:50867637b258e3424477f7e691632584b9df6515 + pristine_git_object: 9f9d6fae5616347764723b1a8c75b443774f1e7a + src/__tests__/mockserver/internal/sdk/models/operations/platformtriggersupdate.go: + id: 432685f12fbc + last_write_checksum: sha1:d759b15f167e83556b611955025ea44d63d8d555 + pristine_git_object: 5e75f9d022d0bc527e4bb4aa4bef9bc718f5886c src/__tests__/mockserver/internal/sdk/models/operations/postapiindexv1adddatasource.go: id: 4e5c790cee10 last_write_checksum: sha1:883a8812b033023bad4b6b01e7717970bbd2c3ba @@ -7288,8 +7654,8 @@ trackedFiles: pristine_git_object: b5a61d7417c6131b4dddc24bb19fcdd0f73f07d3 src/__tests__/summarize.test.ts: id: 3105d6ebc7eb - last_write_checksum: sha1:fa4dfb1046b992363984b7c95dfe6a9c0f74fe2d - pristine_git_object: 31b3a9b32f8bfccb2ab5c8556f9fbed21fb4b1c4 + last_write_checksum: sha1:45e850617ee2e8b0214c6b10c9c618c536b216c9 + pristine_git_object: 229bb4db2f57e73b131a607c4e9dd0804e23ea32 src/__tests__/testclient.ts: id: f142c080bff8 last_write_checksum: sha1:3a38647391f52221c009a9273eebf90793b3d430 @@ -7298,6 +7664,10 @@ trackedFiles: id: f56d59823ef8 last_write_checksum: sha1:14dfde500cd892c1cc5ecd4a2fd3551d8f123371 pristine_git_object: 15f49d26a65db6e395ddac5ad93c5e1cb2ef28b0 + src/__tests__/triggers.test.ts: + id: 9325c87699e4 + last_write_checksum: sha1:a46d4c5730100b01e5f3b58639b11317842f905b + pristine_git_object: 3b4efedc6ad9e1c4bdd08a6512a0562855a4b19e src/__tests__/troubleshooting.test.ts: id: 1f0f352d1c2f last_write_checksum: sha1:ae012c71aed121aeaf98640aca35ba5acf4d251c @@ -7664,8 +8034,8 @@ trackedFiles: pristine_git_object: 3dfa08db301f59467cfa5484c44cb77b93ff2ddf src/funcs/clientToolsGetToolServerTools.ts: id: 0cafc7bf1212 - last_write_checksum: sha1:63414e02dec6e8751d6b2c96b1dfe4803ecc5523 - pristine_git_object: fbe2237837ea88e91c33c0cece3853285e19522f + last_write_checksum: sha1:58c2ffc99f085232becee0528084abe289de6d79 + pristine_git_object: b8b1e15336c32394e86cffbb72e8a902323ae38f src/funcs/clientToolsList.ts: id: 6d9c352c5a56 last_write_checksum: sha1:fa945ca1b2d8b118e4e481b889d4afd6fc5b1189 @@ -7934,6 +8304,46 @@ trackedFiles: id: 4fe727b61c05 last_write_checksum: sha1:a2eae2592460b35910407b62dfa0c948e0d1b4b2 pristine_git_object: c12a452c3ee99c50537608a89b28dad5bea7ddb1 + src/funcs/triggersCreate.ts: + id: ea9ed652cbea + last_write_checksum: sha1:582e59d0b9468dff5468a8830e0a888b1e93d9aa + pristine_git_object: 0987b2c01599d56d5e17f68828f09cabd17a61b0 + src/funcs/triggersDelete.ts: + id: acd7beeb8caf + last_write_checksum: sha1:1840a0ec4aded97f4f35ccf898f72069cbb59708 + pristine_git_object: c9685eb6c38c5b7b93725ea35dadafbf9dace166 + src/funcs/triggersGet.ts: + id: 87dfc9261ecb + last_write_checksum: sha1:ba10eaa299f334f8d4ae7e6292637c174adf5ef9 + pristine_git_object: 1cfa132f2a914a995b005970c81b39cd0b9d4bc7 + src/funcs/triggersGetPreset.ts: + id: 251d38a4a215 + last_write_checksum: sha1:031429ea7291bbdd989fa1d025e566bf733b2b9e + pristine_git_object: 734af10cda6aad84724f9e03656d21ebf835f719 + src/funcs/triggersList.ts: + id: a7d1709912e5 + last_write_checksum: sha1:5bc629285bdd7c91e38d836f56086d3ec121366c + pristine_git_object: cf51c7813283e7f51c2e2dd40018a3011d683083 + src/funcs/triggersListPresetInputValues.ts: + id: db402b2c9e73 + last_write_checksum: sha1:e64be3329253e794bb58f39e39aead41d76a2cf2 + pristine_git_object: 238a6cf0d9e8830337b15004adf19a21b1997645 + src/funcs/triggersListPresets.ts: + id: fca784719d9f + last_write_checksum: sha1:e9b197b813dc78dc9e4a27e40abb7690ffe421f7 + pristine_git_object: 4cababbd011a27f3bbe399ca4fbdd3afe899c04c + src/funcs/triggersSearchEvents.ts: + id: 5d7e93c8a380 + last_write_checksum: sha1:493ad334aff206d6df31556aa9a0761c43a5aefe + pristine_git_object: 4777ec7485856f4d100f039dc981277961a23292 + src/funcs/triggersSearchPresetEvents.ts: + id: 1e4353c6d39b + last_write_checksum: sha1:bc4a6bb38e17285ea6091f7a0da03cdd05f42cc2 + pristine_git_object: 6da96c1e7b9f87f483035db59fadafee9b1c6eb6 + src/funcs/triggersUpdate.ts: + id: a4282abd4ef7 + last_write_checksum: sha1:5d540fff7237be9ae5b4ae2d736b154ecffdc0ad + pristine_git_object: 9c6abce4b87bb8a0e4663c2b5332b5aec6ba0fca src/hooks/hooks.ts: id: a2463fc6f69b last_write_checksum: sha1:6e42a763f6217572cc59f8799af55dd21d961be9 @@ -7956,8 +8366,8 @@ trackedFiles: pristine_git_object: 42d9739ab67c2fec0689f83777ffa5e1f875e5d5 src/lib/config.ts: id: 320761608fb3 - last_write_checksum: sha1:a28b1a6dce0da94072bb6f3d05b32dc34f97df49 - pristine_git_object: aca67314831cf1656dd79def8be0dc719c8da2ee + last_write_checksum: sha1:351120fd75b3e3e5e4ff0f3c54af19c8f724722e + pristine_git_object: 3567f54a16046ab3ee125fb2f86d7e5ab0fe5d64 src/lib/encodings.ts: id: 3bd8ead98afd last_write_checksum: sha1:a74725064d06b6994b95873c037975d2f2e63467 @@ -8006,6 +8416,14 @@ trackedFiles: id: b0057e24ed76 last_write_checksum: sha1:70b18fda795b71861339376c441d5605ad6f6594 pristine_git_object: e4f870ddddfb3745e52ab6b53c168025243e28c3 + src/models/callbacks/index.ts: + id: 23dfccfaff4e + last_write_checksum: sha1:6b23b7d316ad87e4bd4943aa9c61fb08ca4299c3 + pristine_git_object: ffe86f6a728f7a039d1854acc311088f5a5302c9 + src/models/callbacks/platformtriggerscreate.ts: + id: 14e1d9c7c1f2 + last_write_checksum: sha1:b880d2778453d8061088f284a2af6dcd33d09806 + pristine_git_object: b32e5ba6e027ad490fd0e092e04d1c6560048504 src/models/components/accessrequestpermissiondeniedresponseerror.ts: id: 22b93e030acc last_write_checksum: sha1:3e3487c3a154c253e11cdf1ac3eaf9047d6de854 @@ -8244,8 +8662,12 @@ trackedFiles: pristine_git_object: f35a45a5677b9440386b0fbfb31c2df1a495d05c src/models/components/calendarevent.ts: id: 4856eacf072c - last_write_checksum: sha1:c0c7a2ca7d8d4d2daf9550753886162cfd388bfa - pristine_git_object: 74e605a4e4d96d93924d6754fa613a309ea33030 + last_write_checksum: sha1:7e5fba5d77aa6d6d0b413bc8a6a377127668f3c4 + pristine_git_object: 8e53c03085ea65a19fb37622ef54db8bf6b6a9bb + src/models/components/calendarroombookingstatus.ts: + id: cda64adef139 + last_write_checksum: sha1:e57d225fe5fff29e68f953d3428a3bc419c7061d + pristine_git_object: bd4d074f50b5128232dd76030c67b4920a665e33 src/models/components/canonicalizingregextype.ts: id: c2c43762e32d last_write_checksum: sha1:e426f1eedc6d90ed35258f930161deaede97b93f @@ -8916,12 +9338,12 @@ trackedFiles: pristine_git_object: 3fb6f14548eb0f546d0fdfcbac4ea9af834b9687 src/models/components/feedentry.ts: id: 47faae0fec45 - last_write_checksum: sha1:e1a5a6b1756792779ed68f901b91232e5bdfb3a1 - pristine_git_object: 3ca806ebee2e92cc8d8f7b20ee78fcaa08800102 + last_write_checksum: sha1:b2f3e7c8b286c23048987e6f6d8625f5963d5706 + pristine_git_object: a453bac3045df4cb9ab64a15e125b6a526ca5820 src/models/components/feedrequest.ts: id: e18410d4ffd4 - last_write_checksum: sha1:362d6e85324f74570391eb9e8986a8b2da43c607 - pristine_git_object: a271ecf6a975e906df8e2244a851cb209eb3d049 + last_write_checksum: sha1:78dbb2b566b9af8e17401776684bb73dfdf17db2 + pristine_git_object: 187318ec69b346f44b2c61ce6e5683d11b6b97e3 src/models/components/feedrequestoptions.ts: id: 684c93eb4ff3 last_write_checksum: sha1:339180c553629e9c992c1f5819612effd7d692e7 @@ -8932,8 +9354,8 @@ trackedFiles: pristine_git_object: ec512af99670430c927b57b2fcb360c620f56cf7 src/models/components/feedresult.ts: id: 94d90ce484f6 - last_write_checksum: sha1:cc351a59236a19dd66dc508d047f67dbd24680c0 - pristine_git_object: 7733310af10f4f4c25b1511d14eb0a53faf7f32a + last_write_checksum: sha1:8faa02972f837f191c5aa77084bc40978d99b8d5 + pristine_git_object: f1ee4d4e7bfe46ddcb981b9047b138ad6c2b6fb9 src/models/components/followupaction.ts: id: 0b8a71fb6ea2 last_write_checksum: sha1:ea9d1e5a53384164dc8d63d3ff831a332a5f2fed @@ -9124,8 +9546,8 @@ trackedFiles: pristine_git_object: dcb8bad1c6e1addd393690e78a63631baa47f7be src/models/components/index.ts: id: 0aa842dce54d - last_write_checksum: sha1:f28edc3f8102f708621599c45e1ffbfa5cf896ff - pristine_git_object: c4bd55887107a746e81eed066df2fc7045418405 + last_write_checksum: sha1:fe77e6f0f1943baf86f2d79e8e0cdc373e8c5c80 + pristine_git_object: 847ea15179785a9ee960f2fea440871fff9264a1 src/models/components/indexdocumentrequest.ts: id: deb13e2cdc65 last_write_checksum: sha1:33e2093c7fcdd3c90ef45c48e7b79c4cb2aea6e5 @@ -9444,8 +9866,8 @@ trackedFiles: pristine_git_object: 59537dc66a6384e8dde15a3fdc62ee156ef16243 src/models/components/platformchatcitationannotation.ts: id: 3a01c4a809ce - last_write_checksum: sha1:bcdf88aacdb5ec3177a22ba86390df295cca7e07 - pristine_git_object: b8211fba2a1fb20aa80369d1335c32bbee567817 + last_write_checksum: sha1:5ff0a65ae65e1f6514e603dd78cae2bc19668d31 + pristine_git_object: a9f2614a6792aa20093d97b8ced7edfae941c74a src/models/components/platformchatcitationsnippet.ts: id: 128244b7a174 last_write_checksum: sha1:ac66f237a48f159bb95d8045b084262cd222d88a @@ -9456,40 +9878,44 @@ trackedFiles: pristine_git_object: 7678a772da01b99c6543d0744c06286a72d088b7 src/models/components/platformchatcompletedresponse.ts: id: dd026ef73bb1 - last_write_checksum: sha1:16810d2f5bbc43f31e42fdc2e1134b7db31e1a64 - pristine_git_object: 5dd8d12762b2398f3b43e91ae5803504587e32ea + last_write_checksum: sha1:d8c7130a8b7bbdba9aad931e34c052476fae33ad + pristine_git_object: 4bed5c1c3562defef129bce0fa07227744354b5d src/models/components/platformchatcreaterequest.ts: id: a0537d504f7f - last_write_checksum: sha1:0bef58e2ce889b1c935b7117893771a0575c66b8 - pristine_git_object: fbf81ebd47cf69269c0d216b2e822c1b65dcbb89 + last_write_checksum: sha1:74cf82e4c8afdbd650b4dc205a226c6e67b57e69 + pristine_git_object: 05d89c055cd25cd2576ae02875a35a480b4dc70a src/models/components/platformchatcustomentitysource.ts: id: 30d921035e09 - last_write_checksum: sha1:e8830a460925a26503c179a59974210c100b3f99 - pristine_git_object: f06bfe9600d7bbfc1d11b20aaa5241e8391d8970 + last_write_checksum: sha1:f1384b713d4591178397a3d7aa51be7bb2680827 + pristine_git_object: ae0d393f4abec346104b0d4099f76c8cb49324d3 src/models/components/platformchatdocumentsource.ts: id: d8ca12507aee - last_write_checksum: sha1:b199a5acbd8441fa3012f55b576474d665a73ade - pristine_git_object: 747b11f9745eb77ded0226c718b0b8fe4d819fb7 + last_write_checksum: sha1:33318c0435e71f66ff9d5f8807abd704a56b9f59 + pristine_git_object: 7de88e0ab5f4d1ecaad6b5752d99e484ff97d259 src/models/components/platformchatfilesource.ts: id: 25059e755130 - last_write_checksum: sha1:d6b4fc3c3de87097da19078d4b26247d9ddb6e03 - pristine_git_object: c38b0f47184096674340d9fdbc6b728e8813ef69 + last_write_checksum: sha1:ef97353e6aecaa40e6925cab034736f328be3aa0 + pristine_git_object: 1a6e885868020366e2c35fed8ec30e12e72caedd src/models/components/platformchatinputmessage.ts: id: 3cfc29b0d268 - last_write_checksum: sha1:ba47789eb4bbfeb9dc0feff4260356055f0a7f34 - pristine_git_object: da49aa3156b037cd030ffe66e790eb5a7fe889b5 + last_write_checksum: sha1:469269643f005fe9038eb96ce7122acc34a9795e + pristine_git_object: 1705d965980a233631e8aa0cfadc750cbf2bc92f src/models/components/platformchatoutputmessage.ts: id: 99912ae2c54e - last_write_checksum: sha1:8f30a5f45d3058526c60b7270ab444c69e11b442 - pristine_git_object: e41dd6cc287fe81c1d608d3d1374f91e6d6f4e7b + last_write_checksum: sha1:a318403ec231b9664f318bcbd1f9d9238f303cfc + pristine_git_object: ee68330ac7c2f750966d893ff0c78b60a2557191 src/models/components/platformchatoutputtextcontent.ts: id: aef245149405 - last_write_checksum: sha1:025d2b63a1f0b2a5929a7fd816099dd1293fd29b - pristine_git_object: bb581df8fa4b17ab5105d1ea93de48c46d0ec3de + last_write_checksum: sha1:a5dbe41374fc347e2fb7d79844128425c5c098d6 + pristine_git_object: fef0736f1c1e63f44de0703246d5c2aca6967850 src/models/components/platformchatpersonsource.ts: id: 9e78924ff10b - last_write_checksum: sha1:881a05d0af5fc4770c2b417f1cb725401887b1b6 - pristine_git_object: e66acd0b65bf28058c804ae1564ad88f197d79e7 + last_write_checksum: sha1:f608b07ee19e0664c38522eec26e1a2d9bb710b4 + pristine_git_object: c511516f18e18546246bed2515cfc79a33fabeb3 + src/models/components/platformcontentschedulewebhookevent.ts: + id: 09ece847f0e0 + last_write_checksum: sha1:f5cb89eff83e5d2ce251139de76897aa70b00e79 + pristine_git_object: 2bb0ba04032320c491abf67e2a25c75c30e4905d src/models/components/platformcontenttype.ts: id: 982868bad9f7 last_write_checksum: sha1:6c16562e35fae21b7912e35a923dffeeb85b3dc6 @@ -9498,6 +9924,10 @@ trackedFiles: id: f7d5af2a32f8 last_write_checksum: sha1:bc62f57477214b82ec17667caa46aa78541498fd pristine_git_object: 407689f01781ef06badbb7353e625c0ee35d74f8 + src/models/components/platformdocumentchangewebhookevent.ts: + id: 0aee86e6607b + last_write_checksum: sha1:7e5c09c1d94fabfeb6d3ac53b054726aed45158f + pristine_git_object: 7414099e93cb322804c4231055fbd28ce6ec2775 src/models/components/platformfilter.ts: id: 606c0824e0d8 last_write_checksum: sha1:5634e3231510ea3ee9fa3fbe00e310a25e951df2 @@ -9678,6 +10108,110 @@ trackedFiles: id: fb9ab6343c3a last_write_checksum: sha1:5816eda5ae4c626e40a45ad8f94a2409bc885d49 pristine_git_object: d0a44b8ce73a42839eb9cebe4a30737ba0b7eda1 + src/models/components/platformtrigger.ts: + id: dd8355f80c8b + last_write_checksum: sha1:cd6a949dceff8881b47d4cdaeef27f872ff2923f + pristine_git_object: 174fe6ce03e4adda18fa2c89dac47d7000a12660 + src/models/components/platformtriggerauthoutput.ts: + id: df4f84046d5c + last_write_checksum: sha1:8a23adf948e5bc8c2e67581053268a96f9a45874 + pristine_git_object: 3a40d4f2e691553f5fdeed1adad2f5494f5ee6e0 + src/models/components/platformtriggercreaterequest.ts: + id: 5ee73a28eef8 + last_write_checksum: sha1:59fd9f868ebcf84a679ffe41cb2bf27ce4de5e37 + pristine_git_object: 121bea8f488748d7e86f86e088ff3d15538fabfe + src/models/components/platformtriggercreateresponse.ts: + id: 364d4d3240e3 + last_write_checksum: sha1:b6b0d77b735c9ac638913292dafdc59a9b519813 + pristine_git_object: f1f8bf0fb0cf6c30983faa94073357773dda5d0f + src/models/components/platformtriggerdelivery.ts: + id: 5ff59c50e574 + last_write_checksum: sha1:c2807528625bba3657018cf2f2197d81738e6ac7 + pristine_git_object: 0628f22b162613269ddaf5f803b12762f287b27c + src/models/components/platformtriggerdeliveryoutput.ts: + id: 039d513704e1 + last_write_checksum: sha1:7084de7a32120ef6161e2b56f5d7f3b066aaaf8f + pristine_git_object: a7e374f13fe25f617112075b4cb3194ebcdd335e + src/models/components/platformtriggerevent.ts: + id: 65504019ad77 + last_write_checksum: sha1:102f54b41ed1ede1a57d1816924e24dfb6a2aaaa + pristine_git_object: 75d54421f1ef4d9bb285967ca1e401385557460c + src/models/components/platformtriggereventreason.ts: + id: 3e21a733137e + last_write_checksum: sha1:76b6ac902bf33d27f606e25f5885dd74d1641676 + pristine_git_object: fdf7063023ac9921fb349fa35a7c2bff7e315b04 + src/models/components/platformtriggereventsearchrequest.ts: + id: 65684ccd7f59 + last_write_checksum: sha1:6340400a6dce446ef95b8700fece4ef8cc96199e + pristine_git_object: b762e500890c963a3d5c8fde875ed7dd0069cb9b + src/models/components/platformtriggereventsearchresponse.ts: + id: b64d9d75e048 + last_write_checksum: sha1:510efa3e56ad6c3c97c678d20b15a0be2d2db174 + pristine_git_object: b84bf9ad6b7c1744955e0a50e0c56236cde294d9 + src/models/components/platformtriggereventtype.ts: + id: d4161262b77b + last_write_checksum: sha1:d2e0114c5b94ccb5a7a0c36d6404bc5b2ed43043 + pristine_git_object: 769c5cedf06ce1b7b7d591dbe53c57078c9b1e7f + src/models/components/platformtriggergetresponse.ts: + id: 833e1cd130ea + last_write_checksum: sha1:9c816e77780356ab352ba22e7d4eb961ebbc2a3f + pristine_git_object: 30188c7d46f8195bff3f798df61af5ea01f9f4f5 + src/models/components/platformtriggerlistresponse.ts: + id: a86bc5bc05bc + last_write_checksum: sha1:a9f8ef28db675455d53dd5c11780f862bafcf086 + pristine_git_object: d1bf800d8bee46089c16c8b290eb91eb326f9a37 + src/models/components/platformtriggerpreset.ts: + id: f89c600b3e5e + last_write_checksum: sha1:cc509c46869ff420a3ae34605b6504473a60dba0 + pristine_git_object: d75ade557f8590ac881d28583230cc596dc170ec + src/models/components/platformtriggerpreseteventsearchrequest.ts: + id: 29798b980810 + last_write_checksum: sha1:9b59c262c18605e5bfe329bcc8fa4e52cdfab5d2 + pristine_git_object: bc326cad32bdddf5f246a72c3b4dd1b56afc1320 + src/models/components/platformtriggerpresetgetresponse.ts: + id: 944dd01b7642 + last_write_checksum: sha1:8037f81a48d978f9f16a1167c6740b761557bca2 + pristine_git_object: da5acd512630d4dc1737658d363cb78e9d99692b + src/models/components/platformtriggerpresetinput.ts: + id: 2c279b6efb4d + last_write_checksum: sha1:5ab7498164213de8e73f32f0a598a5608ae3dab1 + pristine_git_object: 32f03e5a00414dea79bcdf9cb290f8fc718dd29c + src/models/components/platformtriggerpresetinputtype.ts: + id: 11af54e249ad + last_write_checksum: sha1:70d225eaa60b1d4e33f0ee9fd7bce0a1dc79c9af + pristine_git_object: baf9ed4a7069f1d382b47252ad9e4226f592553e + src/models/components/platformtriggerpresetinputvalue.ts: + id: 270a25c9c60e + last_write_checksum: sha1:853e66bf99430744336ac03f668d7b827e5a528c + pristine_git_object: 5dfb13719d2fe7c8934439114601ff867e98b3e2 + src/models/components/platformtriggerpresetinputvaluelistresponse.ts: + id: 9aabb071698b + last_write_checksum: sha1:e273a143fec0a5b1d1c33763c8427a04df939947 + pristine_git_object: 5b817c099d4a9928469a5bde109e5fe5c60ff3d5 + src/models/components/platformtriggerpresetlistresponse.ts: + id: 23286666d186 + last_write_checksum: sha1:418858926f6ec107305a101a127782cf947187c3 + pristine_git_object: 552c936b7d614f6c7377aecedf461df81b5b4e8a + src/models/components/platformtriggerpresetsummary.ts: + id: ca7665edf3ac + last_write_checksum: sha1:b9a2155d172505115cf591d5ca9dc215df572182 + pristine_git_object: eb347b9cd4860a2c486f1660d0a02453423a11c2 + src/models/components/platformtriggerstatus.ts: + id: a841ee0d06d7 + last_write_checksum: sha1:2c410caee037677405d3ccfc24167625188a8877 + pristine_git_object: 4c55f88d5a5ab56edfd483af3c52728fc8e3c111 + src/models/components/platformtriggerupdaterequest.ts: + id: 4e3008c8e562 + last_write_checksum: sha1:dd7517a13b6ad70cd238cc311967a1331d2541f7 + pristine_git_object: 322a65d4c008494bc7eb0ac50c6f72b8c38de9c5 + src/models/components/platformtriggerwebhookevent.ts: + id: 2824d82a6b5e + last_write_checksum: sha1:b416bf2104c24a88d3ab078926a59ca83b701209 + pristine_git_object: b85619326524f8b338b53b9a3dd6546c1b84e053 + src/models/components/platformtriggerwithsecret.ts: + id: 740e30c53656 + last_write_checksum: sha1:c3ae43c4901f3560808fb56c7fd804f52ad085b9 + pristine_git_object: 993934b5583c24091e644fc999e724e783fc62cf src/models/components/platformwarning.ts: id: 172530a57f1e last_write_checksum: sha1:a5663eeadbd79401370bb2d2c7a79e464169c63b @@ -10508,8 +11042,8 @@ trackedFiles: pristine_git_object: 1c27ef9389cbaa8c4f5746b46d0684aac766b4d6 src/models/operations/index.ts: id: 0d9ffaf774d2 - last_write_checksum: sha1:948e0648029c85c657fd6c5121d401b183fe6fbe - pristine_git_object: 7da932b6423f59947cbdc958d338428bea968b38 + last_write_checksum: sha1:3f5836becf830135b51502ba917ac74643a0df8b + pristine_git_object: bd423ce0280d392054dbd7e6e177deaf70b8ed1e src/models/operations/insights.ts: id: 7bef0edaab32 last_write_checksum: sha1:37db16bc7603defd715210dfd8c12de88bde8b72 @@ -10622,6 +11156,42 @@ trackedFiles: id: ece660fa7848 last_write_checksum: sha1:1d3cf79cdc8bd6023cd52353661c726bbc379d93 pristine_git_object: 92786fd5572338b397fe773f2d8840daa2fe1bbf + src/models/operations/platformtriggerpresetseventssearch.ts: + id: 815ee5e068db + last_write_checksum: sha1:193205015cd626aa05b578bbbb9f09f7fa1dbe27 + pristine_git_object: 4c3e8abacffd1dc62998fc0b727cebabba648456 + src/models/operations/platformtriggerpresetsget.ts: + id: fa69fa99c2eb + last_write_checksum: sha1:dc954b0ed9569fff103ea00f28d50aec183f9d3f + pristine_git_object: c5fbcfab8a8f886bedc21af71e47ad2934ee458f + src/models/operations/platformtriggerpresetsinputvalueslist.ts: + id: 37596aaba8e9 + last_write_checksum: sha1:1206dfad2211a5ace830b0dd0e8145ea9f268558 + pristine_git_object: 173bd4ad3da55d095c7d4cd8139b290a8d2ea582 + src/models/operations/platformtriggerpresetslist.ts: + id: 9c9a79861d1a + last_write_checksum: sha1:60ef94563fdc146aa5d351367d44f92e271ed35d + pristine_git_object: b4f8ecf91135f3b5a285c79efa5b6d7c424c2bb4 + src/models/operations/platformtriggersdelete.ts: + id: 5689f4ee466e + last_write_checksum: sha1:d9bc1d2a66070249731e2a8eb26c92c44bb274d0 + pristine_git_object: 164f79ed915b17fc7c96f55c867d5d1d2e886495 + src/models/operations/platformtriggerseventssearch.ts: + id: 25e9deb273d0 + last_write_checksum: sha1:88ecc3eaa3eaf1c96a13f840f6aa35493e93890d + pristine_git_object: 404d203002f183db59aaacadb2e2a5bb931d92e8 + src/models/operations/platformtriggersget.ts: + id: 24d3dcb9434c + last_write_checksum: sha1:0a5fc9c25a79f04e77814d341fe84b5ee126cd9f + pristine_git_object: a2be17a6d9eef399e38cdd2a785c430124dbefc8 + src/models/operations/platformtriggerslist.ts: + id: 3fc3b19e68e9 + last_write_checksum: sha1:3c92919a9bef170641c64305970ad10d13ef14aa + pristine_git_object: a103fe0fd7cd065cc1aabc7d3cf57a4baaed49d2 + src/models/operations/platformtriggersupdate.ts: + id: fa9a15df40e7 + last_write_checksum: sha1:58fff7bf1daa399eacb98cbe21f5fd23c7cee536 + pristine_git_object: 9e573a866ec1e0667dd5d785b773116be1436d86 src/models/operations/postapiindexv1debugdatasourcedocument.ts: id: 03753664a7e3 last_write_checksum: sha1:1fc8451990ad08329b62b2915f227f575e7e4b0b @@ -11128,8 +11698,8 @@ trackedFiles: pristine_git_object: 92389e58e4f328f45c10f8392ef9153534388b2b src/react-query/clientToolsGetToolServerTools.ts: id: 59c54074fd52 - last_write_checksum: sha1:9c5b7885dcc726415f40fe82b3adf6817d46f641 - pristine_git_object: 11ba5bb3b6878ff4d703866a809871c2cea6aa1d + last_write_checksum: sha1:ef50f55ab8300a415feb27483f690cb97ddc9334 + pristine_git_object: 773690b4a0c54a061c1ef65e6ebca378b1cb2489 src/react-query/clientToolsList.core.ts: id: 7370fc27f545 last_write_checksum: sha1:52921614fcb461fa356c5f9b2875f6943ff704c5 @@ -11172,8 +11742,8 @@ trackedFiles: pristine_git_object: 7ea1d5c56f074fe08998790eed62e014c840891b src/react-query/index.ts: id: 9e975471aa65 - last_write_checksum: sha1:6693725f8260ff108c7c754923ddacff12473095 - pristine_git_object: b1d453d13ebccbdbf779b7554302942f429f92d7 + last_write_checksum: sha1:a86929987b1960deede6bcbf662630fa56749c61 + pristine_git_object: 10c1084763fa8ea46ce342af03e9905e144e88b6 src/react-query/indexingAuthenticationRotateToken.ts: id: e56c0845e38e last_write_checksum: sha1:035d7baae9a7fd7c32f69211cfe85b0f6ccbbf8c @@ -11446,6 +12016,66 @@ trackedFiles: id: 03ea65130133 last_write_checksum: sha1:701439a52242439ae477cc1578a090c621af85b5 pristine_git_object: ce78f372ad8137b2febf85f9261a8086fe68f152 + src/react-query/triggersCreate.ts: + id: cbefb416f1d3 + last_write_checksum: sha1:9e45df798afb2fc78832fabe82b7be18524a92fc + pristine_git_object: bd1461bd885184d699b0faf1298422bac7bdf8e5 + src/react-query/triggersDelete.ts: + id: 2201eee86f69 + last_write_checksum: sha1:825390b72410536a94b1d7c9a29d9fe6b895a2d9 + pristine_git_object: 57211af4d57a4cd9d8195c9d007aa32500cb1aab + src/react-query/triggersGet.core.ts: + id: 86bc9840e105 + last_write_checksum: sha1:cf043d3ee06876c30db9c83e6c40bd0ebffb99b8 + pristine_git_object: 05cb7dd155a4396edd7a787226e226acea49c3e3 + src/react-query/triggersGet.ts: + id: 4257b148bb52 + last_write_checksum: sha1:efbf396e36c586f1350ab7061d98b94f74cd51d8 + pristine_git_object: d422e38ab4e18de94b209180aa558599e72d5848 + src/react-query/triggersGetPreset.core.ts: + id: 572eb7a2ed9f + last_write_checksum: sha1:653f595a264e3f2dba26588b24fd10d68786aeab + pristine_git_object: 2127a42d46348b7470216153eee838912dfb42f7 + src/react-query/triggersGetPreset.ts: + id: 653b5e2d4654 + last_write_checksum: sha1:9cb213c86ba8cb428f5d1769bacd78cb93e44831 + pristine_git_object: 0981df485b23c458caa433f5b3d75031ff6de99b + src/react-query/triggersList.core.ts: + id: da1c1b81b3bc + last_write_checksum: sha1:dea17a9f4990d55c00cf0e52d041c9132f5d3095 + pristine_git_object: cd01e9898af5c1c8a5d9ac9ed4977a7955e4463f + src/react-query/triggersList.ts: + id: 2950a0bc7d2a + last_write_checksum: sha1:769a174d9e110bc73e5128b532715b957efc14e8 + pristine_git_object: 8acd7c280f07765fff27064ce5c2fc8b12e4627e + src/react-query/triggersListPresetInputValues.core.ts: + id: 4e43b3f3f0c4 + last_write_checksum: sha1:bc751328b8f69c5d940ea400b2ad61e45416f5b2 + pristine_git_object: 4a75f97a908f3239f4ca10342b9a39c471b38377 + src/react-query/triggersListPresetInputValues.ts: + id: 6bed055cbc6b + last_write_checksum: sha1:89b5deacd8db71310883801aed5fe5a408474df1 + pristine_git_object: afdb15f9ac782ba5b5536eea97f37579c20f9018 + src/react-query/triggersListPresets.core.ts: + id: 1ad6d934d3bf + last_write_checksum: sha1:78998bb38a6a620e5c66f9734c91584652a38857 + pristine_git_object: a4de4de95c739bc3803eda67d146f5d1a395e3fd + src/react-query/triggersListPresets.ts: + id: f24df3df79fc + last_write_checksum: sha1:69f8efc196162bc08ec7fe351d6b6477765bcd89 + pristine_git_object: 6115f2df8ec848a3481ca4fa38ecbadbfc2951c1 + src/react-query/triggersSearchEvents.ts: + id: 1cb1234ae7c0 + last_write_checksum: sha1:2b17116807895782105b114d7c00f6db2b5a4c21 + pristine_git_object: 28acd061aaf440dd29714fee9ff0981e8fb904b8 + src/react-query/triggersSearchPresetEvents.ts: + id: 3e65cc6cab3c + last_write_checksum: sha1:e6196d2a419871327fb3ceae27a31c627fa19088 + pristine_git_object: 48b248fdd71e34b2f91158eca133f140d142ec17 + src/react-query/triggersUpdate.ts: + id: 42511c6970b3 + last_write_checksum: sha1:4b9ef0a398717f0971bbc1ec8762ea6117c59c4a + pristine_git_object: f626631ca15170ab14f13425a0086f91623a4ae8 src/sdk/activity.ts: id: 87dddbbca815 last_write_checksum: sha1:1b66eb529dcde53e002e35ac6fd6e6e7e56be73e @@ -11584,20 +12214,24 @@ trackedFiles: pristine_git_object: b13d325fd129a1e93b8f78617fc401a58f14364c src/sdk/sdk.ts: id: 784571af2f69 - last_write_checksum: sha1:8fc4128ec00ed3483d631f2a702b2fddc0e9545f - pristine_git_object: d5dac7a4fe37cedb2a3320b39db31a693fe8eb02 + last_write_checksum: sha1:1b5b452f3e0926aa46b6787b124858111622f261 + pristine_git_object: 9eef2f588877d8d9a6027584f34e09a19bd00823 src/sdk/search.ts: id: b88871d87236 last_write_checksum: sha1:f9a6896781f5884e76434b7d93c7db7758edfb1f pristine_git_object: a4ecf2ede22740e3ccd9b84253b0e065d934c916 src/sdk/skills.ts: id: 847667a72f83 - last_write_checksum: sha1:59c51e7e653207a3377940fc7b3b925381831595 - pristine_git_object: f6c835465ccc4e3af93185336aaccfad52ecff59 + last_write_checksum: sha1:3434ad19db266a076c9a63e24cc6d47c1c28d640 + pristine_git_object: fbf9360e159b3074695b85b443ddfee2d4c4fa63 src/sdk/tools.ts: id: f997ccdd9dd9 - last_write_checksum: sha1:6946d59c6ed6e6796ccad26cbe49fcde7ce5e8e2 - pristine_git_object: 8129bb1f350280b56270663737060f19048d0dce + last_write_checksum: sha1:009507b1db7f689bb70c99edfd79183f2bc6f9da + pristine_git_object: 806e62fd48e5f205be412051e12cab724271a6d2 + src/sdk/triggers.ts: + id: 2b0bc3f627a3 + last_write_checksum: sha1:10a39525fccc4064435e2ff22a48d1c4764040d7 + pristine_git_object: 61dda95baa52f3cc3ab756d3948cde9ad33a7ad4 src/sdk/verification.ts: id: 414a84063545 last_write_checksum: sha1:6b40cb828921b4db77d058738f5040885e6acf15 @@ -12799,7 +13433,7 @@ examples: application/json: {"input": "", "stream": false, "store": true} responses: "200": - application/json: {"id": "", "object": "response", "created_at": "2026-05-19T05:32:52.505Z", "status": "completed", "output": [{"type": "message", "role": "assistant", "content": [{"type": "output_text", "text": ""}]}], "store": false, "request_id": ""} + application/json: {"id": "", "object": "RESPONSE", "created_at": "2026-05-19T05:32:52.505Z", "status": "COMPLETED", "output": [{"type": "MESSAGE", "role": "ASSISTANT", "content": [{"type": "OUTPUT_TEXT", "text": ""}]}], "store": false, "request_id": ""} text/event-stream: "" "400": application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} @@ -12895,6 +13529,129 @@ examples: responses: "200": application/json: {"tools": [{"serverId": "", "name": ""}]} + platform-triggers-create: + speakeasy-default-platform-triggers-create: + requestBody: + application/json: {"preset_id": "GITHUB_1", "description": "Reviews I am tagged on, sent to my team's review channel", "inputs": {"repository": "acme/payments-api"}, "delivery": {"webhook_url": "https://customer.app/webhook", "auth": {"type": "BEARER", "secret": "secret_test_123"}}} + responses: + "201": + application/json: {"trigger": {"trigger_id": "trigger_test_123", "preset_id": "GITHUB_1", "description": "Reviews I am tagged on, sent to my team's review channel", "status": "ENABLED", "inputs": {"repository": "acme/payments-api"}, "delivery": {"webhook_url": "https://customer.app/webhook"}, "created_at": "2025-08-17T18:19:46.877Z", "updated_at": "2024-09-14T03:27:40.201Z", "signing_secret": "whsec_xxx"}, "request_id": ""} + "400": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + "500": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + platform-triggers-list: + speakeasy-default-platform-triggers-list: + parameters: + query: + page_size: 50 + responses: + "200": + application/json: {"results": [], "has_more": true, "next_cursor": "", "request_id": ""} + "400": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + "500": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + platform-triggers-get: + speakeasy-default-platform-triggers-get: + parameters: + path: + trigger_id: "" + responses: + "200": + application/json: {"trigger": {"trigger_id": "trigger_test_123", "preset_id": "GITHUB_1", "description": "Reviews I am tagged on, sent to my team's review channel", "status": "ENABLED", "inputs": {"repository": "acme/payments-api"}, "delivery": {"webhook_url": "https://customer.app/webhook"}, "created_at": "2024-01-06T01:37:37.232Z", "updated_at": "2025-07-02T01:19:47.126Z"}, "request_id": ""} + "400": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + "500": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + platform-triggers-update: + speakeasy-default-platform-triggers-update: + parameters: + path: + trigger_id: "" + requestBody: + application/json: {"status": "ENABLED", "description": "Reviews I am tagged on, sent to my team's review channel", "inputs": {"repository": "acme/payments-api"}, "delivery": {"webhook_url": "https://customer.app/webhook", "auth": {"type": "BEARER", "secret": "secret_test_123"}}} + responses: + "200": + application/json: {"trigger": {"trigger_id": "trigger_test_123", "preset_id": "GITHUB_1", "description": "Reviews I am tagged on, sent to my team's review channel", "status": "ENABLED", "inputs": {"repository": "acme/payments-api"}, "delivery": {"webhook_url": "https://customer.app/webhook"}, "created_at": "2026-09-03T11:57:47.699Z", "updated_at": "2026-01-25T02:15:09.513Z"}, "request_id": ""} + "400": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + "500": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + platform-triggers-delete: + speakeasy-default-platform-triggers-delete: + parameters: + path: + trigger_id: "" + responses: + "400": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + "500": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + platform-triggers-events-search: + speakeasy-default-platform-triggers-events-search: + parameters: + path: + trigger_id: "" + responses: + "200": + application/json: {"results": [{"event_type": "DOCUMENT_CHANGE", "datasource": "GITHUB", "reason": "REVIEW_REQUESTED", "doc_type": "pull", "doc_id": "", "view_url": "https://silent-omelet.biz", "title": "", "event_time": "2024-06-12T22:23:25.274Z"}], "has_more": false, "request_id": ""} + "400": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + "500": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + platform-trigger-presets-list: + speakeasy-default-platform-trigger-presets-list: + parameters: + query: + page_size: 50 + responses: + "200": + application/json: {"results": [], "has_more": false, "next_cursor": null, "request_id": ""} + "400": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + "500": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + platform-trigger-presets-get: + speakeasy-default-platform-trigger-presets-get: + parameters: + path: + preset_id: "" + responses: + "200": + application/json: {"trigger_preset": {"preset_id": "GITHUB_1", "datasource": "github", "display_name": "Review requested from me", "description": "A review is requested from the trigger creator on a pull request", "inputs": []}, "request_id": ""} + "400": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + "500": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + platform-trigger-presets-input-values-list: + speakeasy-default-platform-trigger-presets-input-values-list: + parameters: + path: + preset_id: "" + query: + field: "" + responses: + "200": + application/json: {"results": [{"value": "acme/payments-api", "display_name": "acme/payments-api"}], "is_truncated": false, "request_id": ""} + "400": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + "500": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + platform-trigger-presets-events-search: + speakeasy-default-platform-trigger-presets-events-search: + parameters: + path: + preset_id: "" + requestBody: + application/json: {"inputs": {"repository": "acme/payments-api"}, "page_size": 10} + responses: + "200": + application/json: {"results": [{"event_type": "DOCUMENT_CHANGE", "datasource": "GITHUB", "reason": "REVIEW_REQUESTED", "doc_type": "pull", "doc_id": "", "view_url": "https://prickly-cutover.info/", "title": "", "event_time": "2025-04-15T15:45:31.544Z"}], "has_more": false, "request_id": ""} + "400": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} + "500": + application/problem+json: {"type": "https://developers.glean.com/errors/invalid-cursor", "title": "Invalid Pagination Cursor", "status": 400, "detail": "The provided cursor has expired. Start a new search to get a fresh cursor.\n", "code": "invalid_cursor", "documentation_url": "https://developers.glean.com/errors/invalid-cursor", "request_id": "req_7f8a9b0c1d2e", "errors": [{"pointer": "/messages/0/role", "detail": "Must be one of: USER, GLEAN_AI.", "code": "invalid_cursor"}]} examplesVersion: 1.0.2 generatedTests: activity: "2025-05-05T15:08:35-05:00" @@ -13084,6 +13841,16 @@ generatedTests: post_/api/index/v1/debug/{datasource}/documents: "2026-08-07T21:23:48Z" post_/api/index/v1/debug/{datasource}/document/events: "2026-08-07T21:23:48Z" post_/api/index/v1/debug/{datasource}/user: "2026-08-07T21:23:48Z" + platform-triggers-create: "2026-08-20T01:03:02Z" + platform-triggers-list: "2026-08-20T01:03:02Z" + platform-triggers-get: "2026-08-20T01:03:02Z" + platform-triggers-update: "2026-08-20T01:03:02Z" + platform-triggers-events-search: "2026-08-20T01:03:02Z" + platform-trigger-presets-list: "2026-08-20T01:03:02Z" + platform-trigger-presets-get: "2026-08-20T01:03:02Z" + platform-trigger-presets-input-values-list: "2026-08-20T01:03:02Z" + platform-trigger-presets-events-search: "2026-08-20T01:03:02Z" +releaseNotes: "## Typescript SDK Changes:\n* `glean.chat.create()`: \n * `request.input.union(Array)[].role` **Changed** (Breaking ⚠️)\n * `response` **Changed** (Breaking ⚠️)\n* `glean.triggers.create()`: **Added**\n* `glean.triggers.list()`: **Added**\n* `glean.triggers.get()`: **Added**\n* `glean.triggers.update()`: **Added**\n* `glean.triggers.delete()`: **Added**\n* `glean.triggers.searchEvents()`: **Added**\n* `glean.triggers.listPresets()`: **Added**\n* `glean.triggers.getPreset()`: **Added**\n* `glean.triggers.listPresetInputValues()`: **Added**\n* `glean.triggers.searchPresetEvents()`: **Added**\n* `glean.client.search.retrieveFeed()`: \n * `request.feedRequest.categories[].enum(knowledgeGap)` **Added**\n * `response.results[]` **Changed**\n" generatedFiles: - .devcontainer/README.md - .devcontainer/devcontainer.json diff --git a/.speakeasy/gen.yaml b/.speakeasy/gen.yaml index 473a7a5e1..ac133c05a 100644 --- a/.speakeasy/gen.yaml +++ b/.speakeasy/gen.yaml @@ -35,7 +35,7 @@ generation: generateNewTests: true skipResponseBodyAssertions: true typescript: - version: 0.18.1 + version: 0.19.0 acceptHeaderEnum: true additionalDependencies: dependencies: {} diff --git a/.speakeasy/glean-merged-spec.yaml b/.speakeasy/glean-merged-spec.yaml index 1906bd1fe..a1d98a11b 100644 --- a/.speakeasy/glean-merged-spec.yaml +++ b/.speakeasy/glean-merged-spec.yaml @@ -2,8 +2,8 @@ openapi: 3.0.0 info: version: "0.9.0" title: Glean API - x-source-commit-sha: 7a82cb818d032eca9f42d56706dd9e0a65418d45 - x-open-api-commit-sha: 987c3f6458420f6a99420d808bdccea74ab84dad + x-source-commit-sha: 37b619519423b6e75b5fe088ba5fb6c9f77394f4 + x-open-api-commit-sha: d64ed08062f6f67eccab8c16e7b84f10bd4cee68 description: | # Introduction In addition to the data sources that Glean has built-in support for, Glean also provides a REST API that enables customers to put arbitrary content in the search index. This is useful, for example, for doing permissions-aware search over content in internal tools that reside on-prem as well as for searching over applications that Glean does not currently support first class. In addition these APIs allow the customer to push organization data (people info, organization structure etc) into Glean. @@ -205,7 +205,8 @@ paths: text/event-stream: schema: type: string - description: Server-sent events emitted by the running agent. + description: | + Server-sent events emitted by the running agent. Successful runs emit `message` events. A terminal failure after the stream has started emits exactly one `run.failed` event whose `data` is an `AgentRunFailedEventData` payload, then closes. example: | id: 1 event: message @@ -214,6 +215,10 @@ paths: id: 2 event: message data: {"messages":[{"role":"GLEAN_AI","content":[{"text":", I can help with HR policy questions.","type":"text"}]}]} + + id: 3 + event: run.failed + data: {"error":{"type":"https://developers.glean.com/errors/spend-limit-exceeded","title":"Spend Limit Exceeded","status":403,"detail":"You've reached the monthly limit set by your admin.","code":"spend_limit_exceeded","request_id":"req_123","documentation_url":"https://developers.glean.com/errors/spend-limit-exceeded"}} "400": $ref: "#/components/responses/PlatformBadRequest" "401": @@ -277,20 +282,24 @@ paths: Server-sent events for a streaming chat run. Event payloads are documented under ChatStream* schemas. example: | id: 1 - event: response.created - data: {"type":"response.created","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015"} + event: RESPONSE_CREATED + data: {"type":"RESPONSE_CREATED","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015"} id: 2 - event: response.output_text.delta - data: {"type":"response.output_text.delta","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","delta":"Hello"} + event: RESPONSE_PROGRESS + data: {"type":"RESPONSE_PROGRESS","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","text":"**Searching:** foo"} id: 3 - event: response.output_text.done - data: {"type":"response.output_text.done","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","text":"Hello"} + event: RESPONSE_OUTPUT_TEXT_DELTA + data: {"type":"RESPONSE_OUTPUT_TEXT_DELTA","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","delta":"Hello"} id: 4 - event: response.completed - data: {"type":"response.completed","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","response":{"id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","object":"response","status":"completed","output":[{"type":"message","role":"assistant","content":[{"type":"output_text","text":"Hello"}]}],"store":true,"request_id":"req_123","created_at":"2026-07-14T20:00:00Z"}} + event: RESPONSE_OUTPUT_TEXT_DONE + data: {"type":"RESPONSE_OUTPUT_TEXT_DONE","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","text":"Hello"} + + id: 5 + event: RESPONSE_COMPLETED + data: {"type":"RESPONSE_COMPLETED","response_id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","response":{"id":"resp_e65a0a77-97a2-4c91-be60-eae7f6238015","object":"RESPONSE","status":"COMPLETED","output":[{"type":"MESSAGE","role":"ASSISTANT","content":[{"type":"OUTPUT_TEXT","text":"Hello"}]}],"store":true,"request_id":"req_123","created_at":"2026-07-14T20:00:00Z"}} "400": $ref: "#/components/responses/PlatformBadRequest" "401": @@ -417,42 +426,42 @@ paths: x-speakeasy-name-override: list security: - APIToken: [] - /api/skills/validation: + /api/skills/import: post: tags: - Skills - summary: Validate skill bundle + summary: Import skills from GitHub description: | - Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. - operationId: platform-skills-validate + Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. + operationId: platform-skills-import x-visibility: Public x-glean-experimental: - id: 0b086fa6-30f8-4279-8d11-10ab0059c14a - introduced: "2026-06-24" + id: 9162d790-e101-437d-a9a0-25e4687d150b + introduced: "2026-07-28" + x-codegen-request-body-name: request requestBody: required: true content: - multipart/form-data: + application/json: schema: - $ref: "#/components/schemas/PlatformSkillValidationRequest" - x-codegen-request-body-name: request + $ref: "#/components/schemas/PlatformSkillImportRequest" responses: "200": - description: Successful response. + description: Skills imported successfully. content: application/json: schema: - $ref: "#/components/schemas/PlatformSkillValidationResponse" + $ref: "#/components/schemas/PlatformSkillImportResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" - "404": - $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" + "409": + $ref: "#/components/responses/PlatformConflict" "413": $ref: "#/components/responses/PlatformRequestTooLarge" "429": @@ -462,45 +471,45 @@ paths: "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: skills - x-speakeasy-name-override: validate + x-speakeasy-name-override: import security: - APIToken: [] - /api/skills/import: + /api/skills/validation: post: tags: - Skills - summary: Import skills from GitHub + summary: Validate skill bundle description: | - Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. - operationId: platform-skills-import + Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. + operationId: platform-skills-validate x-visibility: Public x-glean-experimental: - id: 9162d790-e101-437d-a9a0-25e4687d150b - introduced: "2026-07-28" - x-codegen-request-body-name: request + id: 0b086fa6-30f8-4279-8d11-10ab0059c14a + introduced: "2026-06-24" requestBody: required: true content: - application/json: + multipart/form-data: schema: - $ref: "#/components/schemas/PlatformSkillImportRequest" + $ref: "#/components/schemas/PlatformSkillValidationRequest" + x-codegen-request-body-name: request responses: "200": - description: Skills imported successfully. + description: Successful response. content: application/json: schema: - $ref: "#/components/schemas/PlatformSkillImportResponse" + $ref: "#/components/schemas/PlatformSkillValidationResponse" "400": $ref: "#/components/responses/PlatformBadRequest" "401": $ref: "#/components/responses/PlatformUnauthorized" "403": $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" "408": $ref: "#/components/responses/PlatformRequestTimeout" - "409": - $ref: "#/components/responses/PlatformConflict" "413": $ref: "#/components/responses/PlatformRequestTooLarge" "429": @@ -510,7 +519,7 @@ paths: "503": $ref: "#/components/responses/PlatformServiceUnavailable" x-speakeasy-group: skills - x-speakeasy-name-override: import + x-speakeasy-name-override: validate security: - APIToken: [] /api/skills/sources/preview: @@ -1177,453 +1186,715 @@ paths: x-speakeasy-name-override: listFilters security: - APIToken: [] - /rest/api/v1/activity: + /api/triggers: post: - operationId: activity - summary: Report document activity - description: Report user activity that occurs on indexed documents such as viewing or editing. This signal improves search quality. tags: - - Activity - security: - - APIToken: [] + - Triggers + summary: Create trigger + description: | + Create a trigger from a preset and return it with its signing secret. + operationId: platform-triggers-create + x-visibility: Public + x-glean-experimental: + id: eb175f18-74e6-4c9c-ba02-23bcc9018fc9 + introduced: "2026-07-06" + x-codegen-request-body-name: payload requestBody: + required: true content: application/json: schema: - $ref: '#/components/schemas/Activity' - required: true - x-exportParamName: Activity + $ref: "#/components/schemas/PlatformTriggerCreateRequest" + callbacks: + triggerEvent: + "{$request.body#/delivery/webhook_url}": + post: + tags: + - Triggers + summary: Receive a trigger event + description: Delivery uses at-least-once semantics, so the same event can be sent more than once. Return any 2xx status after accepting the event. Network failures, 408, 429, and 5xx responses are retried; other non-2xx responses, including redirects, are terminal. The `webhook-id` remains stable across attempts and can be used for deduplication, while `webhook-timestamp` and `webhook-signature` are generated for each attempt. + operationId: trigger-webhook-event + security: + - {} + - TriggerWebhookBearerAuth: [] + parameters: + - $ref: "#/components/parameters/TriggerWebhookId" + - $ref: "#/components/parameters/TriggerWebhookTimestamp" + - $ref: "#/components/parameters/TriggerWebhookSignature" + requestBody: + required: true + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformTriggerWebhookEvent" + responses: + "408": + description: Request timeout. Glean retries the delivery. + "429": + description: Rate limited. Glean retries the delivery. + 2XX: + description: Event accepted. Glean does not retry the delivery. + 3XX: + description: Redirects are not followed and the delivery is not retried. + 4XX: + description: Client error other than 408 or 429. Glean does not retry. + 5XX: + description: Server error. Glean retries the delivery. responses: - "200": - description: OK + "201": + description: Trigger created. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformTriggerCreateResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "409": + $ref: "#/components/responses/PlatformConflict" + "413": + $ref: "#/components/responses/PlatformRequestTooLarge" "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: report - x-speakeasy-group: client.activity - /rest/api/v1/feedback: - post: - operationId: feedback - summary: Report client activity - description: Report events that happen to results within a Glean client UI, such as search result views and clicks. This signal improves search quality. - tags: - - Activity + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: triggers + x-speakeasy-name-override: create security: - APIToken: [] + get: + tags: + - Triggers + summary: List triggers + description: | + List triggers owned by the authenticated caller. + operationId: platform-triggers-list + x-visibility: Public + x-glean-experimental: + id: e3554987-e043-4561-889a-a1117b1bce06 + introduced: "2026-07-06" parameters: - - name: feedback - in: query - description: A URL encoded versions of Feedback. This is useful for requests. + - in: query + name: page_size + description: Maximum number of triggers to return. + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 50 + - in: query + name: cursor + description: Opaque pagination cursor from a previous response. required: false schema: type: string - requestBody: - content: - application/json: - schema: - $ref: '#/components/schemas/Feedback' - x-exportParamName: Feedback + minLength: 1 responses: "200": - description: OK + description: Successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformTriggerListResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-group: client.activity - /rest/api/v1/createannouncement: - post: - operationId: createannouncement - summary: Create Announcement - description: Create a textual announcement visible to some set of users based on department and location. - tags: - - Announcements + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: triggers + x-speakeasy-name-override: list security: - APIToken: [] + /api/triggers/{trigger_id}: + get: + tags: + - Triggers + summary: Get trigger + description: | + Retrieve a trigger owned by the authenticated caller. + operationId: platform-triggers-get + x-visibility: Public + x-glean-experimental: + id: 46de62cb-ba31-4f71-9646-649c1d604816 + introduced: "2026-07-06" parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Announcement content - content: - application/json: - schema: - $ref: '#/components/schemas/CreateAnnouncementRequest' - required: true - x-exportParamName: Request + - in: path + name: trigger_id + description: ID of the trigger to retrieve. + required: true + schema: + type: string + minLength: 1 responses: "200": - description: OK + description: Successful response. content: application/json: schema: - $ref: '#/components/schemas/Announcement' + $ref: "#/components/schemas/PlatformTriggerGetResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: create - x-speakeasy-group: client.announcements - /rest/api/v1/deleteannouncement: - post: - operationId: deleteannouncement - summary: Delete Announcement - description: Delete an existing user-generated announcement. - tags: - - Announcements + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: triggers + x-speakeasy-name-override: get security: - APIToken: [] + patch: + tags: + - Triggers + summary: Update trigger + description: | + Update a trigger. + operationId: platform-triggers-update + x-visibility: Public + x-glean-experimental: + id: 3eb4c709-bd5c-4019-b913-0db36c766350 + introduced: "2026-07-06" + x-codegen-request-body-name: payload parameters: - - $ref: '#/components/parameters/locale' + - in: path + name: trigger_id + description: ID of the trigger to update. + required: true + schema: + type: string + minLength: 1 requestBody: - description: Delete announcement request + required: true content: application/json: schema: - $ref: '#/components/schemas/DeleteAnnouncementRequest' - required: true - x-exportParamName: Request + $ref: "#/components/schemas/PlatformTriggerUpdateRequest" responses: "200": - description: OK + description: Trigger updated. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformTriggerGetResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "413": + $ref: "#/components/responses/PlatformRequestTooLarge" "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: delete - x-speakeasy-group: client.announcements - /rest/api/v1/updateannouncement: - post: - operationId: updateannouncement - summary: Update Announcement - description: Update a textual announcement visible to some set of users based on department and location. - tags: - - Announcements + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: triggers + x-speakeasy-name-override: update security: - APIToken: [] + delete: + tags: + - Triggers + summary: Delete trigger + description: | + Delete a trigger. + operationId: platform-triggers-delete + x-visibility: Public + x-glean-experimental: + id: e6564ed7-8b4b-4708-918b-eed97110859f + introduced: "2026-07-06" parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: Announcement content. Id need to be specified for the announcement. - content: - application/json: - schema: - $ref: '#/components/schemas/UpdateAnnouncementRequest' - required: true - x-exportParamName: Request + - in: path + name: trigger_id + description: ID of the trigger to delete. + required: true + schema: + type: string + minLength: 1 responses: - "200": - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/Announcement' + "204": + description: Trigger deleted. No content. "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: update - x-speakeasy-group: client.announcements - /rest/api/v1/createanswer: - post: - operationId: createanswer - summary: Create Answer - description: Create a user-generated Answer that contains a question and answer. - tags: - - Answers + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: triggers + x-speakeasy-name-override: delete security: - APIToken: [] + /api/triggers/{trigger_id}/events/search: + post: + tags: + - Triggers + summary: Search events for a trigger + description: | + Search recent content events an existing trigger matches. Read-only — no webhook delivery is made. Covers the last seven days. + operationId: platform-triggers-events-search + x-visibility: Public + x-glean-experimental: + id: c734a377-3dec-4ee2-9ec5-3848a8384f03 + introduced: "2026-08-07" parameters: - - $ref: '#/components/parameters/locale' + - in: path + name: trigger_id + description: ID of the trigger whose events to search. + required: true + schema: + type: string + minLength: 1 requestBody: - description: CreateAnswer request + required: false content: application/json: schema: - $ref: '#/components/schemas/CreateAnswerRequest' - required: true - x-exportParamName: Request + $ref: "#/components/schemas/PlatformTriggerEventSearchRequest" responses: "200": - description: OK + description: Successful response. content: application/json: schema: - $ref: '#/components/schemas/Answer' + $ref: "#/components/schemas/PlatformTriggerEventSearchResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "413": + $ref: "#/components/responses/PlatformRequestTooLarge" "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: create - x-speakeasy-group: client.answers - /rest/api/v1/deleteanswer: - post: - operationId: deleteanswer - summary: Delete Answer - description: Delete an existing user-generated Answer. - tags: - - Answers + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: triggers + x-speakeasy-name-override: searchEvents security: - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: DeleteAnswer request - content: - application/json: - schema: - $ref: '#/components/schemas/DeleteAnswerRequest' - required: true - x-exportParamName: Request - responses: - "200": - description: OK - "400": - description: Invalid request - "401": - description: Not Authorized - "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: delete - x-speakeasy-group: client.answers - /rest/api/v1/editanswer: - post: - operationId: editanswer - summary: Update Answer - description: Update an existing user-generated Answer. + /api/trigger-presets: + get: tags: - - Answers - security: - - APIToken: [] + - Triggers + summary: List trigger presets + description: | + List the trigger presets available to the caller. A preset is a curated content-trigger template (e.g. a new Jira ticket) which is passed when creating a trigger. + operationId: platform-trigger-presets-list + x-visibility: Public + x-glean-experimental: + id: f5b16196-0d4c-42f0-89bf-40313398728e + introduced: "2026-07-22" parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: EditAnswer request - content: - application/json: - schema: - $ref: '#/components/schemas/EditAnswerRequest' - required: true - x-exportParamName: Request + - in: query + name: datasource + description: Restrict results to presets for a single datasource (e.g. github). + required: false + schema: + type: string + minLength: 1 + - in: query + name: page_size + description: Maximum number of presets to return. + required: false + schema: + type: integer + minimum: 1 + maximum: 100 + default: 50 + - in: query + name: cursor + description: Opaque pagination cursor from a previous response. + required: false + schema: + type: string + minLength: 1 responses: "200": - description: OK + description: Successful response. content: application/json: schema: - $ref: '#/components/schemas/Answer' + $ref: "#/components/schemas/PlatformTriggerPresetListResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: update - x-speakeasy-group: client.answers - /rest/api/v1/getanswer: - post: - operationId: getanswer - summary: Read Answer - description: Read the details of a particular Answer given its ID. - tags: - - Answers + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: triggers + x-speakeasy-name-override: listPresets security: - APIToken: [] + /api/trigger-presets/{preset_id}: + get: + tags: + - Triggers + summary: Get trigger preset + description: | + Retrieve a single trigger preset by id. + operationId: platform-trigger-presets-get + x-visibility: Public + x-glean-experimental: + id: 5277167d-909b-4eee-95d1-8958b07016bb + introduced: "2026-07-22" parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: GetAnswer request - content: - application/json: - schema: - $ref: '#/components/schemas/GetAnswerRequest' - required: true - x-exportParamName: Request + - in: path + name: preset_id + description: ID of the preset to retrieve. + required: true + schema: + type: string + minLength: 1 responses: "200": - description: OK + description: Successful response. content: application/json: schema: - $ref: '#/components/schemas/GetAnswerResponse' + $ref: "#/components/schemas/PlatformTriggerPresetGetResponse" "400": - description: Invalid request + $ref: "#/components/responses/PlatformBadRequest" "401": - description: Not Authorized + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" "429": - description: Too Many Requests - x-visibility: Public - x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.answers - /rest/api/v1/listanswers: - post: - operationId: listanswers - summary: List Answers - description: List Answers created by the current user. - tags: - - Answers + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: triggers + x-speakeasy-name-override: getPreset security: - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - requestBody: - description: ListAnswers request + /api/trigger-presets/{preset_id}/input-values: + get: + tags: + - Triggers + summary: Search trigger preset input values + description: | + Return up to 300 selectable values for a single picklist input on a preset. Results are intended for typeahead selection and are not cursor-paginated. When `is_truncated` is true, refine `query` to narrow the result set. + operationId: platform-trigger-presets-input-values-list + x-visibility: Public + x-glean-experimental: + id: 24c5675d-a57a-48cb-9d71-3dece296f28c + introduced: "2026-08-06" + parameters: + - in: path + name: preset_id + description: ID of the preset the input belongs to. + required: true + schema: + type: string + minLength: 1 + - in: query + name: field + description: Field identifier of the input whose values to list. + required: true + schema: + type: string + minLength: 1 + - in: query + name: query + description: | + Prefix filter over the input's option values, for typeahead. Matching is on the option value, not its display name. + required: false + schema: + type: string + responses: + "200": + description: Successful response. + content: + application/json: + schema: + $ref: "#/components/schemas/PlatformTriggerPresetInputValueListResponse" + "400": + $ref: "#/components/responses/PlatformBadRequest" + "401": + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "429": + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: triggers + x-speakeasy-name-override: listPresetInputValues + security: + - APIToken: [] + /api/trigger-presets/{preset_id}/events/search: + post: + tags: + - Triggers + summary: Search events for a trigger preset + description: | + Search recent content events an unsaved trigger built from this preset would match, to preview it before creating the trigger. Read-only — no trigger is created and no webhook delivery is made. Covers the last seven days. + operationId: platform-trigger-presets-events-search + x-visibility: Public + x-glean-experimental: + id: a48efd80-78d6-46de-9f23-5b8c63ecd157 + introduced: "2026-08-12" + parameters: + - in: path + name: preset_id + description: ID of the preset to preview. + required: true + schema: + type: string + minLength: 1 + requestBody: + required: false content: application/json: schema: - $ref: '#/components/schemas/ListAnswersRequest' - required: true - x-exportParamName: Request + $ref: "#/components/schemas/PlatformTriggerPresetEventSearchRequest" responses: "200": - description: OK + description: Successful response. content: application/json: schema: - $ref: '#/components/schemas/ListAnswersResponse' + $ref: "#/components/schemas/PlatformTriggerEventSearchResponse" + "400": + $ref: "#/components/responses/PlatformBadRequest" + "401": + $ref: "#/components/responses/PlatformUnauthorized" + "403": + $ref: "#/components/responses/PlatformForbidden" + "404": + $ref: "#/components/responses/PlatformNotFound" + "408": + $ref: "#/components/responses/PlatformRequestTimeout" + "413": + $ref: "#/components/responses/PlatformRequestTooLarge" + "429": + $ref: "#/components/responses/PlatformTooManyRequests" + "500": + $ref: "#/components/responses/PlatformInternalServerError" + "503": + $ref: "#/components/responses/PlatformServiceUnavailable" + x-speakeasy-group: triggers + x-speakeasy-name-override: searchPresetEvents + security: + - APIToken: [] + /rest/api/v1/activity: + post: + operationId: activity + summary: Report document activity + description: Report user activity that occurs on indexed documents such as viewing or editing. This signal improves search quality. + tags: + - Activity + security: + - APIToken: [] + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Activity' + required: true + x-exportParamName: Activity + responses: + "200": + description: OK "400": description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests - deprecated: true x-visibility: Public x-codegen-request-body-name: payload - x-glean-deprecated: - id: 4c0923bd-64c7-45b9-99a5-b36f2705e618 - introduced: "2026-01-21" - message: Answer boards have been removed and this endpoint no longer serves a purpose - removal: "2026-10-15" - x-speakeasy-deprecation-message: "Deprecated on 2026-01-21, removal scheduled for 2026-10-15: Answer boards have been removed and this endpoint no longer serves a purpose" - x-speakeasy-name-override: list - x-speakeasy-group: client.answers - /rest/api/v1/checkdatasourceauth: + x-speakeasy-name-override: report + x-speakeasy-group: client.activity + /rest/api/v1/feedback: post: - operationId: checkdatasourceauth - summary: Check datasource authorization - description: | - Returns all datasource instances that require per-user OAuth authorization - for the authenticated user, along with a transient auth token that can be - appended to auth URLs to complete OAuth flows. - - Clients construct the full OAuth URL by combining the backend base URL, - the `authUrlRelativePath` from each instance, and the transient auth token: - `/?transient_auth_token=`. + operationId: feedback + summary: Report client activity + description: Report events that happen to results within a Glean client UI, such as search result views and clicks. This signal improves search quality. tags: - - Authentication + - Activity security: - APIToken: [] - parameters: [] + parameters: + - name: feedback + in: query + description: A URL encoded versions of Feedback. This is useful for requests. + required: false + schema: + type: string + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/Feedback' + x-exportParamName: Feedback responses: "200": description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/CheckDatasourceAuthResponse' + "400": + description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests x-visibility: Public - x-speakeasy-name-override: checkDatasourceAuth - x-speakeasy-group: client.authentication - /rest/api/v1/createauthtoken: + x-codegen-request-body-name: payload + x-speakeasy-group: client.activity + /rest/api/v1/createannouncement: post: - operationId: createauthtoken - summary: Create authentication token - description: | - Creates an authentication token for the authenticated user. These are - specifically intended to be used with the [Web SDK](https://developers.glean.com/web). - - Note: The tokens generated from this endpoint are **not** valid tokens - for use with the Client API (e.g. `/rest/api/v1/*`). + operationId: createannouncement + summary: Create Announcement + description: Create a textual announcement visible to some set of users based on department and location. tags: - - Authentication + - Announcements security: - APIToken: [] - parameters: [] + parameters: + - $ref: '#/components/parameters/locale' + requestBody: + description: Announcement content + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAnnouncementRequest' + required: true + x-exportParamName: Request responses: "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/CreateAuthTokenResponse' + $ref: '#/components/schemas/Announcement' "400": - description: Invalid Request + description: Invalid request "401": description: Not Authorized "429": description: Too Many Requests x-visibility: Public - x-speakeasy-name-override: createToken - x-speakeasy-group: client.authentication - /rest/api/v1/chat: + x-codegen-request-body-name: payload + x-speakeasy-name-override: create + x-speakeasy-group: client.announcements + /rest/api/v1/deleteannouncement: post: - operationId: chat - summary: Chat - description: Have a conversation with Glean AI. + operationId: deleteannouncement + summary: Delete Announcement + description: Delete an existing user-generated announcement. tags: - - Chat + - Announcements security: - APIToken: [] parameters: - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' requestBody: - description: Includes chat history for Glean AI to respond to. + description: Delete announcement request content: application/json: schema: - $ref: '#/components/schemas/ChatRequest' - examples: - defaultExample: - value: - messages: - - author: USER - messageType: CONTENT - fragments: - - text: What are the company holidays this year? - gptAgentExample: - value: - agentConfig: - agent: GPT - messages: - - author: USER - messageType: CONTENT - fragments: - - text: Who was the first person to land on the moon? + $ref: '#/components/schemas/DeleteAnnouncementRequest' + required: true + x-exportParamName: Request + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-visibility: Public + x-codegen-request-body-name: payload + x-speakeasy-name-override: delete + x-speakeasy-group: client.announcements + /rest/api/v1/updateannouncement: + post: + operationId: updateannouncement + summary: Update Announcement + description: Update a textual announcement visible to some set of users based on department and location. + tags: + - Announcements + security: + - APIToken: [] + parameters: + - $ref: '#/components/parameters/locale' + requestBody: + description: Announcement content. Id need to be specified for the announcement. + content: + application/json: + schema: + $ref: '#/components/schemas/UpdateAnnouncementRequest' required: true x-exportParamName: Request responses: @@ -1632,163 +1903,70 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ChatResponse' - examples: - defaultExample: - value: - messages: - - author: GLEAN_AI - messageType: CONTENT - hasMoreFragments: false - agentConfig: - agent: DEFAULT - mode: DEFAULT - fragments: - - text: There are no holidays! - streamingExample: - value: - messages: - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: true - fragments: null - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: true - fragments: null - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: true - fragments: - - text: e are - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: true - fragments: - - text: no hol - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - hasMoreFragments: false - fragments: - - text: idays! - updateResponse: - value: - messages: - - author: GLEAN_AI - messageType: UPDATE - agentConfig: - agent: DEFAULT - mode: DEFAULT - fragments: - - text: '**Reading:**' - - structuredResults: - - document: - id: '123' - title: Company Handbook - citationResponse: - value: - messages: - - author: GLEAN_AI - messageType: CONTENT - agentConfig: - agent: DEFAULT - mode: DEFAULT - citations: - - sourceDocument: - id: '123' - title: Company Handbook - referenceRanges: - - textRange: - startIndex: 0 - endIndex: 12 - type: CITATION - "202": - description: | - Request accepted but not yet processed. Returned when another - in-flight request is already running for the same chat session; - the body's `queuedRequestId` identifies the deferred run and - output will be persisted to the chat session referenced by - `chatId`. - content: - application/json: - schema: - $ref: '#/components/schemas/ChatResponse' - examples: - queuedExample: - value: - chatId: abc123 - queuedRequestId: qr-xyz - isSavedToChatHistory: true + $ref: '#/components/schemas/Announcement' "400": description: Invalid request "401": description: Not Authorized - "408": - description: Request Timeout "429": description: Too Many Requests x-visibility: Public x-codegen-request-body-name: payload - x-speakeasy-group: client.chat - x-speakeasy-name-override: create - x-speakeasy-usage-example: true - /rest/api/v1/deleteallchats: + x-speakeasy-name-override: update + x-speakeasy-group: client.announcements + /rest/api/v1/createanswer: post: - operationId: deleteallchats - summary: Deletes all saved Chats owned by a user - description: Deletes all saved Chats a user has had and all their contained conversational content. + operationId: createanswer + summary: Create Answer + description: Create a user-generated Answer that contains a question and answer. tags: - - Chat + - Answers security: - APIToken: [] parameters: - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' + requestBody: + description: CreateAnswer request + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAnswerRequest' + required: true + x-exportParamName: Request responses: "200": description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/Answer' "400": description: Invalid request "401": description: Not Authorized - "403": - description: Forbidden + "429": + description: Too Many Requests x-visibility: Public x-codegen-request-body-name: payload - x-speakeasy-name-override: deleteAll - x-speakeasy-group: client.chat - /rest/api/v1/deletechats: + x-speakeasy-name-override: create + x-speakeasy-group: client.answers + /rest/api/v1/deleteanswer: post: - operationId: deletechats - summary: Deletes saved Chats - description: Deletes saved Chats and all their contained conversational content. + operationId: deleteanswer + summary: Delete Answer + description: Delete an existing user-generated Answer. tags: - - Chat + - Answers security: - APIToken: [] parameters: - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' requestBody: + description: DeleteAnswer request content: application/json: schema: - $ref: '#/components/schemas/DeleteChatsRequest' + $ref: '#/components/schemas/DeleteAnswerRequest' required: true x-exportParamName: Request responses: @@ -1798,31 +1976,29 @@ paths: description: Invalid request "401": description: Not Authorized - "403": - description: Forbidden "429": description: Too Many Requests x-visibility: Public x-codegen-request-body-name: payload x-speakeasy-name-override: delete - x-speakeasy-group: client.chat - /rest/api/v1/getchat: + x-speakeasy-group: client.answers + /rest/api/v1/editanswer: post: - operationId: getchat - summary: Retrieves a Chat - description: Retrieves the chat history between Glean Assistant and the user for a given Chat. + operationId: editanswer + summary: Update Answer + description: Update an existing user-generated Answer. tags: - - Chat + - Answers security: - APIToken: [] parameters: - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' requestBody: + description: EditAnswer request content: application/json: schema: - $ref: '#/components/schemas/GetChatRequest' + $ref: '#/components/schemas/EditAnswerRequest' required: true x-exportParamName: Request responses: @@ -1831,69 +2007,70 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetChatResponse' + $ref: '#/components/schemas/Answer' "400": description: Invalid request "401": description: Not Authorized - "403": - description: Forbidden - content: - application/json: - schema: - $ref: '#/components/schemas/AccessRequestPermissionDeniedResponse' "429": description: Too Many Requests x-visibility: Public x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieve - x-speakeasy-group: client.chat - /rest/api/v1/listchats: + x-speakeasy-name-override: update + x-speakeasy-group: client.answers + /rest/api/v1/getanswer: post: - operationId: listchats - summary: Retrieves all saved Chats - description: Retrieves all the saved Chats between Glean Assistant and the user. The returned Chats contain only metadata and no conversational content. + operationId: getanswer + summary: Read Answer + description: Read the details of a particular Answer given its ID. tags: - - Chat + - Answers security: - APIToken: [] parameters: - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' + requestBody: + description: GetAnswer request + content: + application/json: + schema: + $ref: '#/components/schemas/GetAnswerRequest' + required: true + x-exportParamName: Request responses: "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/ListChatsResponse' + $ref: '#/components/schemas/GetAnswerResponse' + "400": + description: Invalid request "401": description: Not Authorized - "403": - description: Forbidden "429": description: Too Many Requests x-visibility: Public x-codegen-request-body-name: payload - x-speakeasy-name-override: list - x-speakeasy-group: client.chat - /rest/api/v1/getchatapplication: + x-speakeasy-name-override: retrieve + x-speakeasy-group: client.answers + /rest/api/v1/listanswers: post: - operationId: getchatapplication - summary: Gets the metadata for a custom Chat application - description: Gets the Chat application details for the specified application ID. + operationId: listanswers + summary: List Answers + description: List Answers created by the current user. tags: - - Chat + - Answers security: - APIToken: [] parameters: - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' requestBody: + description: ListAnswers request content: application/json: schema: - $ref: '#/components/schemas/GetChatApplicationRequest' + $ref: '#/components/schemas/ListAnswersRequest' required: true x-exportParamName: Request responses: @@ -1902,59 +2079,91 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetChatApplicationResponse' + $ref: '#/components/schemas/ListAnswersResponse' "400": description: Invalid request "401": description: Not Authorized - "403": - description: Forbidden - x-visibility: Preview + "429": + description: Too Many Requests + deprecated: true + x-visibility: Public x-codegen-request-body-name: payload - x-speakeasy-name-override: retrieveApplication - x-speakeasy-group: client.chat - /rest/api/v1/uploadchatfiles: + x-glean-deprecated: + id: 4c0923bd-64c7-45b9-99a5-b36f2705e618 + introduced: "2026-01-21" + message: Answer boards have been removed and this endpoint no longer serves a purpose + removal: "2026-10-15" + x-speakeasy-deprecation-message: "Deprecated on 2026-01-21, removal scheduled for 2026-10-15: Answer boards have been removed and this endpoint no longer serves a purpose" + x-speakeasy-name-override: list + x-speakeasy-group: client.answers + /rest/api/v1/checkdatasourceauth: post: - operationId: uploadchatfiles - summary: Upload files for Chat - description: Upload files for Chat. - tags: - - Chat - security: - - APIToken: [] - parameters: - - $ref: '#/components/parameters/locale' - - $ref: '#/components/parameters/timezoneOffset' - requestBody: - content: - multipart/form-data: - schema: - $ref: '#/components/schemas/UploadChatFilesRequest' - required: true - x-exportParamName: Request + operationId: checkdatasourceauth + summary: Check datasource authorization + description: | + Returns all datasource instances that require per-user OAuth authorization + for the authenticated user, along with a transient auth token that can be + appended to auth URLs to complete OAuth flows. + + Clients construct the full OAuth URL by combining the backend base URL, + the `authUrlRelativePath` from each instance, and the transient auth token: + `/?transient_auth_token=`. + tags: + - Authentication + security: + - APIToken: [] + parameters: [] responses: "200": description: OK content: application/json: schema: - $ref: '#/components/schemas/UploadChatFilesResponse' + $ref: '#/components/schemas/CheckDatasourceAuthResponse' + "401": + description: Not Authorized + "429": + description: Too Many Requests + x-visibility: Public + x-speakeasy-name-override: checkDatasourceAuth + x-speakeasy-group: client.authentication + /rest/api/v1/createauthtoken: + post: + operationId: createauthtoken + summary: Create authentication token + description: | + Creates an authentication token for the authenticated user. These are + specifically intended to be used with the [Web SDK](https://developers.glean.com/web). + + Note: The tokens generated from this endpoint are **not** valid tokens + for use with the Client API (e.g. `/rest/api/v1/*`). + tags: + - Authentication + security: + - APIToken: [] + parameters: [] + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/CreateAuthTokenResponse' "400": - description: Invalid request + description: Invalid Request "401": description: Not Authorized - "403": - description: Forbidden "429": description: Too Many Requests x-visibility: Public - x-speakeasy-name-override: uploadFiles - x-speakeasy-group: client.chat - /rest/api/v1/getchatfiles: + x-speakeasy-name-override: createToken + x-speakeasy-group: client.authentication + /rest/api/v1/chat: post: - operationId: getchatfiles - summary: Get files uploaded by a user for Chat - description: Get files uploaded by a user for Chat. + operationId: chat + summary: Chat + description: Have a conversation with Glean AI. tags: - Chat security: @@ -1963,10 +2172,28 @@ paths: - $ref: '#/components/parameters/locale' - $ref: '#/components/parameters/timezoneOffset' requestBody: + description: Includes chat history for Glean AI to respond to. content: application/json: schema: - $ref: '#/components/schemas/GetChatFilesRequest' + $ref: '#/components/schemas/ChatRequest' + examples: + defaultExample: + value: + messages: + - author: USER + messageType: CONTENT + fragments: + - text: What are the company holidays this year? + gptAgentExample: + value: + agentConfig: + agent: GPT + messages: + - author: USER + messageType: CONTENT + fragments: + - text: Who was the first person to land on the moon? required: true x-exportParamName: Request responses: @@ -1975,23 +2202,151 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/GetChatFilesResponse' + $ref: '#/components/schemas/ChatResponse' + examples: + defaultExample: + value: + messages: + - author: GLEAN_AI + messageType: CONTENT + hasMoreFragments: false + agentConfig: + agent: DEFAULT + mode: DEFAULT + fragments: + - text: There are no holidays! + streamingExample: + value: + messages: + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: true + fragments: null + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: true + fragments: null + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: true + fragments: + - text: e are + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: true + fragments: + - text: no hol + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + hasMoreFragments: false + fragments: + - text: idays! + updateResponse: + value: + messages: + - author: GLEAN_AI + messageType: UPDATE + agentConfig: + agent: DEFAULT + mode: DEFAULT + fragments: + - text: '**Reading:**' + - structuredResults: + - document: + id: '123' + title: Company Handbook + citationResponse: + value: + messages: + - author: GLEAN_AI + messageType: CONTENT + agentConfig: + agent: DEFAULT + mode: DEFAULT + citations: + - sourceDocument: + id: '123' + title: Company Handbook + referenceRanges: + - textRange: + startIndex: 0 + endIndex: 12 + type: CITATION + "202": + description: | + Request accepted but not yet processed. Returned when another + in-flight request is already running for the same chat session; + the body's `queuedRequestId` identifies the deferred run and + output will be persisted to the chat session referenced by + `chatId`. + content: + application/json: + schema: + $ref: '#/components/schemas/ChatResponse' + examples: + queuedExample: + value: + chatId: abc123 + queuedRequestId: qr-xyz + isSavedToChatHistory: true "400": description: Invalid request "401": description: Not Authorized - "403": - description: Forbidden + "408": + description: Request Timeout "429": description: Too Many Requests x-visibility: Public - x-speakeasy-name-override: retrieveFiles + x-codegen-request-body-name: payload x-speakeasy-group: client.chat - /rest/api/v1/deletechatfiles: + x-speakeasy-name-override: create + x-speakeasy-usage-example: true + /rest/api/v1/deleteallchats: post: - operationId: deletechatfiles - summary: Delete files uploaded by a user for chat - description: Delete files uploaded by a user for Chat. + operationId: deleteallchats + summary: Deletes all saved Chats owned by a user + description: Deletes all saved Chats a user has had and all their contained conversational content. + tags: + - Chat + security: + - APIToken: [] + parameters: + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + x-visibility: Public + x-codegen-request-body-name: payload + x-speakeasy-name-override: deleteAll + x-speakeasy-group: client.chat + /rest/api/v1/deletechats: + post: + operationId: deletechats + summary: Deletes saved Chats + description: Deletes saved Chats and all their contained conversational content. tags: - Chat security: @@ -2003,8 +2358,9 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/DeleteChatFilesRequest' + $ref: '#/components/schemas/DeleteChatsRequest' required: true + x-exportParamName: Request responses: "200": description: OK @@ -2017,23 +2373,237 @@ paths: "429": description: Too Many Requests x-visibility: Public - x-speakeasy-name-override: deleteFiles + x-codegen-request-body-name: payload + x-speakeasy-name-override: delete x-speakeasy-group: client.chat - /rest/api/v1/chat-files/{fileId}: - get: - operationId: getChatFile - summary: Download a chat file - description: | - Download the raw content of a file generated or uploaded during a chat session (for example, an image produced by the assistant). Returns the file bytes with a Content-Type header matching the file's MIME type. + /rest/api/v1/getchat: + post: + operationId: getchat + summary: Retrieves a Chat + description: Retrieves the chat history between Glean Assistant and the user for a given Chat. tags: - Chat security: - APIToken: [] parameters: - - name: fileId - in: path - description: Identifier of the chat file to download. - required: true + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetChatRequest' + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetChatResponse' + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + content: + application/json: + schema: + $ref: '#/components/schemas/AccessRequestPermissionDeniedResponse' + "429": + description: Too Many Requests + x-visibility: Public + x-codegen-request-body-name: payload + x-speakeasy-name-override: retrieve + x-speakeasy-group: client.chat + /rest/api/v1/listchats: + post: + operationId: listchats + summary: Retrieves all saved Chats + description: Retrieves all the saved Chats between Glean Assistant and the user. The returned Chats contain only metadata and no conversational content. + tags: + - Chat + security: + - APIToken: [] + parameters: + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/ListChatsResponse' + "401": + description: Not Authorized + "403": + description: Forbidden + "429": + description: Too Many Requests + x-visibility: Public + x-codegen-request-body-name: payload + x-speakeasy-name-override: list + x-speakeasy-group: client.chat + /rest/api/v1/getchatapplication: + post: + operationId: getchatapplication + summary: Gets the metadata for a custom Chat application + description: Gets the Chat application details for the specified application ID. + tags: + - Chat + security: + - APIToken: [] + parameters: + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetChatApplicationRequest' + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetChatApplicationResponse' + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + x-visibility: Preview + x-codegen-request-body-name: payload + x-speakeasy-name-override: retrieveApplication + x-speakeasy-group: client.chat + /rest/api/v1/uploadchatfiles: + post: + operationId: uploadchatfiles + summary: Upload files for Chat + description: Upload files for Chat. + tags: + - Chat + security: + - APIToken: [] + parameters: + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' + requestBody: + content: + multipart/form-data: + schema: + $ref: '#/components/schemas/UploadChatFilesRequest' + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/UploadChatFilesResponse' + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + "429": + description: Too Many Requests + x-visibility: Public + x-speakeasy-name-override: uploadFiles + x-speakeasy-group: client.chat + /rest/api/v1/getchatfiles: + post: + operationId: getchatfiles + summary: Get files uploaded by a user for Chat + description: Get files uploaded by a user for Chat. + tags: + - Chat + security: + - APIToken: [] + parameters: + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/GetChatFilesRequest' + required: true + x-exportParamName: Request + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: '#/components/schemas/GetChatFilesResponse' + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + "429": + description: Too Many Requests + x-visibility: Public + x-speakeasy-name-override: retrieveFiles + x-speakeasy-group: client.chat + /rest/api/v1/deletechatfiles: + post: + operationId: deletechatfiles + summary: Delete files uploaded by a user for chat + description: Delete files uploaded by a user for Chat. + tags: + - Chat + security: + - APIToken: [] + parameters: + - $ref: '#/components/parameters/locale' + - $ref: '#/components/parameters/timezoneOffset' + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/DeleteChatFilesRequest' + required: true + responses: + "200": + description: OK + "400": + description: Invalid request + "401": + description: Not Authorized + "403": + description: Forbidden + "429": + description: Too Many Requests + x-visibility: Public + x-speakeasy-name-override: deleteFiles + x-speakeasy-group: client.chat + /rest/api/v1/chat-files/{fileId}: + get: + operationId: getChatFile + summary: Download a chat file + description: | + Download the raw content of a file generated or uploaded during a chat session (for example, an image produced by the assistant). Returns the file bytes with a Content-Type header matching the file's MIME type. + tags: + - Chat + security: + - APIToken: [] + parameters: + - name: fileId + in: path + description: Identifier of the chat file to download. + required: true schema: type: string - name: preview @@ -3999,14 +4569,15 @@ paths: summary: Get tool definitions from a tool server. description: | Returns the name, description and JSON input schema for the named tools on the - specified tool server. Works for both action packs and MCP servers. + specified tool server. Works for Glean's built-in tools, tool packs and MCP + servers. `toolNames` is required. Names that do not exist on the server are returned in `notFound` rather than failing the request, so a single bad name does not force callers into one-at-a-time retries. Matching is case-insensitive and treats `-` and `_` as equivalent. - Native tools are not served; `serverId=native` returns 404. + Use `serverId=native` for Glean's built-in tools. tags: - Tools security: @@ -6014,6 +6585,8 @@ paths: summary: Chat description: Have a conversation with Glean AI. operationId: chatStream + security: + - APIToken: [] x-visibility: Public x-codegen-request-body-name: payload parameters: @@ -6603,8 +7176,8 @@ components: role: type: string enum: - - user - - assistant + - USER + - ASSISTANT content: type: string minLength: 1 @@ -6616,7 +7189,7 @@ components: properties: input: description: | - Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. + Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. oneOf: - type: string minLength: 1 @@ -6654,7 +7227,7 @@ components: type: type: string enum: - - document + - DOCUMENT document_id: type: string minLength: 1 @@ -6680,7 +7253,7 @@ components: type: type: string enum: - - person + - PERSON person_id: type: string minLength: 1 @@ -6698,7 +7271,7 @@ components: type: type: string enum: - - file + - FILE file_id: type: string minLength: 1 @@ -6718,7 +7291,7 @@ components: type: type: string enum: - - custom_entity + - CUSTOM_ENTITY entity_id: type: string minLength: 1 @@ -6740,10 +7313,10 @@ components: discriminator: propertyName: type mapping: - document: "#/components/schemas/ChatDocumentSource" - person: "#/components/schemas/ChatPersonSource" - file: "#/components/schemas/ChatFileSource" - custom_entity: "#/components/schemas/ChatCustomEntitySource" + DOCUMENT: "#/components/schemas/ChatDocumentSource" + PERSON: "#/components/schemas/ChatPersonSource" + FILE: "#/components/schemas/ChatFileSource" + CUSTOM_ENTITY: "#/components/schemas/ChatCustomEntitySource" PlatformChatCitationSnippet: type: object additionalProperties: false @@ -6766,7 +7339,7 @@ components: type: type: string enum: - - citation + - CITATION sources: type: array minItems: 1 @@ -6795,7 +7368,7 @@ components: type: type: string enum: - - output_text + - OUTPUT_TEXT text: type: string annotations: @@ -6813,11 +7386,11 @@ components: type: type: string enum: - - message + - MESSAGE role: type: string enum: - - assistant + - ASSISTANT content: type: array minItems: 1 @@ -6841,7 +7414,7 @@ components: object: type: string enum: - - response + - RESPONSE created_at: type: string format: date-time @@ -6849,7 +7422,7 @@ components: status: type: string enum: - - completed + - COMPLETED output: type: array minItems: 1 @@ -7008,26 +7581,57 @@ components: request_id: type: string description: Platform-generated request ID for support correlation. - PlatformSkillValidationRequest: + PlatformSkillImportRequest: type: object additionalProperties: false required: - - file + - source_urls properties: - file: - type: string - format: binary - description: SKILL.md, .zip, or .skill bundle to validate. - PlatformSkillValidationMetadata: + source_urls: + type: array + minItems: 1 + maxItems: 100 + uniqueItems: true + description: Resolved GitHub skill URLs selected from a source preview. + items: + type: string + minLength: 1 + maxLength: 2048 + PlatformSkillImportResponse: type: object required: - - display_name - - description + - skills + - request_id properties: - display_name: - type: string - description: Skill name parsed from SKILL.md frontmatter. - description: + skills: + type: array + minItems: 1 + description: Independently persisted skills in request order. + items: + $ref: "#/components/schemas/PlatformSkill" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformSkillValidationRequest: + type: object + additionalProperties: false + required: + - file + properties: + file: + type: string + format: binary + description: SKILL.md, .zip, or .skill bundle to validate. + PlatformSkillValidationMetadata: + type: object + required: + - display_name + - description + properties: + display_name: + type: string + description: Skill name parsed from SKILL.md frontmatter. + description: type: string description: Skill description parsed from SKILL.md frontmatter. PlatformSkillValidationFile: @@ -7069,37 +7673,6 @@ components: request_id: type: string description: Platform-generated request ID for support correlation. - PlatformSkillImportRequest: - type: object - additionalProperties: false - required: - - source_urls - properties: - source_urls: - type: array - minItems: 1 - maxItems: 100 - uniqueItems: true - description: Resolved GitHub skill URLs selected from a source preview. - items: - type: string - minLength: 1 - maxLength: 2048 - PlatformSkillImportResponse: - type: object - required: - - skills - - request_id - properties: - skills: - type: array - minItems: 1 - description: Independently persisted skills in request order. - items: - $ref: "#/components/schemas/PlatformSkill" - request_id: - type: string - description: Platform-generated request ID for support correlation. PlatformSkillSourcePreviewRequest: type: object additionalProperties: false @@ -7155,165 +7728,557 @@ components: description: SKILL.md content fetched as part of the preview. files: type: array - description: Supporting files fetched with the skill. + description: Supporting files fetched with the skill. + items: + $ref: "#/components/schemas/PlatformSkillSourcePreviewFile" + file_tree: + type: array + description: Relative paths discovered for the skill. + items: + type: string + PlatformSkillSourcePreviewFailureCode: + type: string + enum: + - INVALID_SKILL + - SKILL_FETCH_FAILED + description: Stable machine-readable reason a discovered entry was excluded. + PlatformSkillSourcePreviewFailure: + type: object + required: + - source_url + - code + - detail + properties: + source_url: + type: string + description: Resolved URL for the entry that could not be previewed. + code: + $ref: "#/components/schemas/PlatformSkillSourcePreviewFailureCode" + detail: + type: string + description: Safe explanation of why the entry was excluded. + PlatformSkillSourcePreviewResponse: + type: object + required: + - skills + - failures + - request_id + properties: + skills: + type: array + minItems: 1 + description: Valid skills discovered at the source URL. + items: + $ref: "#/components/schemas/PlatformSkillSourcePreview" + failures: + type: array + description: Discovered entries that could not be included in the preview. + items: + $ref: "#/components/schemas/PlatformSkillSourcePreviewFailure" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformSkillGetResponse: + type: object + required: + - skill + - request_id + properties: + skill: + $ref: "#/components/schemas/PlatformSkill" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformSkillUpdateStatus: + type: string + enum: + - ENABLED + - DISABLED + description: New status for the skill. + PlatformSkillUpdateRequest: + type: object + additionalProperties: false + required: + - status + properties: + status: + $ref: "#/components/schemas/PlatformSkillUpdateStatus" + PlatformSkillUpdateResponse: + type: object + required: + - skill + - request_id + properties: + skill: + $ref: "#/components/schemas/PlatformSkill" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformSkillSyncResultStatus: + type: string + enum: + - UP_TO_DATE + description: Synchronization status after a successful refresh. + PlatformSkillSyncResponse: + type: object + required: + - sync_status + - commit_sha + - updated + - request_id + properties: + sync_status: + $ref: "#/components/schemas/PlatformSkillSyncResultStatus" + commit_sha: + type: string + minLength: 1 + description: Git commit SHA now associated with the skill. + updated: + type: boolean + description: Whether this request created a new skill version. + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformSkillVersion: + type: object + required: + - skill_id + - version + - minor_version + - is_latest + - created_by + - created_at + - updated_at + properties: + skill_id: + type: string + description: Glean skill ID. + version: + type: integer + description: Major version number. + minor_version: + type: integer + description: Minor version number. + is_latest: + type: boolean + description: Whether this is the latest version of the skill. + created_by: + $ref: "#/components/schemas/PlatformPersonReference" + created_at: + type: string + format: date-time + description: Time this version was created. + updated_at: + type: string + format: date-time + description: Time this version was last updated. + source_provenance: + $ref: "#/components/schemas/PlatformSkillSourceProvenance" + PlatformSkillVersionsListResponse: + type: object + required: + - versions + - has_more + - next_cursor + - request_id + properties: + versions: + type: array + description: Versions available for the skill. + items: + $ref: "#/components/schemas/PlatformSkillVersion" + has_more: + type: boolean + description: Whether additional results are available. + next_cursor: + type: string + nullable: true + description: Cursor for the next page, or null when no more results are available. + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformSkillVersionCreateRequest: + type: object + additionalProperties: false + required: + - file + properties: + file: + type: string + format: binary + description: SKILL.md, .zip, or .skill bundle to store as a new version. + PlatformSkillVersionCreateResponse: + type: object + required: + - version + - request_id + properties: + version: + $ref: "#/components/schemas/PlatformSkillVersion" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformSkillVersionGetResponse: + type: object + required: + - version + - request_id + properties: + version: + $ref: "#/components/schemas/PlatformSkillVersion" + request_id: + type: string + description: Platform-generated request ID for support correlation. + PlatformFilterOperator: + type: string + description: Supported filter operator. + enum: + - EQUALS + - NOT_EQUALS + - GT + - GTE + - LT + - LTE + PlatformFilter: + type: object + additionalProperties: false + required: + - field + - values + description: | + A single filter criterion. For `EQUALS`, multiple values within a filter are OR'd; for `NOT_EQUALS`, listed values are excluded. Separate filters are AND'd with each other and with inline operators in `query`. Repeated same-field `EQUALS` filters are rejected. + properties: + field: + type: string + minLength: 1 + description: | + Filter field name. Built-in names (case-sensitive, lowercase only): `type`, `owner`, `from`, `author`, `channel`, `status`, `assignee`, `reporter`, `component`, `mentions`, and `collection`. Built-ins accept only `EQUALS` and `NOT_EQUALS`. Any other nonblank name is accepted as a custom filter without spelling, existence, or type checks; behavior depends on your connected sources. + example: type + values: + type: array + minItems: 1 + items: + type: string + minLength: 1 + description: | + One or more values to match. Prefer values returned by filter discovery unchanged. For people (`USER`) fields, values may be email addresses or display names. + example: + - spreadsheet + - presentation + operator: + allOf: + - $ref: "#/components/schemas/PlatformFilterOperator" + description: | + Comparison operator. Defaults to `EQUALS`. Built-in fields support only `EQUALS` and `NOT_EQUALS`. Range operators (`GT`, `GTE`, `LT`, `LTE`) require exactly one value; express ranges with multiple filters on the same field. Custom fields may support different operators depending on the data source. + PlatformTimeRange: + type: object + additionalProperties: false + description: Filter results to those last updated within this range. + properties: + start: + type: string + format: date-time + description: Inclusive lower bound in ISO 8601 format. + end: + type: string + format: date-time + description: Exclusive upper bound in ISO 8601 format. + PlatformSearchRequest: + type: object + additionalProperties: false + required: + - query + example: + query: quarterly planning 2026 + datasources: + - confluence + - google_drive + filters: + - field: type + values: + - spreadsheet + - presentation + properties: + query: + type: string + minLength: 1 + description: | + The search query string. Supports inline operators such as `from:jane type:document app:confluence`. Inline operators are AND'd with structured `filters`. + page_size: + type: integer + minimum: 1 + maximum: 100 + default: 10 + description: Number of results to return per page. + cursor: + type: string + nullable: true + description: | + Opaque pagination token from a previous response's `next_cursor` field. Omit on the first request. + example: "" + datasources: + type: array + minItems: 1 + items: + type: string + minLength: 1 + description: | + Restrict results to specific datasource identifiers returned by `GET /api/search/filters`. Scopes by datasource type and may include results from multiple instances of that type. + filters: + type: array + minItems: 1 + items: + $ref: "#/components/schemas/PlatformFilter" + description: | + Structured filters applied to search results. Multiple values within a filter with `EQUALS` are OR'd; separate filters are AND'd. Conflicting constraints on the same field (for example, `type:document` in `query` and `type:spreadsheet` in a filter) return an empty result set. See `Filter.field` for built-in field names and operators. Other nonblank field names are accepted as custom filters without validation; behavior depends on your connected sources. + time_range: + $ref: "#/components/schemas/PlatformTimeRange" + PlatformResult: + type: object + additionalProperties: false + required: + - url + - title + - datasource + properties: + url: + type: string + format: uri + minLength: 1 + description: Canonical URL of the result. + example: https://company.atlassian.net/wiki/spaces/ENG/pages/12345 + title: + type: string + minLength: 1 + description: Result title. + example: Q2 2026 Platform Roadmap + snippets: + type: array + items: + type: string + minLength: 1 + description: Query-relevant plain-text excerpts from the result body. + example: + - The platform team will focus on API stability and... + datasource: + type: string + minLength: 1 + description: The datasource this result originates from. + example: confluence + document_type: + type: string + nullable: true + minLength: 1 + description: The document type within the datasource. + example: page + creator: + $ref: "#/components/schemas/PlatformPersonReference" + owner: + $ref: "#/components/schemas/PlatformPersonReference" + updated_at: + type: string + format: date-time + nullable: true + description: When the result was last modified. + created_at: + type: string + format: date-time + nullable: true + description: When the result was created. + PlatformSearchResponse: + type: object + additionalProperties: false + required: + - results + - has_more + - next_cursor + - request_id + - warnings + properties: + results: + type: array + items: + $ref: "#/components/schemas/PlatformResult" + description: | + Ordered list of ranked document results. People cards, Q&A blocks, and other UI-only result types are not included. + has_more: + type: boolean + description: Indicates whether additional pages of results are available. + next_cursor: + type: string + nullable: true + description: Opaque token to pass as `cursor` in the next request. + request_id: + type: string + minLength: 1 + description: Platform-generated request ID for support correlation. + warnings: + type: array + description: | + Non-blocking warnings for this response. Required; use `[]` when there are none. Clients must tolerate unknown warning codes. `results_incomplete` means some results may be unavailable for the requested datasource scope while `results`, `has_more`, and `next_cursor` remain present. Warning messages are generic and do not include query text or internal identifiers. + items: + $ref: "#/components/schemas/PlatformWarning" + PlatformFilterFieldInfo: + type: object + additionalProperties: false + required: + - field + - type + - operators + properties: + field: + type: string + minLength: 1 + description: Field name usable in the `filters` array for `POST /api/search`. + example: status + type: + type: string + minLength: 1 + description: | + Open field-type string. Current values are `STRING` for text and keyword fields and `USER` for people fields (`owner`, `from`, `author`, `assignee`, `reporter`, `mentions`). Clients must tolerate unknown values. + example: STRING + operators: + type: array + minItems: 1 + description: | + Comparison operators supported for this field. Built-in fields expose `EQUALS` and `NOT_EQUALS`. items: - $ref: "#/components/schemas/PlatformSkillSourcePreviewFile" - file_tree: + $ref: "#/components/schemas/PlatformFilterOperator" + values: type: array - description: Relative paths discovered for the skill. + description: | + Suggested filter values observed for the supplied `query`. Omitted in catalog-only responses. Present as an array, including `[]`, when `query` is provided. Values are a bounded, non-exhaustive sample in search-provider order and may include duplicates; blank values are omitted. No additional endpoint-specific truncation is applied. Grouping in the search UI is not preserved; each value applies to the field broadly. An empty array does not mean no valid value exists. Availability varies by data source; federated and MCP integrations may return page-derived values or none at all. Reusing a suggested value in `POST /api/search` does not guarantee matching results or identical filter behavior. For `USER` fields, values may be email addresses or display names. items: type: string - PlatformSkillSourcePreviewFailureCode: - type: string - enum: - - INVALID_SKILL - - SKILL_FETCH_FAILED - description: Stable machine-readable reason a discovered entry was excluded. - PlatformSkillSourcePreviewFailure: + minLength: 1 + PlatformDatasourceFilterInfo: type: object + additionalProperties: false required: - - source_url - - code - - detail + - datasource + - filters properties: - source_url: - type: string - description: Resolved URL for the entry that could not be previewed. - code: - $ref: "#/components/schemas/PlatformSkillSourcePreviewFailureCode" - detail: + datasource: type: string - description: Safe explanation of why the entry was excluded. - PlatformSkillSourcePreviewResponse: - type: object - required: - - skills - - failures - - request_id - properties: - skills: - type: array - minItems: 1 - description: Valid skills discovered at the source URL. - items: - $ref: "#/components/schemas/PlatformSkillSourcePreview" - failures: + minLength: 1 + description: | + Datasource identifier usable in `POST /api/search` `datasources`. + example: jira + filters: type: array - description: Discovered entries that could not be included in the preview. + description: | + Common built-in filter fields for this datasource. May be empty. A built-in omitted here can still be valid in `POST /api/search`; see `Filter.field` for the full built-in name list. items: - $ref: "#/components/schemas/PlatformSkillSourcePreviewFailure" - request_id: - type: string - description: Platform-generated request ID for support correlation. - PlatformSkillGetResponse: + $ref: "#/components/schemas/PlatformFilterFieldInfo" + PlatformSearchFiltersResponse: type: object + additionalProperties: false required: - - skill + - datasources - request_id properties: - skill: - $ref: "#/components/schemas/PlatformSkill" + datasources: + type: array + description: | + Datasources visible to the authenticated user. Each `datasource` is an identifier you can pass to `POST /api/search` `datasources`. An empty array means no visible datasources. + items: + $ref: "#/components/schemas/PlatformDatasourceFilterInfo" request_id: type: string + minLength: 1 description: Platform-generated request ID for support correlation. - PlatformSkillUpdateStatus: + PlatformTriggerStatus: type: string + description: Current trigger lifecycle state. + example: ENABLED enum: - ENABLED - DISABLED - description: New status for the skill. - PlatformSkillUpdateRequest: + PlatformTriggerAuth: type: object additionalProperties: false required: - - status - properties: - status: - $ref: "#/components/schemas/PlatformSkillUpdateStatus" - PlatformSkillUpdateResponse: - type: object - required: - - skill - - request_id + - type + - secret + description: Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. properties: - skill: - $ref: "#/components/schemas/PlatformSkill" - request_id: + type: type: string - description: Platform-generated request ID for support correlation. - PlatformSkillSyncResultStatus: - type: string - enum: - - UP_TO_DATE - description: Synchronization status after a successful refresh. - PlatformSkillSyncResponse: + description: Credential scheme. + enum: + - BEARER + secret: + type: string + writeOnly: true + description: Secret credential value. Write-only; never returned on reads. + example: secret_test_123 + PlatformTriggerDelivery: type: object + additionalProperties: false required: - - sync_status - - commit_sha - - updated - - request_id + - webhook_url properties: - sync_status: - $ref: "#/components/schemas/PlatformSkillSyncResultStatus" - commit_sha: - type: string - minLength: 1 - description: Git commit SHA now associated with the skill. - updated: - type: boolean - description: Whether this request created a new skill version. - request_id: + webhook_url: type: string - description: Platform-generated request ID for support correlation. - PlatformSkillVersion: + format: uri + pattern: ^https:// + description: HTTPS URL that signed events are delivered to. + example: https://customer.app/webhook + auth: + $ref: "#/components/schemas/PlatformTriggerAuth" + PlatformTrigger: type: object required: - - skill_id - - version - - minor_version - - is_latest - - created_by + - trigger_id + - preset_id + - status + - delivery - created_at - updated_at properties: - skill_id: + trigger_id: type: string - description: Glean skill ID. - version: - type: integer - description: Major version number. - minor_version: - type: integer - description: Minor version number. - is_latest: - type: boolean - description: Whether this is the latest version of the skill. - created_by: - $ref: "#/components/schemas/PlatformPersonReference" + description: ID of the trigger. + example: trigger_test_123 + preset_id: + type: string + description: ID of the preset this trigger was created from. + example: GITHUB_1 + description: + type: string + description: Optional caller-supplied note describing this trigger. + example: Reviews I am tagged on, sent to my team's review channel + status: + $ref: "#/components/schemas/PlatformTriggerStatus" + inputs: + type: object + additionalProperties: true + description: Values supplied for the preset's inputs. + example: + repository: acme/payments-api + delivery: + $ref: "#/components/schemas/PlatformTriggerDelivery" created_at: type: string format: date-time - description: Time this version was created. + description: Time the trigger was created. updated_at: type: string format: date-time - description: Time this version was last updated. - source_provenance: - $ref: "#/components/schemas/PlatformSkillSourceProvenance" - PlatformSkillVersionsListResponse: + description: Time the trigger was last updated. + PlatformTriggerListResponse: type: object required: - - versions + - results - has_more - next_cursor - request_id properties: - versions: + results: type: array - description: Versions available for the skill. + description: Triggers owned by the caller. items: - $ref: "#/components/schemas/PlatformSkillVersion" + $ref: "#/components/schemas/PlatformTrigger" has_more: type: boolean description: Whether additional results are available. @@ -7324,296 +8289,481 @@ components: request_id: type: string description: Platform-generated request ID for support correlation. - PlatformSkillVersionCreateRequest: + PlatformTriggerCreateRequest: type: object additionalProperties: false required: - - file + - preset_id + - delivery properties: - file: + preset_id: type: string - format: binary - description: SKILL.md, .zip, or .skill bundle to store as a new version. - PlatformSkillVersionCreateResponse: + description: ID of the preset to instantiate. + example: GITHUB_1 + description: + type: string + description: Optional note describing this trigger. + example: Reviews I am tagged on, sent to my team's review channel + inputs: + type: object + additionalProperties: true + description: Values for the preset's inputs. + example: + repository: acme/payments-api + delivery: + $ref: "#/components/schemas/PlatformTriggerDelivery" + PlatformTriggerWithSecret: + allOf: + - $ref: "#/components/schemas/PlatformTrigger" + - type: object + required: + - signing_secret + properties: + signing_secret: + type: string + pattern: ^whsec_[A-Za-z0-9+/=]+$ + example: whsec_xxx + description: Secret for verifying webhook signatures, serialized as `whsec_` following Standard Webhooks. Returned only when the trigger is created and cannot be retrieved later. Store it securely. + PlatformTriggerCreateResponse: type: object required: - - version + - trigger - request_id properties: - version: - $ref: "#/components/schemas/PlatformSkillVersion" + trigger: + $ref: "#/components/schemas/PlatformTriggerWithSecret" request_id: type: string description: Platform-generated request ID for support correlation. - PlatformSkillVersionGetResponse: + PlatformTriggerWebhookEventBase: type: object required: - version - - request_id + - trigger_id + - event_type + - datasource + - reason + - doc_type + - doc_id + - view_url + - title properties: version: - $ref: "#/components/schemas/PlatformSkillVersion" - request_id: type: string - description: Platform-generated request ID for support correlation. - PlatformFilterOperator: - type: string - description: Supported filter operator. - enum: - - EQUALS - - NOT_EQUALS - - GT - - GTE - - LT - - LTE - PlatformFilter: + description: Webhook payload schema version. + pattern: ^1$ + trigger_id: + type: string + description: ID of the Platform trigger that produced the event. + example: trigger_test_123 + event_type: + type: string + description: Kind of trigger event. + datasource: + type: string + description: Datasource the event originated from. + example: GITHUB + reason: + type: string + description: Why the event fired. + example: REVIEW_REQUESTED + doc_type: + type: string + description: Datasource-specific object type. + example: pull + doc_id: + type: string + description: Identifier of the document the event is about. + example: GITHUB_pull_123 + view_url: + type: string + description: Link to the document in its source system. + example: https://github.com/acme/payments-api/pull/123 + title: + type: string + description: Title of the document, or the subject for email. + example: "Bug: login fails on Safari" + event_time: + type: string + format: date-time + description: Relevant event time. Document changes use the source-observed time when available and otherwise the document ingestion time; content schedules use the scheduled time. Omitted when no timestamp is available. + PlatformDocumentChangeWebhookEvent: + allOf: + - $ref: "#/components/schemas/PlatformTriggerWebhookEventBase" + - type: object + required: + - event_type + properties: + event_type: + type: string + pattern: ^DOCUMENT_CHANGE$ + content: + type: string + description: Email body content when the event is for an email document. + content_truncated: + type: boolean + description: Present and true when source content exceeded the delivery size limit. + example: + version: "1" + trigger_id: trigger_test_123 + event_type: DOCUMENT_CHANGE + datasource: GITHUB + reason: REVIEW_REQUESTED + doc_type: pull + doc_id: GITHUB_pull_123 + view_url: https://github.com/acme/payments-api/pull/123 + title: Add retry backoff to the crawler + event_time: "2025-04-23T11:00:00Z" + PlatformContentScheduleWebhookEvent: + allOf: + - $ref: "#/components/schemas/PlatformTriggerWebhookEventBase" + - type: object + required: + - event_type + - time_offset_seconds + properties: + event_type: + type: string + pattern: ^CONTENT_SCHEDULE$ + time_offset_seconds: + type: integer + format: int32 + description: Offset in seconds from the scheduled time at which the trigger fired. + example: + version: "1" + trigger_id: trigger_test_123 + event_type: CONTENT_SCHEDULE + datasource: GOOGLECALENDAR + reason: CONTENT_SCHEDULE + doc_type: event + doc_id: GCAL_event_123 + view_url: https://calendar.google.com/event?eid=abc + title: Weekly Sync + event_time: "2025-04-23T12:00:00Z" + time_offset_seconds: 1800 + PlatformTriggerWebhookEvent: + description: Every delivered webhook is one of these two variants. A trigger with a cron schedule carries no document and so cannot be delivered over a webhook. + oneOf: + - $ref: "#/components/schemas/PlatformDocumentChangeWebhookEvent" + - $ref: "#/components/schemas/PlatformContentScheduleWebhookEvent" + discriminator: + propertyName: event_type + mapping: + DOCUMENT_CHANGE: "#/components/schemas/DocumentChangeWebhookEvent" + CONTENT_SCHEDULE: "#/components/schemas/ContentScheduleWebhookEvent" + PlatformTriggerGetResponse: type: object - additionalProperties: false required: - - field - - values - description: | - A single filter criterion. For `EQUALS`, multiple values within a filter are OR'd; for `NOT_EQUALS`, listed values are excluded. Separate filters are AND'd with each other and with inline operators in `query`. Repeated same-field `EQUALS` filters are rejected. + - trigger + - request_id properties: - field: + trigger: + $ref: "#/components/schemas/PlatformTrigger" + request_id: type: string - minLength: 1 - description: | - Filter field name. Built-in names (case-sensitive, lowercase only): `type`, `owner`, `from`, `author`, `channel`, `status`, `assignee`, `reporter`, `component`, `mentions`, and `collection`. Built-ins accept only `EQUALS` and `NOT_EQUALS`. Any other nonblank name is accepted as a custom filter without spelling, existence, or type checks; behavior depends on your connected sources. - example: type - values: - type: array - minItems: 1 - items: - type: string - minLength: 1 - description: | - One or more values to match. Prefer values returned by filter discovery unchanged. For people (`USER`) fields, values may be email addresses or display names. - example: - - spreadsheet - - presentation - operator: - allOf: - - $ref: "#/components/schemas/PlatformFilterOperator" - description: | - Comparison operator. Defaults to `EQUALS`. Built-in fields support only `EQUALS` and `NOT_EQUALS`. Range operators (`GT`, `GTE`, `LT`, `LTE`) require exactly one value; express ranges with multiple filters on the same field. Custom fields may support different operators depending on the data source. - PlatformTimeRange: + description: Platform-generated request ID for support correlation. + PlatformTriggerUpdateRequest: type: object additionalProperties: false - description: Filter results to those last updated within this range. + description: Partial update. Only the supplied fields are changed. properties: - start: - type: string - format: date-time - description: Inclusive lower bound in ISO 8601 format. - end: + status: + $ref: "#/components/schemas/PlatformTriggerStatus" + description: type: string - format: date-time - description: Exclusive upper bound in ISO 8601 format. - PlatformSearchRequest: + description: Optional note describing this trigger. + example: Reviews I am tagged on, sent to my team's review channel + inputs: + type: object + additionalProperties: true + description: Values for the preset's inputs. + example: + repository: acme/payments-api + delivery: + $ref: "#/components/schemas/PlatformTriggerDelivery" + PlatformTriggerEventSearchRequest: type: object additionalProperties: false - required: - - query - example: - query: quarterly planning 2026 - datasources: - - confluence - - google_drive - filters: - - field: type - values: - - spreadsheet - - presentation properties: - query: - type: string - minLength: 1 - description: | - The search query string. Supports inline operators such as `from:jane type:document app:confluence`. Inline operators are AND'd with structured `filters`. page_size: type: integer + description: Maximum number of events to return. minimum: 1 maximum: 100 default: 10 - description: Number of results to return per page. - cursor: - type: string - nullable: true - description: | - Opaque pagination token from a previous response's `next_cursor` field. Omit on the first request. - example: "" - datasources: - type: array - minItems: 1 - items: - type: string - minLength: 1 - description: | - Restrict results to specific datasource identifiers returned by `GET /api/search/filters`. Scopes by datasource type and may include results from multiple instances of that type. - filters: - type: array - minItems: 1 - items: - $ref: "#/components/schemas/PlatformFilter" - description: | - Structured filters applied to search results. Multiple values within a filter with `EQUALS` are OR'd; separate filters are AND'd. Conflicting constraints on the same field (for example, `type:document` in `query` and `type:spreadsheet` in a filter) return an empty result set. See `Filter.field` for built-in field names and operators. Other nonblank field names are accepted as custom filters without validation; behavior depends on your connected sources. - time_range: - $ref: "#/components/schemas/PlatformTimeRange" - PlatformResult: + PlatformTriggerEventType: + type: string + description: The kind of event. + example: DOCUMENT_CHANGE + enum: + - DOCUMENT_CHANGE + x-enumDescriptions: + DOCUMENT_CHANGE: A document was created, updated, or deleted. + x-speakeasy-enum-descriptions: + DOCUMENT_CHANGE: A document was created, updated, or deleted. + PlatformTriggerEventReason: + type: string + description: Why the event fired. + example: REVIEW_REQUESTED + enum: + - CREATED + - UPDATED + - DELETED + - MEETS_CONDITION + - ASSIGNED + - UNASSIGNED + - LABELED + - UNLABELED + - REVIEW_REQUESTED + - REVIEW_REQUEST_REMOVED + - READY_FOR_REVIEW + - CONVERTED_TO_DRAFT + - WEBHOOK_UPDATED + x-enumDescriptions: + CREATED: The document was created. + UPDATED: The document was updated. + DELETED: The document was deleted. + MEETS_CONDITION: The document started matching the trigger's conditions. + ASSIGNED: The item was assigned to someone. + UNASSIGNED: The item was unassigned. + LABELED: A label was added. + UNLABELED: A label was removed. + REVIEW_REQUESTED: A review was requested. + REVIEW_REQUEST_REMOVED: A review request was withdrawn. + READY_FOR_REVIEW: A draft was marked ready for review. + CONVERTED_TO_DRAFT: The item was converted back to a draft. + WEBHOOK_UPDATED: The source system sent a webhook update. + x-speakeasy-enum-descriptions: + CREATED: The document was created. + UPDATED: The document was updated. + DELETED: The document was deleted. + MEETS_CONDITION: The document started matching the trigger's conditions. + ASSIGNED: The item was assigned to someone. + UNASSIGNED: The item was unassigned. + LABELED: A label was added. + UNLABELED: A label was removed. + REVIEW_REQUESTED: A review was requested. + REVIEW_REQUEST_REMOVED: A review request was withdrawn. + READY_FOR_REVIEW: A draft was marked ready for review. + CONVERTED_TO_DRAFT: The item was converted back to a draft. + WEBHOOK_UPDATED: The source system sent a webhook update. + PlatformTriggerEvent: type: object - additionalProperties: false required: - - url - - title + - event_type + - doc_id - datasource + - doc_type + - view_url + - title + - reason + - event_time + description: A content event a trigger can fire on. properties: - url: + event_type: + $ref: "#/components/schemas/PlatformTriggerEventType" + datasource: type: string - format: uri - minLength: 1 - description: Canonical URL of the result. - example: https://company.atlassian.net/wiki/spaces/ENG/pages/12345 + description: Datasource the event originated from. + example: GITHUB + reason: + $ref: "#/components/schemas/PlatformTriggerEventReason" + doc_type: + type: string + description: Datasource-specific object type. + example: pull + doc_id: + type: string + description: Identifier of the document the event is about. + view_url: + type: string + description: Link to the document in its source system. title: type: string - minLength: 1 - description: Result title. - example: Q2 2026 Platform Roadmap - snippets: + description: Title of the document, or the subject for email. + event_time: + type: string + format: date-time + description: "When the event happened at the source: the document's own change timestamp for a document change, and the scheduled time for a content schedule. Omitted when the source did not supply one." + PlatformTriggerEventSearchResponse: + type: object + required: + - results + - has_more + - request_id + properties: + results: type: array + description: Matching events, most recent first. items: - type: string - minLength: 1 - description: Query-relevant plain-text excerpts from the result body. - example: - - The platform team will focus on API stability and... - datasource: + $ref: "#/components/schemas/PlatformTriggerEvent" + has_more: + type: boolean + description: | + Whether more events matched than were returned. Raise `page_size` to see more; cursor-based paging is not offered yet. + request_id: type: string - minLength: 1 - description: The datasource this result originates from. - example: confluence - document_type: + description: Unique identifier for this request, for support and debugging. + PlatformTriggerPresetSummary: + type: object + required: + - preset_id + - datasource + - display_name + properties: + preset_id: type: string - nullable: true - minLength: 1 - description: The document type within the datasource. - example: page - creator: - $ref: "#/components/schemas/PlatformPersonReference" - owner: - $ref: "#/components/schemas/PlatformPersonReference" - updated_at: + description: ID of the preset. Pass this when creating a trigger. + example: GITHUB_1 + datasource: type: string - format: date-time - nullable: true - description: When the result was last modified. - created_at: + description: Datasource the preset fires on. + example: github + display_name: type: string - format: date-time - nullable: true - description: When the result was created. - PlatformSearchResponse: + description: Human-readable preset name. + example: Review requested from me + description: + type: string + description: Human-readable description of when the preset fires. + example: A review is requested from the trigger creator on a pull request + PlatformTriggerPresetListResponse: type: object - additionalProperties: false required: - results - has_more - next_cursor - request_id - - warnings properties: results: type: array + description: Trigger presets available to the caller. items: - $ref: "#/components/schemas/PlatformResult" - description: | - Ordered list of ranked document results. People cards, Q&A blocks, and other UI-only result types are not included. + $ref: "#/components/schemas/PlatformTriggerPresetSummary" has_more: type: boolean - description: Indicates whether additional pages of results are available. + description: Whether additional results are available. next_cursor: type: string nullable: true - description: Opaque token to pass as `cursor` in the next request. + description: Cursor for the next page, or null when no more results are available. request_id: type: string - minLength: 1 description: Platform-generated request ID for support correlation. - warnings: - type: array + PlatformTriggerPresetInputType: + type: string + description: Type of a preset input. + example: PICKLIST + enum: + - PICKLIST + - TEXT + - USER + PlatformTriggerPresetInputValue: + type: object + required: + - value + - display_name + properties: + value: + type: string description: | - Non-blocking warnings for this response. Required; use `[]` when there are none. Clients must tolerate unknown warning codes. `results_incomplete` means some results may be unavailable for the requested datasource scope while `results`, `has_more`, and `next_cursor` remain present. Warning messages are generic and do not include query text or internal identifiers. - items: - $ref: "#/components/schemas/PlatformWarning" - PlatformFilterFieldInfo: + The exact value to send in the trigger's `inputs` for this choice (e.g. a channel name, a user's email, etc). + example: acme/payments-api + display_name: + type: string + description: Human-readable name for this value. + example: acme/payments-api + PlatformTriggerPresetInput: type: object - additionalProperties: false required: - field - type - - operators + - display_name + - is_required properties: field: type: string - minLength: 1 - description: Field name usable in the `filters` array for `POST /api/search`. - example: status + description: Identifier of the input, supplied as a key in the trigger's `inputs`. + example: repository type: + $ref: "#/components/schemas/PlatformTriggerPresetInputType" + display_name: type: string - minLength: 1 - description: | - Open field-type string. Current values are `STRING` for text and keyword fields and `USER` for people fields (`owner`, `from`, `author`, `assignee`, `reporter`, `mentions`). Clients must tolerate unknown values. - example: STRING - operators: - type: array - minItems: 1 - description: | - Comparison operators supported for this field. Built-in fields expose `EQUALS` and `NOT_EQUALS`. - items: - $ref: "#/components/schemas/PlatformFilterOperator" + description: Human-readable name for the input. + example: Repository + is_required: + type: boolean + description: Whether the caller must supply a value for this input. values: type: array description: | - Suggested filter values observed for the supplied `query`. Omitted in catalog-only responses. Present as an array, including `[]`, when `query` is provided. Values are a bounded, non-exhaustive sample in search-provider order and may include duplicates; blank values are omitted. No additional endpoint-specific truncation is applied. Grouping in the search UI is not preserved; each value applies to the field broadly. An empty array does not mean no valid value exists. Availability varies by data source; federated and MCP integrations may return page-derived values or none at all. Reusing a suggested value in `POST /api/search` does not guarantee matching results or identical filter behavior. For `USER` fields, values may be email addresses or display names. + Bounded initial set of selectable values for a picklist input. Omitted entirely for free-text inputs. items: - type: string - minLength: 1 - PlatformDatasourceFilterInfo: + $ref: "#/components/schemas/PlatformTriggerPresetInputValue" + is_truncated: + type: boolean + description: | + Whether additional selectable values were omitted from `values`. When true, use GET /trigger-presets/{preset_id}/input-values with a query to narrow the result set. + PlatformTriggerPreset: + allOf: + - $ref: "#/components/schemas/PlatformTriggerPresetSummary" + - type: object + required: + - inputs + properties: + inputs: + type: array + description: Inputs the caller may supply when creating a trigger from this preset. + items: + $ref: "#/components/schemas/PlatformTriggerPresetInput" + PlatformTriggerPresetGetResponse: type: object - additionalProperties: false required: - - datasource - - filters + - trigger_preset + - request_id properties: - datasource: + trigger_preset: + $ref: "#/components/schemas/PlatformTriggerPreset" + request_id: type: string - minLength: 1 - description: | - Datasource identifier usable in `POST /api/search` `datasources`. - example: jira - filters: - type: array - description: | - Common built-in filter fields for this datasource. May be empty. A built-in omitted here can still be valid in `POST /api/search`; see `Filter.field` for the full built-in name list. - items: - $ref: "#/components/schemas/PlatformFilterFieldInfo" - PlatformSearchFiltersResponse: + description: Platform-generated request ID for support correlation. + PlatformTriggerPresetInputValueListResponse: type: object - additionalProperties: false required: - - datasources + - results + - is_truncated - request_id properties: - datasources: + results: type: array - description: | - Datasources visible to the authenticated user. Each `datasource` is an identifier you can pass to `POST /api/search` `datasources`. An empty array means no visible datasources. + description: The bounded set of selectable values matching the query. items: - $ref: "#/components/schemas/PlatformDatasourceFilterInfo" + $ref: "#/components/schemas/PlatformTriggerPresetInputValue" + is_truncated: + type: boolean + description: | + Whether additional matches were omitted. When true, refine `query` to narrow the result set. request_id: type: string - minLength: 1 description: Platform-generated request ID for support correlation. + PlatformTriggerPresetEventSearchRequest: + type: object + additionalProperties: false + properties: + inputs: + type: object + description: | + Values for the preset's input fields, keyed by field name. + additionalProperties: + type: string + example: + repository: acme/payments-api + page_size: + type: integer + description: Maximum number of events to return. + minimum: 1 + maximum: 100 + default: 10 ActivityEventParams: properties: bodyContent: @@ -9189,6 +10339,7 @@ components: properties: count: type: integer + format: int64 description: The counter value period: $ref: '#/components/schemas/Period' @@ -14344,6 +15495,7 @@ components: - OOO_PLANNER - OOO_CATCH_UP - ADMIN_HEALTH_CENTER + - KNOWLEDGE_GAP description: Categories of content requested. An allowlist gives flexibility to request content separately or together. requestOptions: $ref: '#/components/schemas/FeedRequestOptions' @@ -14369,6 +15521,19 @@ components: type: boolean description: show a "New" pill next to the item description: UI configurations for each item of the list + CalendarRoomBookingStatus: + type: string + enum: + - NONE + - ACCEPTED + - DECLINED + - PENDING + description: The current booking status of the room resource associated with an event. + x-enum-varnames: + - CALENDAR_ROOM_BOOKING_STATUS_NONE + - CALENDAR_ROOM_BOOKING_STATUS_ACCEPTED + - CALENDAR_ROOM_BOOKING_STATUS_DECLINED + - CALENDAR_ROOM_BOOKING_STATUS_PENDING ConferenceData: properties: provider: @@ -14473,6 +15638,15 @@ components: description: A permalink for this calendar event attendees: $ref: '#/components/schemas/CalendarAttendees' + isOrganizer: + type: boolean + description: Whether the requesting user is the organizer of this event. + nullable: true + roomBookingStatus: + $ref: '#/components/schemas/CalendarRoomBookingStatus' + roomName: + type: string + description: The display name of the room resource associated with this event. location: type: string description: The location that this event is taking place at. @@ -14773,6 +15947,7 @@ components: - STARTER_KIT_ORG_CHART - STARTER_KIT_ADD_DOC - MEETING_RECAP + - MEETING_ROOM - MEETING_PREP_AUTOMATION - ACTIVE_DISCUSSION - MID_DAY_CATCH_UP @@ -14789,6 +15964,7 @@ components: - OOO_PLANNER - OOO_CATCH_UP - ADMIN_HEALTH_CENTER + - KNOWLEDGE_GAP description: Type of the justification. justification: type: string @@ -14880,6 +16056,7 @@ components: - OOO_PLANNER - OOO_CATCH_UP - ADMIN_HEALTH_CENTER + - KNOWLEDGE_GAP description: Category of the result, one of the requested categories in incoming request. primaryEntry: $ref: '#/components/schemas/FeedEntry' @@ -14896,7 +16073,8 @@ components: enum: - ORGANIC - PROMO - description: Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. + - PINNED + description: Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). required: - category - primaryEntry @@ -18387,6 +19565,46 @@ components: schema: $ref: '#/components/schemas/ErrorInfoResponse' parameters: + TriggerWebhookId: + name: webhook-id + in: header + required: true + description: Opaque delivery ID. It remains stable across retries of the same event and can be used as an idempotency key. + schema: + type: string + minLength: 1 + example: msg_test_123 + TriggerWebhookTimestamp: + name: webhook-timestamp + in: header + required: true + description: Unix time in seconds when this delivery attempt was signed. + schema: + type: integer + format: int64 + example: 1700000000 + TriggerWebhookSignature: + name: webhook-signature + in: header + required: true + description: | + `v1,` followed by the standard Base64-encoded HMAC-SHA256 digest. To verify it, remove the + `whsec_` prefix from `signing_secret`, standard-Base64-decode the remainder, and use those + bytes as the HMAC key. Sign the UTF-8 bytes of `webhook-id + "." + webhook-timestamp + "." + + raw request body`. Verify the signature against the unmodified request body before + parsing JSON, and use a constant-time comparison. + + Fixed test vector (the raw body is one line with no trailing newline): + + - decoded signing key bytes (UTF-8; test only): `test_webhook_signing_secret_1234` + - `webhook-id`: `81e6dc877ac553ef96ecbc939c1e46431159491991ba55cd131fbd0e3746c6bc` + - `webhook-timestamp`: `1700000000` + - `raw request body`: `{"version":"1","trigger_id":"trigger_test_123","datasource":"GITHUB","reason":"REVIEW_REQUESTED","doc_type":"pull","event_type":"DOCUMENT_CHANGE","doc_id":"GITHUB_pull_123","view_url":"https://github.com/acme/payments-api/pull/123","title":"Add retry backoff to the crawler","event_time":"2025-04-23T11:00:00Z"}` + - `webhook-signature`: `v1,JqvHW0dwAOSLndiwQdXLUS/P+2RvOO8x4sOWgA/w0Gs=` + schema: + type: string + pattern: ^v1,[A-Za-z0-9+/=]+$ + example: v1,xxx locale: name: locale in: query diff --git a/.speakeasy/tests.arazzo.yaml b/.speakeasy/tests.arazzo.yaml index 97595ec6c..1f6aa2f31 100644 --- a/.speakeasy/tests.arazzo.yaml +++ b/.speakeasy/tests.arazzo.yaml @@ -164947,7 +164947,7 @@ workflows: - condition: $response.header.Content-Type == application/json - context: $response.body condition: | - {"id":"","object":"response","created_at":"2026-05-19T05:32:52.505Z","status":"completed","output":[{"type":"message","role":"assistant","content":[{"type":"output_text","text":""}]}],"store":false,"request_id":""} + {"id":"","object":"RESPONSE","created_at":"2026-05-19T05:32:52.505Z","status":"COMPLETED","output":[{"type":"MESSAGE","role":"ASSISTANT","content":[{"type":"OUTPUT_TEXT","text":""}]}],"store":false,"request_id":""} type: simple x-speakeasy-test-group: chat x-speakeasy-test-rebuild: true @@ -165172,3 +165172,185 @@ workflows: type: simple x-speakeasy-test-group: people x-speakeasy-test-rebuild: true + - workflowId: platform-triggers-create + steps: + - stepId: test + operationId: platform-triggers-create + requestBody: + contentType: application/json + payload: + delivery: + auth: + secret: secret_test_123 + type: BEARER + webhook_url: https://customer.app/webhook + description: Reviews I am tagged on, sent to my team's review channel + inputs: + repository: acme/payments-api + preset_id: GITHUB_1 + successCriteria: + - condition: $statusCode == 201 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"trigger":{"trigger_id":"trigger_test_123","preset_id":"GITHUB_1","description":"Reviews I am tagged on, sent to my team's review channel","status":"ENABLED","inputs":{"repository":"acme/payments-api"},"delivery":{"webhook_url":"https://customer.app/webhook"},"created_at":"2025-08-17T18:19:46.877Z","updated_at":"2024-09-14T03:27:40.201Z","signing_secret":"whsec_xxx"},"request_id":""} + type: simple + x-speakeasy-test-group: triggers + x-speakeasy-test-rebuild: true + - workflowId: platform-triggers-list + steps: + - stepId: test + operationId: platform-triggers-list + parameters: + - name: page_size + in: query + value: 50 + successCriteria: + - condition: $statusCode == 200 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"results":[],"has_more":true,"next_cursor":"","request_id":""} + type: simple + x-speakeasy-test-group: triggers + x-speakeasy-test-rebuild: true + - workflowId: platform-triggers-get + steps: + - stepId: test + operationId: platform-triggers-get + parameters: + - name: trigger_id + in: path + value: + successCriteria: + - condition: $statusCode == 200 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"trigger":{"trigger_id":"trigger_test_123","preset_id":"GITHUB_1","description":"Reviews I am tagged on, sent to my team's review channel","status":"ENABLED","inputs":{"repository":"acme/payments-api"},"delivery":{"webhook_url":"https://customer.app/webhook"},"created_at":"2024-01-06T01:37:37.232Z","updated_at":"2025-07-02T01:19:47.126Z"},"request_id":""} + type: simple + x-speakeasy-test-group: triggers + x-speakeasy-test-rebuild: true + - workflowId: platform-triggers-update + steps: + - stepId: test + operationId: platform-triggers-update + parameters: + - name: trigger_id + in: path + value: + requestBody: + contentType: application/json + payload: + delivery: + auth: + secret: secret_test_123 + type: BEARER + webhook_url: https://customer.app/webhook + description: Reviews I am tagged on, sent to my team's review channel + inputs: + repository: acme/payments-api + status: ENABLED + successCriteria: + - condition: $statusCode == 200 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"trigger":{"trigger_id":"trigger_test_123","preset_id":"GITHUB_1","description":"Reviews I am tagged on, sent to my team's review channel","status":"ENABLED","inputs":{"repository":"acme/payments-api"},"delivery":{"webhook_url":"https://customer.app/webhook"},"created_at":"2026-09-03T11:57:47.699Z","updated_at":"2026-01-25T02:15:09.513Z"},"request_id":""} + type: simple + x-speakeasy-test-group: triggers + x-speakeasy-test-rebuild: true + - workflowId: platform-triggers-events-search + steps: + - stepId: test + operationId: platform-triggers-events-search + parameters: + - name: trigger_id + in: path + value: + successCriteria: + - condition: $statusCode == 200 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"results":[{"event_type":"DOCUMENT_CHANGE","datasource":"GITHUB","reason":"REVIEW_REQUESTED","doc_type":"pull","doc_id":"","view_url":"https://silent-omelet.biz","title":"","event_time":"2024-06-12T22:23:25.274Z"}],"has_more":false,"request_id":""} + type: simple + x-speakeasy-test-group: triggers + x-speakeasy-test-rebuild: true + - workflowId: platform-trigger-presets-list + steps: + - stepId: test + operationId: platform-trigger-presets-list + parameters: + - name: page_size + in: query + value: 50 + successCriteria: + - condition: $statusCode == 200 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"results":[],"has_more":false,"next_cursor":null,"request_id":""} + type: simple + x-speakeasy-test-group: triggers + x-speakeasy-test-rebuild: true + - workflowId: platform-trigger-presets-get + steps: + - stepId: test + operationId: platform-trigger-presets-get + parameters: + - name: preset_id + in: path + value: + successCriteria: + - condition: $statusCode == 200 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"trigger_preset":{"preset_id":"GITHUB_1","datasource":"github","display_name":"Review requested from me","description":"A review is requested from the trigger creator on a pull request","inputs":[]},"request_id":""} + type: simple + x-speakeasy-test-group: triggers + x-speakeasy-test-rebuild: true + - workflowId: platform-trigger-presets-input-values-list + steps: + - stepId: test + operationId: platform-trigger-presets-input-values-list + parameters: + - name: preset_id + in: path + value: + - name: field + in: query + value: + successCriteria: + - condition: $statusCode == 200 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"results":[{"value":"acme/payments-api","display_name":"acme/payments-api"}],"is_truncated":false,"request_id":""} + type: simple + x-speakeasy-test-group: triggers + x-speakeasy-test-rebuild: true + - workflowId: platform-trigger-presets-events-search + steps: + - stepId: test + operationId: platform-trigger-presets-events-search + parameters: + - name: preset_id + in: path + value: + requestBody: + contentType: application/json + payload: + inputs: + repository: acme/payments-api + page_size: 10 + successCriteria: + - condition: $statusCode == 200 + - condition: $response.header.Content-Type == application/json + - context: $response.body + condition: | + {"results":[{"event_type":"DOCUMENT_CHANGE","datasource":"GITHUB","reason":"REVIEW_REQUESTED","doc_type":"pull","doc_id":"","view_url":"https://prickly-cutover.info/","title":"","event_time":"2025-04-15T15:45:31.544Z"}],"has_more":false,"request_id":""} + type: simple + x-speakeasy-test-group: triggers + x-speakeasy-test-rebuild: true diff --git a/.speakeasy/workflow.lock b/.speakeasy/workflow.lock index 2e375b22e..21a550b13 100644 --- a/.speakeasy/workflow.lock +++ b/.speakeasy/workflow.lock @@ -1,9 +1,9 @@ -speakeasyVersion: 1.792.0 +speakeasyVersion: 1.795.0 sources: Glean API: sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:ca77ef4550d695da210e8f0d32f3422d29e9d09f7aa66f7b13d248c6ec8c7941 - sourceBlobDigest: sha256:469de4cd2c8ab4928c3989656bf63cc265a8ceea5a8b3e3498734137b19723f8 + sourceRevisionDigest: sha256:b3b6186c1fc490a4c7a93241e0cef473ef4d3dcf4d667f1a92734f8883593d8a + sourceBlobDigest: sha256:27803264eea0040ad34885fe79ec3db1f2c7f2fa2eaf601ae9fc77e0408cb971 tags: - latest Glean Client API: @@ -17,10 +17,10 @@ targets: glean: source: Glean API sourceNamespace: glean-api-specs - sourceRevisionDigest: sha256:ca77ef4550d695da210e8f0d32f3422d29e9d09f7aa66f7b13d248c6ec8c7941 - sourceBlobDigest: sha256:469de4cd2c8ab4928c3989656bf63cc265a8ceea5a8b3e3498734137b19723f8 + sourceRevisionDigest: sha256:b3b6186c1fc490a4c7a93241e0cef473ef4d3dcf4d667f1a92734f8883593d8a + sourceBlobDigest: sha256:27803264eea0040ad34885fe79ec3db1f2c7f2fa2eaf601ae9fc77e0408cb971 codeSamplesNamespace: glean-api-specs-typescript-code-samples - codeSamplesRevisionDigest: sha256:2a5a5baffaf2d176ab8a34a66631e4780357e2999769595146e8400d7dd87e06 + codeSamplesRevisionDigest: sha256:51424c3cd77373d24d2b3ca6e99292bdf03e6b400fdb6b5ca3ed7b5b772862b8 workflow: workflowVersion: 1.0.0 speakeasyVersion: latest diff --git a/README.md b/README.md index 461cb8c09..a8c16d6c5 100644 --- a/README.md +++ b/README.md @@ -506,8 +506,8 @@ For more information on obtaining the appropriate token type, please contact you * [create](docs/sdks/skills/README.md#create) - Create skill * [list](docs/sdks/skills/README.md#list) - List skills -* [validate](docs/sdks/skills/README.md#validate) - Validate skill bundle * [import](docs/sdks/skills/README.md#import) - Import skills from GitHub +* [validate](docs/sdks/skills/README.md#validate) - Validate skill bundle * [previewSource](docs/sdks/skills/README.md#previewsource) - Preview a GitHub skill source * [update](docs/sdks/skills/README.md#update) - Update skill * [delete](docs/sdks/skills/README.md#delete) - Delete skill @@ -519,6 +519,19 @@ For more information on obtaining the appropriate token type, please contact you * [retrieveVersion](docs/sdks/skills/README.md#retrieveversion) - Retrieve skill version * [retrieveVersionContent](docs/sdks/skills/README.md#retrieveversioncontent) - Download skill version content +### [Triggers](docs/sdks/triggers/README.md) + +* [create](docs/sdks/triggers/README.md#create) - Create trigger +* [list](docs/sdks/triggers/README.md#list) - List triggers +* [get](docs/sdks/triggers/README.md#get) - Get trigger +* [update](docs/sdks/triggers/README.md#update) - Update trigger +* [delete](docs/sdks/triggers/README.md#delete) - Delete trigger +* [searchEvents](docs/sdks/triggers/README.md#searchevents) - Search events for a trigger +* [listPresets](docs/sdks/triggers/README.md#listpresets) - List trigger presets +* [getPreset](docs/sdks/triggers/README.md#getpreset) - Get trigger preset +* [listPresetInputValues](docs/sdks/triggers/README.md#listpresetinputvalues) - Search trigger preset input values +* [searchPresetEvents](docs/sdks/triggers/README.md#searchpresetevents) - Search events for a trigger preset + @@ -693,6 +706,16 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [`skillsSync`](docs/sdks/skills/README.md#sync) - Sync a GitHub-imported skill - [`skillsUpdate`](docs/sdks/skills/README.md#update) - Update skill - [`skillsValidate`](docs/sdks/skills/README.md#validate) - Validate skill bundle +- [`triggersCreate`](docs/sdks/triggers/README.md#create) - Create trigger +- [`triggersDelete`](docs/sdks/triggers/README.md#delete) - Delete trigger +- [`triggersGet`](docs/sdks/triggers/README.md#get) - Get trigger +- [`triggersGetPreset`](docs/sdks/triggers/README.md#getpreset) - Get trigger preset +- [`triggersList`](docs/sdks/triggers/README.md#list) - List triggers +- [`triggersListPresetInputValues`](docs/sdks/triggers/README.md#listpresetinputvalues) - Search trigger preset input values +- [`triggersListPresets`](docs/sdks/triggers/README.md#listpresets) - List trigger presets +- [`triggersSearchEvents`](docs/sdks/triggers/README.md#searchevents) - Search events for a trigger +- [`triggersSearchPresetEvents`](docs/sdks/triggers/README.md#searchpresetevents) - Search events for a trigger preset +- [`triggersUpdate`](docs/sdks/triggers/README.md#update) - Update trigger - ~~[`clientAnswersList`](docs/sdks/answers/README.md#list)~~ - List Answers :warning: **Deprecated** - ~~[`indexingDocumentsCount`](docs/sdks/indexingdocuments/README.md#count)~~ - Get document count :warning: **Deprecated** - ~~[`indexingDocumentsStatus`](docs/sdks/indexingdocuments/README.md#status)~~ - Get document upload and indexing status :warning: **Deprecated** @@ -880,6 +903,16 @@ To learn about this feature and how to get started, check - [`useSkillsSyncMutation`](docs/sdks/skills/README.md#sync) - Sync a GitHub-imported skill - [`useSkillsUpdateMutation`](docs/sdks/skills/README.md#update) - Update skill - [`useSkillsValidateMutation`](docs/sdks/skills/README.md#validate) - Validate skill bundle +- [`useTriggersCreateMutation`](docs/sdks/triggers/README.md#create) - Create trigger +- [`useTriggersDeleteMutation`](docs/sdks/triggers/README.md#delete) - Delete trigger +- [`useTriggersGet`](docs/sdks/triggers/README.md#get) - Get trigger +- [`useTriggersGetPreset`](docs/sdks/triggers/README.md#getpreset) - Get trigger preset +- [`useTriggersList`](docs/sdks/triggers/README.md#list) - List triggers +- [`useTriggersListPresetInputValues`](docs/sdks/triggers/README.md#listpresetinputvalues) - Search trigger preset input values +- [`useTriggersListPresets`](docs/sdks/triggers/README.md#listpresets) - List trigger presets +- [`useTriggersSearchEventsMutation`](docs/sdks/triggers/README.md#searchevents) - Search events for a trigger +- [`useTriggersSearchPresetEventsMutation`](docs/sdks/triggers/README.md#searchpresetevents) - Search events for a trigger preset +- [`useTriggersUpdateMutation`](docs/sdks/triggers/README.md#update) - Update trigger - ~~[`useClientAnswersListMutation`](docs/sdks/answers/README.md#list)~~ - List Answers :warning: **Deprecated** - ~~[`useIndexingDocumentsCountMutation`](docs/sdks/indexingdocuments/README.md#count)~~ - Get document count :warning: **Deprecated** - ~~[`useIndexingDocumentsStatusMutation`](docs/sdks/indexingdocuments/README.md#status)~~ - Get document upload and indexing status :warning: **Deprecated** diff --git a/RELEASES.md b/RELEASES.md index 43b84d973..eb3bd6a97 100644 --- a/RELEASES.md +++ b/RELEASES.md @@ -848,4 +848,14 @@ Based on: ### Generated - [typescript v0.18.1] . ### Releases -- [NPM v0.18.1] https://www.npmjs.com/package/@gleanwork/api-client/v/0.18.1 - . \ No newline at end of file +- [NPM v0.18.1] https://www.npmjs.com/package/@gleanwork/api-client/v/0.18.1 - . + +## 2026-08-20 00:59:28 +### Changes +Based on: +- OpenAPI Doc +- Speakeasy CLI 1.795.0 (2.931.0) https://github.com/speakeasy-api/speakeasy +### Generated +- [typescript v0.19.0] . +### Releases +- [NPM v0.19.0] https://www.npmjs.com/package/@gleanwork/api-client/v/0.19.0 - . \ No newline at end of file diff --git a/docs/models/callbacks/platformtriggerscreatetriggerwebhookeventrequest.md b/docs/models/callbacks/platformtriggerscreatetriggerwebhookeventrequest.md new file mode 100644 index 000000000..3c9cf7cbb --- /dev/null +++ b/docs/models/callbacks/platformtriggerscreatetriggerwebhookeventrequest.md @@ -0,0 +1,34 @@ +# PlatformTriggersCreateTriggerWebhookEventRequest + +## Example Usage + +```typescript +import { PlatformTriggersCreateTriggerWebhookEventRequest } from "@gleanwork/api-client/models/callbacks"; + +let value: PlatformTriggersCreateTriggerWebhookEventRequest = { + "webhook-id": "msg_test_123", + "webhook-timestamp": 1700000000, + "webhook-signature": "v1,xxx", + platformTriggerWebhookEvent: { + version: "1", + trigger_id: "trigger_test_123", + event_type: "DOCUMENT_CHANGE", + datasource: "GITHUB", + reason: "REVIEW_REQUESTED", + doc_type: "pull", + doc_id: "GITHUB_pull_123", + view_url: "https://github.com/acme/payments-api/pull/123", + title: "Add retry backoff to the crawler", + event_time: new Date("2025-04-23T11:00:00Z"), + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `webhookId` | *string* | :heavy_check_mark: | Opaque delivery ID. It remains stable across retries of the same event and can be used as an idempotency key. | msg_test_123 | +| `webhookTimestamp` | *number* | :heavy_check_mark: | Unix time in seconds when this delivery attempt was signed. | 1700000000 | +| `webhookSignature` | *string* | :heavy_check_mark: | `v1,` followed by the standard Base64-encoded HMAC-SHA256 digest. To verify it, remove the
`whsec_` prefix from `signing_secret`, standard-Base64-decode the remainder, and use those
bytes as the HMAC key. Sign the UTF-8 bytes of `webhook-id + "." + webhook-timestamp + "."
+ raw request body`. Verify the signature against the unmodified request body before
parsing JSON, and use a constant-time comparison.

Fixed test vector (the raw body is one line with no trailing newline):

- decoded signing key bytes (UTF-8; test only): `test_webhook_signing_secret_1234`
- `webhook-id`: `81e6dc877ac553ef96ecbc939c1e46431159491991ba55cd131fbd0e3746c6bc`
- `webhook-timestamp`: `1700000000`
- `raw request body`: `{"version":"1","trigger_id":"trigger_test_123","datasource":"GITHUB","reason":"REVIEW_REQUESTED","doc_type":"pull","event_type":"DOCUMENT_CHANGE","doc_id":"GITHUB_pull_123","view_url":"https://github.com/acme/payments-api/pull/123","title":"Add retry backoff to the crawler","event_time":"2025-04-23T11:00:00Z"}`
- `webhook-signature`: `v1,JqvHW0dwAOSLndiwQdXLUS/P+2RvOO8x4sOWgA/w0Gs=`
| v1,xxx | +| `platformTriggerWebhookEvent` | *components.PlatformTriggerWebhookEvent* | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/models/components/calendarevent.md b/docs/models/components/calendarevent.md index 5ad36d34e..bde3e0384 100644 --- a/docs/models/components/calendarevent.md +++ b/docs/models/components/calendarevent.md @@ -166,18 +166,21 @@ let value: CalendarEvent = { ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `time` | [components.TimeInterval](../../models/components/timeinterval.md) | :heavy_minus_sign: | N/A | -| `eventType` | [components.CalendarEventEventType](../../models/components/calendareventeventtype.md) | :heavy_minus_sign: | The nature of the event, for example "out of office". | -| `id` | *string* | :heavy_check_mark: | The calendar event id | -| `url` | *string* | :heavy_check_mark: | A permalink for this calendar event | -| `attendees` | [components.CalendarAttendees](../../models/components/calendarattendees.md) | :heavy_minus_sign: | N/A | -| `location` | *string* | :heavy_minus_sign: | The location that this event is taking place at. | -| `conferenceData` | [components.ConferenceData](../../models/components/conferencedata.md) | :heavy_minus_sign: | N/A | -| `description` | *string* | :heavy_minus_sign: | The HTML description of the event. | -| `datasource` | *string* | :heavy_minus_sign: | The app or other repository type from which the event was extracted | -| `hasTranscript` | *boolean* | :heavy_minus_sign: | The event has a transcript associated with it enabling features like summarization | -| `transcriptUrl` | *string* | :heavy_minus_sign: | A link to the transcript of the event | -| `classifications` | [components.EventClassification](../../models/components/eventclassification.md)[] | :heavy_minus_sign: | N/A | -| `generatedAttachments` | [components.GeneratedAttachment](../../models/components/generatedattachment.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `time` | [components.TimeInterval](../../models/components/timeinterval.md) | :heavy_minus_sign: | N/A | +| `eventType` | [components.CalendarEventEventType](../../models/components/calendareventeventtype.md) | :heavy_minus_sign: | The nature of the event, for example "out of office". | +| `id` | *string* | :heavy_check_mark: | The calendar event id | +| `url` | *string* | :heavy_check_mark: | A permalink for this calendar event | +| `attendees` | [components.CalendarAttendees](../../models/components/calendarattendees.md) | :heavy_minus_sign: | N/A | +| `isOrganizer` | *boolean* | :heavy_minus_sign: | Whether the requesting user is the organizer of this event. | +| `roomBookingStatus` | [components.CalendarRoomBookingStatus](../../models/components/calendarroombookingstatus.md) | :heavy_minus_sign: | The current booking status of the room resource associated with an event. | +| `roomName` | *string* | :heavy_minus_sign: | The display name of the room resource associated with this event. | +| `location` | *string* | :heavy_minus_sign: | The location that this event is taking place at. | +| `conferenceData` | [components.ConferenceData](../../models/components/conferencedata.md) | :heavy_minus_sign: | N/A | +| `description` | *string* | :heavy_minus_sign: | The HTML description of the event. | +| `datasource` | *string* | :heavy_minus_sign: | The app or other repository type from which the event was extracted | +| `hasTranscript` | *boolean* | :heavy_minus_sign: | The event has a transcript associated with it enabling features like summarization | +| `transcriptUrl` | *string* | :heavy_minus_sign: | A link to the transcript of the event | +| `classifications` | [components.EventClassification](../../models/components/eventclassification.md)[] | :heavy_minus_sign: | N/A | +| `generatedAttachments` | [components.GeneratedAttachment](../../models/components/generatedattachment.md)[] | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/components/calendarroombookingstatus.md b/docs/models/components/calendarroombookingstatus.md new file mode 100644 index 000000000..a94503826 --- /dev/null +++ b/docs/models/components/calendarroombookingstatus.md @@ -0,0 +1,19 @@ +# CalendarRoomBookingStatus + +The current booking status of the room resource associated with an event. + +## Example Usage + +```typescript +import { CalendarRoomBookingStatus } from "@gleanwork/api-client/models/components"; + +let value: CalendarRoomBookingStatus = "NONE"; + +// Open enum: unrecognized values are captured as Unrecognized +``` + +## Values + +```typescript +"NONE" | "ACCEPTED" | "DECLINED" | "PENDING" | Unrecognized +``` \ No newline at end of file diff --git a/docs/models/components/feedrequestcategory.md b/docs/models/components/feedrequestcategory.md index e5751cfd3..bdc9f8467 100644 --- a/docs/models/components/feedrequestcategory.md +++ b/docs/models/components/feedrequestcategory.md @@ -11,5 +11,5 @@ let value: FeedRequestCategory = "PLAN_MY_DAY"; ## Values ```typescript -"DOCUMENT_SUGGESTION" | "DOCUMENT_SUGGESTION_SCENARIO" | "TRENDING_DOCUMENT" | "VERIFICATION_REMINDER" | "EVENT" | "ANNOUNCEMENT" | "MENTION" | "DATASOURCE_AFFINITY" | "RECENT" | "COMPANY_RESOURCE" | "EXPERIMENTAL" | "PEOPLE_CELEBRATIONS" | "DISPLAYABLE_LIST" | "SOCIAL_LINK" | "EXTERNAL_TASKS" | "WORKFLOW_COLLECTIONS" | "ZERO_STATE_CHAT_SUGGESTION" | "ZERO_STATE_CHAT_TOOL_SUGGESTION" | "ZERO_STATE_WORKFLOW_CREATED_BY_ME" | "ZERO_STATE_WORKFLOW_FAVORITES" | "ZERO_STATE_WORKFLOW_POPULAR" | "ZERO_STATE_WORKFLOW_RECENT" | "ZERO_STATE_WORKFLOW_SUGGESTION" | "PERSONALIZED_CHAT_SUGGESTION" | "DAILY_DIGEST" | "PODCAST" | "TASK" | "PLAN_MY_DAY" | "END_MY_DAY" | "STARTER_KIT" | "MEETING_PREP_AUTOMATION" | "MID_DAY_CATCH_UP" | "QUERY_SUGGESTION" | "COWORK_CUJ_PROMO" | "CARD_STACK_PROMO" | "WEEKLY_MEETINGS" | "FOLLOW_UP" | "MILESTONE_TIMELINE_CHECK" | "PROJECT_DISCUSSION_DIGEST" | "PROJECT_FOCUS_BLOCK" | "PROJECT_NEXT_STEP" | "DEMO_CARD" | "OOO_PLANNER" | "OOO_CATCH_UP" | "ADMIN_HEALTH_CENTER" +"DOCUMENT_SUGGESTION" | "DOCUMENT_SUGGESTION_SCENARIO" | "TRENDING_DOCUMENT" | "VERIFICATION_REMINDER" | "EVENT" | "ANNOUNCEMENT" | "MENTION" | "DATASOURCE_AFFINITY" | "RECENT" | "COMPANY_RESOURCE" | "EXPERIMENTAL" | "PEOPLE_CELEBRATIONS" | "DISPLAYABLE_LIST" | "SOCIAL_LINK" | "EXTERNAL_TASKS" | "WORKFLOW_COLLECTIONS" | "ZERO_STATE_CHAT_SUGGESTION" | "ZERO_STATE_CHAT_TOOL_SUGGESTION" | "ZERO_STATE_WORKFLOW_CREATED_BY_ME" | "ZERO_STATE_WORKFLOW_FAVORITES" | "ZERO_STATE_WORKFLOW_POPULAR" | "ZERO_STATE_WORKFLOW_RECENT" | "ZERO_STATE_WORKFLOW_SUGGESTION" | "PERSONALIZED_CHAT_SUGGESTION" | "DAILY_DIGEST" | "PODCAST" | "TASK" | "PLAN_MY_DAY" | "END_MY_DAY" | "STARTER_KIT" | "MEETING_PREP_AUTOMATION" | "MID_DAY_CATCH_UP" | "QUERY_SUGGESTION" | "COWORK_CUJ_PROMO" | "CARD_STACK_PROMO" | "WEEKLY_MEETINGS" | "FOLLOW_UP" | "MILESTONE_TIMELINE_CHECK" | "PROJECT_DISCUSSION_DIGEST" | "PROJECT_FOCUS_BLOCK" | "PROJECT_NEXT_STEP" | "DEMO_CARD" | "OOO_PLANNER" | "OOO_CATCH_UP" | "ADMIN_HEALTH_CENTER" | "KNOWLEDGE_GAP" ``` \ No newline at end of file diff --git a/docs/models/components/feedresponse.md b/docs/models/components/feedresponse.md index 4dca9eb87..e0d78966c 100644 --- a/docs/models/components/feedresponse.md +++ b/docs/models/components/feedresponse.md @@ -9,7 +9,7 @@ let value: FeedResponse = { serverTimestamp: 603266, results: [ { - category: "EVENT", + category: "ANNOUNCEMENT", primaryEntry: { title: "", createdBy: { diff --git a/docs/models/components/feedresult.md b/docs/models/components/feedresult.md index 887a43f4d..e205a401a 100644 --- a/docs/models/components/feedresult.md +++ b/docs/models/components/feedresult.md @@ -6,7 +6,7 @@ import { FeedResult } from "@gleanwork/api-client/models/components"; let value: FeedResult = { - category: "CARD_STACK_PROMO", + category: "WEEKLY_MEETINGS", primaryEntry: { title: "", createdBy: { @@ -1228,10 +1228,10 @@ let value: FeedResult = { ## Fields -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `category` | [components.FeedResultCategory](../../models/components/feedresultcategory.md) | :heavy_check_mark: | Category of the result, one of the requested categories in incoming request. | -| `primaryEntry` | [components.FeedEntry](../../models/components/feedentry.md) | :heavy_check_mark: | N/A | -| `secondaryEntries` | [components.FeedEntry](../../models/components/feedentry.md)[] | :heavy_minus_sign: | Secondary entries for the result e.g. suggested docs for the calendar, carousel. | -| `rank` | *number* | :heavy_minus_sign: | Rank of the result. Rank is suggested by server. Client side rank may differ. | -| `placementReason` | [components.PlacementReason](../../models/components/placementreason.md) | :heavy_minus_sign: | Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `category` | [components.FeedResultCategory](../../models/components/feedresultcategory.md) | :heavy_check_mark: | Category of the result, one of the requested categories in incoming request. | +| `primaryEntry` | [components.FeedEntry](../../models/components/feedentry.md) | :heavy_check_mark: | N/A | +| `secondaryEntries` | [components.FeedEntry](../../models/components/feedentry.md)[] | :heavy_minus_sign: | Secondary entries for the result e.g. suggested docs for the calendar, carousel. | +| `rank` | *number* | :heavy_minus_sign: | Rank of the result. Rank is suggested by server. Client side rank may differ. | +| `placementReason` | [components.PlacementReason](../../models/components/placementreason.md) | :heavy_minus_sign: | Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). | \ No newline at end of file diff --git a/docs/models/components/feedresultcategory.md b/docs/models/components/feedresultcategory.md index e9d2d9253..36186d89c 100644 --- a/docs/models/components/feedresultcategory.md +++ b/docs/models/components/feedresultcategory.md @@ -15,5 +15,5 @@ let value: FeedResultCategory = "MEETING_PREP_AUTOMATION"; ## Values ```typescript -"DOCUMENT_SUGGESTION" | "DOCUMENT_SUGGESTION_SCENARIO" | "TRENDING_DOCUMENT" | "USE_CASE" | "VERIFICATION_REMINDER" | "EVENT" | "ANNOUNCEMENT" | "MENTION" | "DATASOURCE_AFFINITY" | "RECENT" | "COMPANY_RESOURCE" | "EXPERIMENTAL" | "PEOPLE_CELEBRATIONS" | "SOCIAL_LINK" | "EXTERNAL_TASKS" | "DISPLAYABLE_LIST" | "ZERO_STATE_CHAT_SUGGESTION" | "ZERO_STATE_CHAT_TOOL_SUGGESTION" | "ZERO_STATE_WORKFLOW_CREATED_BY_ME" | "ZERO_STATE_WORKFLOW_FAVORITES" | "ZERO_STATE_WORKFLOW_POPULAR" | "ZERO_STATE_WORKFLOW_RECENT" | "ZERO_STATE_WORKFLOW_SUGGESTION" | "PERSONALIZED_CHAT_SUGGESTION" | "DAILY_DIGEST" | "PODCAST" | "TASK" | "PLAN_MY_DAY" | "END_MY_DAY" | "STARTER_KIT" | "MEETING_PREP_AUTOMATION" | "MID_DAY_CATCH_UP" | "QUERY_SUGGESTION" | "COWORK_CUJ_PROMO" | "CARD_STACK_PROMO" | "WEEKLY_MEETINGS" | "FOLLOW_UP" | "MILESTONE_TIMELINE_CHECK" | "PROJECT_DISCUSSION_DIGEST" | "PROJECT_FOCUS_BLOCK" | "PROJECT_NEXT_STEP" | "DEMO_CARD" | "OOO_PLANNER" | "OOO_CATCH_UP" | "ADMIN_HEALTH_CENTER" | Unrecognized +"DOCUMENT_SUGGESTION" | "DOCUMENT_SUGGESTION_SCENARIO" | "TRENDING_DOCUMENT" | "USE_CASE" | "VERIFICATION_REMINDER" | "EVENT" | "ANNOUNCEMENT" | "MENTION" | "DATASOURCE_AFFINITY" | "RECENT" | "COMPANY_RESOURCE" | "EXPERIMENTAL" | "PEOPLE_CELEBRATIONS" | "SOCIAL_LINK" | "EXTERNAL_TASKS" | "DISPLAYABLE_LIST" | "ZERO_STATE_CHAT_SUGGESTION" | "ZERO_STATE_CHAT_TOOL_SUGGESTION" | "ZERO_STATE_WORKFLOW_CREATED_BY_ME" | "ZERO_STATE_WORKFLOW_FAVORITES" | "ZERO_STATE_WORKFLOW_POPULAR" | "ZERO_STATE_WORKFLOW_RECENT" | "ZERO_STATE_WORKFLOW_SUGGESTION" | "PERSONALIZED_CHAT_SUGGESTION" | "DAILY_DIGEST" | "PODCAST" | "TASK" | "PLAN_MY_DAY" | "END_MY_DAY" | "STARTER_KIT" | "MEETING_PREP_AUTOMATION" | "MID_DAY_CATCH_UP" | "QUERY_SUGGESTION" | "COWORK_CUJ_PROMO" | "CARD_STACK_PROMO" | "WEEKLY_MEETINGS" | "FOLLOW_UP" | "MILESTONE_TIMELINE_CHECK" | "PROJECT_DISCUSSION_DIGEST" | "PROJECT_FOCUS_BLOCK" | "PROJECT_NEXT_STEP" | "DEMO_CARD" | "OOO_PLANNER" | "OOO_CATCH_UP" | "ADMIN_HEALTH_CENTER" | "KNOWLEDGE_GAP" | Unrecognized ``` \ No newline at end of file diff --git a/docs/models/components/input.md b/docs/models/components/input.md index 96badd3b7..b45515ae4 100644 --- a/docs/models/components/input.md +++ b/docs/models/components/input.md @@ -1,6 +1,6 @@ # Input -Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. +Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. @@ -17,7 +17,7 @@ const value: string = ""; ```typescript const value: components.PlatformChatInputMessage[] = [ { - role: "user", + role: "USER", content: "", }, ]; diff --git a/docs/models/components/justificationtype.md b/docs/models/components/justificationtype.md index a2597f937..6eabb1799 100644 --- a/docs/models/components/justificationtype.md +++ b/docs/models/components/justificationtype.md @@ -7,7 +7,7 @@ Type of the justification. ```typescript import { JustificationType } from "@gleanwork/api-client/models/components"; -let value: JustificationType = "ZERO_STATE_STATIC_WORKFLOW_SUGGESTION"; +let value: JustificationType = "ZERO_STATE_AGENT_SUGGESTION"; // Open enum: unrecognized values are captured as Unrecognized ``` @@ -15,5 +15,5 @@ let value: JustificationType = "ZERO_STATE_STATIC_WORKFLOW_SUGGESTION"; ## Values ```typescript -"FREQUENTLY_ACCESSED" | "RECENTLY_ACCESSED" | "TRENDING_DOCUMENT" | "VERIFICATION_REMINDER" | "SUGGESTED_DOCUMENT" | "EMPTY_STATE_SUGGESTION" | "FRECENCY_SCORED" | "SERVER_GENERATED" | "USE_CASE" | "UPDATE_SINCE_LAST_VIEW" | "RECENTLY_STARTED" | "EVENT" | "USER_MENTION" | "ANNOUNCEMENT" | "EXTERNAL_ANNOUNCEMENT" | "POPULARITY_BASED_TRENDING" | "COMPANY_RESOURCE" | "EVENT_DOCUMENT_FROM_CONTENT" | "EVENT_DOCUMENT_FROM_SEARCH" | "VISIT_AFFINITY_SCORED" | "SUGGESTED_APP" | "SUGGESTED_PERSON" | "ACTIVITY_HIGHLIGHT" | "SAVED_SEARCH" | "SUGGESTED_CHANNEL" | "PEOPLE_CELEBRATIONS" | "SOCIAL_LINK" | "ZERO_STATE_CHAT_SUGGESTION" | "ZERO_STATE_CHAT_TOOL_SUGGESTION" | "ZERO_STATE_PROMPT_TEMPLATE_SUGGESTION" | "ZERO_STATE_STATIC_WORKFLOW_SUGGESTION" | "ZERO_STATE_AGENT_SUGGESTION" | "PERSONALIZED_CHAT_SUGGESTION" | "DAILY_DIGEST" | "PODCAST" | "TASK" | "PLAN_MY_DAY" | "END_MY_DAY" | "STARTER_KIT_EXTENSION" | "STARTER_KIT_ORG_CHART" | "STARTER_KIT_ADD_DOC" | "MEETING_RECAP" | "MEETING_PREP_AUTOMATION" | "ACTIVE_DISCUSSION" | "MID_DAY_CATCH_UP" | "QUERY_SUGGESTION" | "COWORK_CUJ_PROMO" | "CARD_STACK_PROMO" | "WEEKLY_MEETINGS" | "FOLLOW_UP" | "MILESTONE_TIMELINE_CHECK" | "PROJECT_DISCUSSION_DIGEST" | "PROJECT_FOCUS_BLOCK" | "PROJECT_NEXT_STEP" | "DEMO_CARD" | "OOO_PLANNER" | "OOO_CATCH_UP" | "ADMIN_HEALTH_CENTER" | Unrecognized +"FREQUENTLY_ACCESSED" | "RECENTLY_ACCESSED" | "TRENDING_DOCUMENT" | "VERIFICATION_REMINDER" | "SUGGESTED_DOCUMENT" | "EMPTY_STATE_SUGGESTION" | "FRECENCY_SCORED" | "SERVER_GENERATED" | "USE_CASE" | "UPDATE_SINCE_LAST_VIEW" | "RECENTLY_STARTED" | "EVENT" | "USER_MENTION" | "ANNOUNCEMENT" | "EXTERNAL_ANNOUNCEMENT" | "POPULARITY_BASED_TRENDING" | "COMPANY_RESOURCE" | "EVENT_DOCUMENT_FROM_CONTENT" | "EVENT_DOCUMENT_FROM_SEARCH" | "VISIT_AFFINITY_SCORED" | "SUGGESTED_APP" | "SUGGESTED_PERSON" | "ACTIVITY_HIGHLIGHT" | "SAVED_SEARCH" | "SUGGESTED_CHANNEL" | "PEOPLE_CELEBRATIONS" | "SOCIAL_LINK" | "ZERO_STATE_CHAT_SUGGESTION" | "ZERO_STATE_CHAT_TOOL_SUGGESTION" | "ZERO_STATE_PROMPT_TEMPLATE_SUGGESTION" | "ZERO_STATE_STATIC_WORKFLOW_SUGGESTION" | "ZERO_STATE_AGENT_SUGGESTION" | "PERSONALIZED_CHAT_SUGGESTION" | "DAILY_DIGEST" | "PODCAST" | "TASK" | "PLAN_MY_DAY" | "END_MY_DAY" | "STARTER_KIT_EXTENSION" | "STARTER_KIT_ORG_CHART" | "STARTER_KIT_ADD_DOC" | "MEETING_RECAP" | "MEETING_ROOM" | "MEETING_PREP_AUTOMATION" | "ACTIVE_DISCUSSION" | "MID_DAY_CATCH_UP" | "QUERY_SUGGESTION" | "COWORK_CUJ_PROMO" | "CARD_STACK_PROMO" | "WEEKLY_MEETINGS" | "FOLLOW_UP" | "MILESTONE_TIMELINE_CHECK" | "PROJECT_DISCUSSION_DIGEST" | "PROJECT_FOCUS_BLOCK" | "PROJECT_NEXT_STEP" | "DEMO_CARD" | "OOO_PLANNER" | "OOO_CATCH_UP" | "ADMIN_HEALTH_CENTER" | "KNOWLEDGE_GAP" | Unrecognized ``` \ No newline at end of file diff --git a/docs/models/components/objectt.md b/docs/models/components/objectt.md index a05893b27..127074910 100644 --- a/docs/models/components/objectt.md +++ b/docs/models/components/objectt.md @@ -5,11 +5,11 @@ ```typescript import { ObjectT } from "@gleanwork/api-client/models/components"; -let value: ObjectT = "response"; +let value: ObjectT = "RESPONSE"; ``` ## Values ```typescript -"response" +"RESPONSE" ``` \ No newline at end of file diff --git a/docs/models/components/placementreason.md b/docs/models/components/placementreason.md index 041fac880..adf60a35e 100644 --- a/docs/models/components/placementreason.md +++ b/docs/models/components/placementreason.md @@ -1,13 +1,13 @@ # PlacementReason -Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. +Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). ## Example Usage ```typescript import { PlacementReason } from "@gleanwork/api-client/models/components"; -let value: PlacementReason = "PROMO"; +let value: PlacementReason = "PINNED"; // Open enum: unrecognized values are captured as Unrecognized ``` @@ -15,5 +15,5 @@ let value: PlacementReason = "PROMO"; ## Values ```typescript -"ORGANIC" | "PROMO" | Unrecognized +"ORGANIC" | "PROMO" | "PINNED" | Unrecognized ``` \ No newline at end of file diff --git a/docs/models/components/platformchatcitationannotation.md b/docs/models/components/platformchatcitationannotation.md index ca81ae7d7..780576748 100644 --- a/docs/models/components/platformchatcitationannotation.md +++ b/docs/models/components/platformchatcitationannotation.md @@ -6,7 +6,7 @@ import { PlatformChatCitationAnnotation } from "@gleanwork/api-client/models/components"; let value: PlatformChatCitationAnnotation = { - type: "citation", + type: "CITATION", sources: [], }; ``` diff --git a/docs/models/components/platformchatcitationannotationtype.md b/docs/models/components/platformchatcitationannotationtype.md index 431d1e87d..9e95ef86a 100644 --- a/docs/models/components/platformchatcitationannotationtype.md +++ b/docs/models/components/platformchatcitationannotationtype.md @@ -5,11 +5,11 @@ ```typescript import { PlatformChatCitationAnnotationType } from "@gleanwork/api-client/models/components"; -let value: PlatformChatCitationAnnotationType = "citation"; +let value: PlatformChatCitationAnnotationType = "CITATION"; ``` ## Values ```typescript -"citation" +"CITATION" ``` \ No newline at end of file diff --git a/docs/models/components/platformchatcitationsource.md b/docs/models/components/platformchatcitationsource.md index 9a241d45d..5935ba186 100644 --- a/docs/models/components/platformchatcitationsource.md +++ b/docs/models/components/platformchatcitationsource.md @@ -9,7 +9,7 @@ Four-variant citation source union. ```typescript const value: components.PlatformChatDocumentSource = { - type: "document", + type: "DOCUMENT", document_id: "", }; ``` @@ -18,7 +18,7 @@ const value: components.PlatformChatDocumentSource = { ```typescript const value: components.PlatformChatPersonSource = { - type: "person", + type: "PERSON", person_id: "", }; ``` @@ -27,7 +27,7 @@ const value: components.PlatformChatPersonSource = { ```typescript const value: components.PlatformChatFileSource = { - type: "file", + type: "FILE", file_id: "", }; ``` @@ -36,7 +36,7 @@ const value: components.PlatformChatFileSource = { ```typescript const value: components.PlatformChatCustomEntitySource = { - type: "custom_entity", + type: "CUSTOM_ENTITY", entity_id: "", }; ``` diff --git a/docs/models/components/platformchatcompletedresponse.md b/docs/models/components/platformchatcompletedresponse.md index 4112c465b..532606ea1 100644 --- a/docs/models/components/platformchatcompletedresponse.md +++ b/docs/models/components/platformchatcompletedresponse.md @@ -7,13 +7,13 @@ import { PlatformChatCompletedResponse } from "@gleanwork/api-client/models/comp let value: PlatformChatCompletedResponse = { id: "", - object: "response", + object: "RESPONSE", created_at: new Date("2024-01-21T06:04:05.713Z"), - status: "completed", + status: "COMPLETED", output: [ { - type: "message", - role: "assistant", + type: "MESSAGE", + role: "ASSISTANT", content: [], }, ], diff --git a/docs/models/components/platformchatcompletedresponsestatus.md b/docs/models/components/platformchatcompletedresponsestatus.md index 2ccfe44a3..515cc88fa 100644 --- a/docs/models/components/platformchatcompletedresponsestatus.md +++ b/docs/models/components/platformchatcompletedresponsestatus.md @@ -5,11 +5,11 @@ ```typescript import { PlatformChatCompletedResponseStatus } from "@gleanwork/api-client/models/components"; -let value: PlatformChatCompletedResponseStatus = "completed"; +let value: PlatformChatCompletedResponseStatus = "COMPLETED"; ``` ## Values ```typescript -"completed" +"COMPLETED" ``` \ No newline at end of file diff --git a/docs/models/components/platformchatcreaterequest.md b/docs/models/components/platformchatcreaterequest.md index 867b1327a..12abbb633 100644 --- a/docs/models/components/platformchatcreaterequest.md +++ b/docs/models/components/platformchatcreaterequest.md @@ -14,7 +14,7 @@ let value: PlatformChatCreateRequest = { | Field | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | -| `input` | *components.Input* | :heavy_check_mark: | Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`.
| +| `input` | *components.Input* | :heavy_check_mark: | Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`.
| | `stream` | *boolean* | :heavy_minus_sign: | When true, respond with `text/event-stream`. When false or omitted, respond with `application/json`.
| | `store` | *boolean* | :heavy_minus_sign: | When true (default), persist the interaction and return a `conversation_id`. When false, run ephemerally with no persistence.
| | `conversationId` | *string* | :heavy_minus_sign: | Continue an existing stored conversation. Incompatible with message-array `input` and with `store: false`.
| \ No newline at end of file diff --git a/docs/models/components/platformchatcustomentitysource.md b/docs/models/components/platformchatcustomentitysource.md index b47aaca79..fcf4eebaf 100644 --- a/docs/models/components/platformchatcustomentitysource.md +++ b/docs/models/components/platformchatcustomentitysource.md @@ -6,7 +6,7 @@ import { PlatformChatCustomEntitySource } from "@gleanwork/api-client/models/components"; let value: PlatformChatCustomEntitySource = { - type: "custom_entity", + type: "CUSTOM_ENTITY", entity_id: "", }; ``` diff --git a/docs/models/components/platformchatcustomentitysourcetype.md b/docs/models/components/platformchatcustomentitysourcetype.md index 3d4c97aa1..8f4d9728e 100644 --- a/docs/models/components/platformchatcustomentitysourcetype.md +++ b/docs/models/components/platformchatcustomentitysourcetype.md @@ -5,11 +5,11 @@ ```typescript import { PlatformChatCustomEntitySourceType } from "@gleanwork/api-client/models/components"; -let value: PlatformChatCustomEntitySourceType = "custom_entity"; +let value: PlatformChatCustomEntitySourceType = "CUSTOM_ENTITY"; ``` ## Values ```typescript -"custom_entity" +"CUSTOM_ENTITY" ``` \ No newline at end of file diff --git a/docs/models/components/platformchatdocumentsource.md b/docs/models/components/platformchatdocumentsource.md index 5eb3a135b..8edc0e215 100644 --- a/docs/models/components/platformchatdocumentsource.md +++ b/docs/models/components/platformchatdocumentsource.md @@ -7,7 +7,7 @@ ```typescript const value: components.PlatformChatDocumentSourceDocument1 = { - type: "document", + type: "DOCUMENT", document_id: "", }; ``` @@ -16,7 +16,7 @@ const value: components.PlatformChatDocumentSourceDocument1 = { ```typescript const value: components.PlatformChatDocumentSourceDocument2 = { - type: "document", + type: "DOCUMENT", url: "https://webbed-cross-contamination.info", }; ``` diff --git a/docs/models/components/platformchatdocumentsourcedocument1.md b/docs/models/components/platformchatdocumentsourcedocument1.md index 1fc3303b7..19719d431 100644 --- a/docs/models/components/platformchatdocumentsourcedocument1.md +++ b/docs/models/components/platformchatdocumentsourcedocument1.md @@ -6,7 +6,7 @@ import { PlatformChatDocumentSourceDocument1 } from "@gleanwork/api-client/models/components"; let value: PlatformChatDocumentSourceDocument1 = { - type: "document", + type: "DOCUMENT", document_id: "", }; ``` diff --git a/docs/models/components/platformchatdocumentsourcedocument2.md b/docs/models/components/platformchatdocumentsourcedocument2.md index 6a2e15b10..f15d0ca3f 100644 --- a/docs/models/components/platformchatdocumentsourcedocument2.md +++ b/docs/models/components/platformchatdocumentsourcedocument2.md @@ -6,7 +6,7 @@ import { PlatformChatDocumentSourceDocument2 } from "@gleanwork/api-client/models/components"; let value: PlatformChatDocumentSourceDocument2 = { - type: "document", + type: "DOCUMENT", url: "https://webbed-cross-contamination.info", }; ``` diff --git a/docs/models/components/platformchatdocumentsourcetype1.md b/docs/models/components/platformchatdocumentsourcetype1.md index eeb86693b..5ee11e078 100644 --- a/docs/models/components/platformchatdocumentsourcetype1.md +++ b/docs/models/components/platformchatdocumentsourcetype1.md @@ -5,11 +5,11 @@ ```typescript import { PlatformChatDocumentSourceType1 } from "@gleanwork/api-client/models/components"; -let value: PlatformChatDocumentSourceType1 = "document"; +let value: PlatformChatDocumentSourceType1 = "DOCUMENT"; ``` ## Values ```typescript -"document" +"DOCUMENT" ``` \ No newline at end of file diff --git a/docs/models/components/platformchatdocumentsourcetype2.md b/docs/models/components/platformchatdocumentsourcetype2.md index 7dfc5ae26..e09115c45 100644 --- a/docs/models/components/platformchatdocumentsourcetype2.md +++ b/docs/models/components/platformchatdocumentsourcetype2.md @@ -5,11 +5,11 @@ ```typescript import { PlatformChatDocumentSourceType2 } from "@gleanwork/api-client/models/components"; -let value: PlatformChatDocumentSourceType2 = "document"; +let value: PlatformChatDocumentSourceType2 = "DOCUMENT"; ``` ## Values ```typescript -"document" +"DOCUMENT" ``` \ No newline at end of file diff --git a/docs/models/components/platformchatfilesource.md b/docs/models/components/platformchatfilesource.md index fabd2c2c0..f2b29054c 100644 --- a/docs/models/components/platformchatfilesource.md +++ b/docs/models/components/platformchatfilesource.md @@ -6,7 +6,7 @@ import { PlatformChatFileSource } from "@gleanwork/api-client/models/components"; let value: PlatformChatFileSource = { - type: "file", + type: "FILE", file_id: "", }; ``` diff --git a/docs/models/components/platformchatfilesourcetype.md b/docs/models/components/platformchatfilesourcetype.md index 5b838dd93..94501dd9e 100644 --- a/docs/models/components/platformchatfilesourcetype.md +++ b/docs/models/components/platformchatfilesourcetype.md @@ -5,11 +5,11 @@ ```typescript import { PlatformChatFileSourceType } from "@gleanwork/api-client/models/components"; -let value: PlatformChatFileSourceType = "file"; +let value: PlatformChatFileSourceType = "FILE"; ``` ## Values ```typescript -"file" +"FILE" ``` \ No newline at end of file diff --git a/docs/models/components/platformchatinputmessage.md b/docs/models/components/platformchatinputmessage.md index 0f2877e47..09e5bde52 100644 --- a/docs/models/components/platformchatinputmessage.md +++ b/docs/models/components/platformchatinputmessage.md @@ -6,7 +6,7 @@ import { PlatformChatInputMessage } from "@gleanwork/api-client/models/components"; let value: PlatformChatInputMessage = { - role: "user", + role: "USER", content: "", }; ``` diff --git a/docs/models/components/platformchatinputmessagerole.md b/docs/models/components/platformchatinputmessagerole.md index ec35150fd..137d0c860 100644 --- a/docs/models/components/platformchatinputmessagerole.md +++ b/docs/models/components/platformchatinputmessagerole.md @@ -5,11 +5,11 @@ ```typescript import { PlatformChatInputMessageRole } from "@gleanwork/api-client/models/components"; -let value: PlatformChatInputMessageRole = "user"; +let value: PlatformChatInputMessageRole = "USER"; ``` ## Values ```typescript -"user" | "assistant" +"USER" | "ASSISTANT" ``` \ No newline at end of file diff --git a/docs/models/components/platformchatoutputmessage.md b/docs/models/components/platformchatoutputmessage.md index 5d489223e..2e54ec787 100644 --- a/docs/models/components/platformchatoutputmessage.md +++ b/docs/models/components/platformchatoutputmessage.md @@ -6,8 +6,8 @@ import { PlatformChatOutputMessage } from "@gleanwork/api-client/models/components"; let value: PlatformChatOutputMessage = { - type: "message", - role: "assistant", + type: "MESSAGE", + role: "ASSISTANT", content: [], }; ``` diff --git a/docs/models/components/platformchatoutputmessagerole.md b/docs/models/components/platformchatoutputmessagerole.md index 117fb3c6c..9a34c0b72 100644 --- a/docs/models/components/platformchatoutputmessagerole.md +++ b/docs/models/components/platformchatoutputmessagerole.md @@ -5,11 +5,11 @@ ```typescript import { PlatformChatOutputMessageRole } from "@gleanwork/api-client/models/components"; -let value: PlatformChatOutputMessageRole = "assistant"; +let value: PlatformChatOutputMessageRole = "ASSISTANT"; ``` ## Values ```typescript -"assistant" +"ASSISTANT" ``` \ No newline at end of file diff --git a/docs/models/components/platformchatoutputmessagetype.md b/docs/models/components/platformchatoutputmessagetype.md index d5a2d1b69..c8d864be2 100644 --- a/docs/models/components/platformchatoutputmessagetype.md +++ b/docs/models/components/platformchatoutputmessagetype.md @@ -5,11 +5,11 @@ ```typescript import { PlatformChatOutputMessageType } from "@gleanwork/api-client/models/components"; -let value: PlatformChatOutputMessageType = "message"; +let value: PlatformChatOutputMessageType = "MESSAGE"; ``` ## Values ```typescript -"message" +"MESSAGE" ``` \ No newline at end of file diff --git a/docs/models/components/platformchatoutputtextcontent.md b/docs/models/components/platformchatoutputtextcontent.md index a1dcabf4a..9f1c7036a 100644 --- a/docs/models/components/platformchatoutputtextcontent.md +++ b/docs/models/components/platformchatoutputtextcontent.md @@ -6,7 +6,7 @@ import { PlatformChatOutputTextContent } from "@gleanwork/api-client/models/components"; let value: PlatformChatOutputTextContent = { - type: "output_text", + type: "OUTPUT_TEXT", text: "", }; ``` diff --git a/docs/models/components/platformchatoutputtextcontenttype.md b/docs/models/components/platformchatoutputtextcontenttype.md index 7e0207d7c..a99d06bd8 100644 --- a/docs/models/components/platformchatoutputtextcontenttype.md +++ b/docs/models/components/platformchatoutputtextcontenttype.md @@ -5,11 +5,11 @@ ```typescript import { PlatformChatOutputTextContentType } from "@gleanwork/api-client/models/components"; -let value: PlatformChatOutputTextContentType = "output_text"; +let value: PlatformChatOutputTextContentType = "OUTPUT_TEXT"; ``` ## Values ```typescript -"output_text" +"OUTPUT_TEXT" ``` \ No newline at end of file diff --git a/docs/models/components/platformchatpersonsource.md b/docs/models/components/platformchatpersonsource.md index 24526a8a2..e1689b9c8 100644 --- a/docs/models/components/platformchatpersonsource.md +++ b/docs/models/components/platformchatpersonsource.md @@ -6,7 +6,7 @@ import { PlatformChatPersonSource } from "@gleanwork/api-client/models/components"; let value: PlatformChatPersonSource = { - type: "person", + type: "PERSON", person_id: "", }; ``` diff --git a/docs/models/components/platformchatpersonsourcetype.md b/docs/models/components/platformchatpersonsourcetype.md index 79762d525..0a80c33b4 100644 --- a/docs/models/components/platformchatpersonsourcetype.md +++ b/docs/models/components/platformchatpersonsourcetype.md @@ -5,11 +5,11 @@ ```typescript import { PlatformChatPersonSourceType } from "@gleanwork/api-client/models/components"; -let value: PlatformChatPersonSourceType = "person"; +let value: PlatformChatPersonSourceType = "PERSON"; ``` ## Values ```typescript -"person" +"PERSON" ``` \ No newline at end of file diff --git a/docs/models/components/platformcontentschedulewebhookevent.md b/docs/models/components/platformcontentschedulewebhookevent.md new file mode 100644 index 000000000..303fc5436 --- /dev/null +++ b/docs/models/components/platformcontentschedulewebhookevent.md @@ -0,0 +1,37 @@ +# PlatformContentScheduleWebhookEvent + +## Example Usage + +```typescript +import { PlatformContentScheduleWebhookEvent } from "@gleanwork/api-client/models/components"; + +let value: PlatformContentScheduleWebhookEvent = { + version: "1", + trigger_id: "trigger_test_123", + event_type: "CONTENT_SCHEDULE", + datasource: "GOOGLECALENDAR", + reason: "CONTENT_SCHEDULE", + doc_type: "event", + doc_id: "GCAL_event_123", + view_url: "https://calendar.google.com/event?eid=abc", + title: "Weekly Sync", + event_time: new Date("2025-04-23T12:00:00Z"), + time_offset_seconds: 1800, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `version` | *string* | :heavy_check_mark: | Webhook payload schema version. | | +| `triggerId` | *string* | :heavy_check_mark: | ID of the Platform trigger that produced the event. | trigger_test_123 | +| `eventType` | *string* | :heavy_check_mark: | N/A | | +| `datasource` | *string* | :heavy_check_mark: | Datasource the event originated from. | GITHUB | +| `reason` | *string* | :heavy_check_mark: | Why the event fired. | REVIEW_REQUESTED | +| `docType` | *string* | :heavy_check_mark: | Datasource-specific object type. | pull | +| `docId` | *string* | :heavy_check_mark: | Identifier of the document the event is about. | GITHUB_pull_123 | +| `viewUrl` | *string* | :heavy_check_mark: | Link to the document in its source system. | https://github.com/acme/payments-api/pull/123 | +| `title` | *string* | :heavy_check_mark: | Title of the document, or the subject for email. | Bug: login fails on Safari | +| `eventTime` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | Relevant event time. Document changes use the source-observed time when available and otherwise the document ingestion time; content schedules use the scheduled time. Omitted when no timestamp is available. | | +| `timeOffsetSeconds` | *number* | :heavy_check_mark: | Offset in seconds from the scheduled time at which the trigger fired. | | \ No newline at end of file diff --git a/docs/models/components/platformdocumentchangewebhookevent.md b/docs/models/components/platformdocumentchangewebhookevent.md new file mode 100644 index 000000000..57a2bed10 --- /dev/null +++ b/docs/models/components/platformdocumentchangewebhookevent.md @@ -0,0 +1,37 @@ +# PlatformDocumentChangeWebhookEvent + +## Example Usage + +```typescript +import { PlatformDocumentChangeWebhookEvent } from "@gleanwork/api-client/models/components"; + +let value: PlatformDocumentChangeWebhookEvent = { + version: "1", + trigger_id: "trigger_test_123", + event_type: "DOCUMENT_CHANGE", + datasource: "GITHUB", + reason: "REVIEW_REQUESTED", + doc_type: "pull", + doc_id: "GITHUB_pull_123", + view_url: "https://github.com/acme/payments-api/pull/123", + title: "Add retry backoff to the crawler", + event_time: new Date("2025-04-23T11:00:00Z"), +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `version` | *string* | :heavy_check_mark: | Webhook payload schema version. | | +| `triggerId` | *string* | :heavy_check_mark: | ID of the Platform trigger that produced the event. | trigger_test_123 | +| `eventType` | *string* | :heavy_check_mark: | N/A | | +| `datasource` | *string* | :heavy_check_mark: | Datasource the event originated from. | GITHUB | +| `reason` | *string* | :heavy_check_mark: | Why the event fired. | REVIEW_REQUESTED | +| `docType` | *string* | :heavy_check_mark: | Datasource-specific object type. | pull | +| `docId` | *string* | :heavy_check_mark: | Identifier of the document the event is about. | GITHUB_pull_123 | +| `viewUrl` | *string* | :heavy_check_mark: | Link to the document in its source system. | https://github.com/acme/payments-api/pull/123 | +| `title` | *string* | :heavy_check_mark: | Title of the document, or the subject for email. | Bug: login fails on Safari | +| `eventTime` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | Relevant event time. Document changes use the source-observed time when available and otherwise the document ingestion time; content schedules use the scheduled time. Omitted when no timestamp is available. | | +| `content` | *string* | :heavy_minus_sign: | Email body content when the event is for an email document. | | +| `contentTruncated` | *boolean* | :heavy_minus_sign: | Present and true when source content exceeded the delivery size limit. | | \ No newline at end of file diff --git a/docs/models/components/platformtrigger.md b/docs/models/components/platformtrigger.md new file mode 100644 index 000000000..469781672 --- /dev/null +++ b/docs/models/components/platformtrigger.md @@ -0,0 +1,35 @@ +# PlatformTrigger + +## Example Usage + +```typescript +import { PlatformTrigger } from "@gleanwork/api-client/models/components"; + +let value: PlatformTrigger = { + trigger_id: "trigger_test_123", + preset_id: "GITHUB_1", + description: "Reviews I am tagged on, sent to my team's review channel", + status: "ENABLED", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + }, + created_at: new Date("2025-03-03T04:48:14.597Z"), + updated_at: new Date("2024-01-22T03:41:18.414Z"), +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `triggerId` | *string* | :heavy_check_mark: | ID of the trigger. | trigger_test_123 | +| `presetId` | *string* | :heavy_check_mark: | ID of the preset this trigger was created from. | GITHUB_1 | +| `description` | *string* | :heavy_minus_sign: | Optional caller-supplied note describing this trigger. | Reviews I am tagged on, sent to my team's review channel | +| `status` | [components.PlatformTriggerStatus](../../models/components/platformtriggerstatus.md) | :heavy_check_mark: | Current trigger lifecycle state. | ENABLED | +| `inputs` | Record | :heavy_minus_sign: | Values supplied for the preset's inputs. | {
"repository": "acme/payments-api"
} | +| `delivery` | [components.PlatformTriggerDeliveryOutput](../../models/components/platformtriggerdeliveryoutput.md) | :heavy_check_mark: | N/A | | +| `createdAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | Time the trigger was created. | | +| `updatedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | Time the trigger was last updated. | | \ No newline at end of file diff --git a/docs/models/components/platformtriggerauth.md b/docs/models/components/platformtriggerauth.md new file mode 100644 index 000000000..a24eafbfe --- /dev/null +++ b/docs/models/components/platformtriggerauth.md @@ -0,0 +1,21 @@ +# PlatformTriggerAuth + +Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. + +## Example Usage + +```typescript +import { PlatformTriggerAuth } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerAuth = { + type: "BEARER", + secret: "secret_test_123", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `type` | [components.PlatformTriggerAuthType](../../models/components/platformtriggerauthtype.md) | :heavy_check_mark: | Credential scheme. | | +| `secret` | *string* | :heavy_check_mark: | Secret credential value. Write-only; never returned on reads. | secret_test_123 | \ No newline at end of file diff --git a/docs/models/components/platformtriggerauthoutput.md b/docs/models/components/platformtriggerauthoutput.md new file mode 100644 index 000000000..a74128cac --- /dev/null +++ b/docs/models/components/platformtriggerauthoutput.md @@ -0,0 +1,19 @@ +# PlatformTriggerAuthOutput + +Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. + +## Example Usage + +```typescript +import { PlatformTriggerAuthOutput } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerAuthOutput = { + type: "BEARER", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `type` | [components.PlatformTriggerAuthType](../../models/components/platformtriggerauthtype.md) | :heavy_check_mark: | Credential scheme. | \ No newline at end of file diff --git a/docs/models/components/platformtriggerauthtype.md b/docs/models/components/platformtriggerauthtype.md new file mode 100644 index 000000000..aee6e6e3c --- /dev/null +++ b/docs/models/components/platformtriggerauthtype.md @@ -0,0 +1,17 @@ +# PlatformTriggerAuthType + +Credential scheme. + +## Example Usage + +```typescript +import { PlatformTriggerAuthType } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerAuthType = "BEARER"; +``` + +## Values + +```typescript +"BEARER" +``` \ No newline at end of file diff --git a/docs/models/components/platformtriggercreaterequest.md b/docs/models/components/platformtriggercreaterequest.md new file mode 100644 index 000000000..c6f166aa5 --- /dev/null +++ b/docs/models/components/platformtriggercreaterequest.md @@ -0,0 +1,31 @@ +# PlatformTriggerCreateRequest + +## Example Usage + +```typescript +import { PlatformTriggerCreateRequest } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerCreateRequest = { + preset_id: "GITHUB_1", + description: "Reviews I am tagged on, sent to my team's review channel", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + auth: { + type: "BEARER", + secret: "secret_test_123", + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `presetId` | *string* | :heavy_check_mark: | ID of the preset to instantiate. | GITHUB_1 | +| `description` | *string* | :heavy_minus_sign: | Optional note describing this trigger. | Reviews I am tagged on, sent to my team's review channel | +| `inputs` | Record | :heavy_minus_sign: | Values for the preset's inputs. | {
"repository": "acme/payments-api"
} | +| `delivery` | [components.PlatformTriggerDelivery](../../models/components/platformtriggerdelivery.md) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/docs/models/components/platformtriggercreateresponse.md b/docs/models/components/platformtriggercreateresponse.md new file mode 100644 index 000000000..f3692427f --- /dev/null +++ b/docs/models/components/platformtriggercreateresponse.md @@ -0,0 +1,33 @@ +# PlatformTriggerCreateResponse + +## Example Usage + +```typescript +import { PlatformTriggerCreateResponse } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerCreateResponse = { + trigger: { + trigger_id: "trigger_test_123", + preset_id: "GITHUB_1", + description: "Reviews I am tagged on, sent to my team's review channel", + status: "ENABLED", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + }, + created_at: new Date("2025-07-05T18:41:44.030Z"), + updated_at: new Date("2025-10-20T21:58:05.748Z"), + signing_secret: "whsec_xxx", + }, + request_id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `trigger` | [components.PlatformTriggerWithSecret](../../models/components/platformtriggerwithsecret.md) | :heavy_check_mark: | N/A | +| `requestId` | *string* | :heavy_check_mark: | Platform-generated request ID for support correlation. | \ No newline at end of file diff --git a/docs/models/components/platformtriggerdelivery.md b/docs/models/components/platformtriggerdelivery.md new file mode 100644 index 000000000..4c438f57c --- /dev/null +++ b/docs/models/components/platformtriggerdelivery.md @@ -0,0 +1,22 @@ +# PlatformTriggerDelivery + +## Example Usage + +```typescript +import { PlatformTriggerDelivery } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerDelivery = { + webhook_url: "https://customer.app/webhook", + auth: { + type: "BEARER", + secret: "secret_test_123", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `webhookUrl` | *string* | :heavy_check_mark: | HTTPS URL that signed events are delivered to. | https://customer.app/webhook | +| `auth` | [components.PlatformTriggerAuth](../../models/components/platformtriggerauth.md) | :heavy_minus_sign: | Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. | | \ No newline at end of file diff --git a/docs/models/components/platformtriggerdeliveryoutput.md b/docs/models/components/platformtriggerdeliveryoutput.md new file mode 100644 index 000000000..968ec662b --- /dev/null +++ b/docs/models/components/platformtriggerdeliveryoutput.md @@ -0,0 +1,18 @@ +# PlatformTriggerDeliveryOutput + +## Example Usage + +```typescript +import { PlatformTriggerDeliveryOutput } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerDeliveryOutput = { + webhook_url: "https://customer.app/webhook", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `webhookUrl` | *string* | :heavy_check_mark: | HTTPS URL that signed events are delivered to. | https://customer.app/webhook | +| `auth` | [components.PlatformTriggerAuthOutput](../../models/components/platformtriggerauthoutput.md) | :heavy_minus_sign: | Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. | | \ No newline at end of file diff --git a/docs/models/components/platformtriggerevent.md b/docs/models/components/platformtriggerevent.md new file mode 100644 index 000000000..354c5c272 --- /dev/null +++ b/docs/models/components/platformtriggerevent.md @@ -0,0 +1,33 @@ +# PlatformTriggerEvent + +A content event a trigger can fire on. + +## Example Usage + +```typescript +import { PlatformTriggerEvent } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerEvent = { + event_type: "DOCUMENT_CHANGE", + datasource: "GITHUB", + reason: "REVIEW_REQUESTED", + doc_type: "pull", + doc_id: "", + view_url: "https://obvious-publicity.biz", + title: "", + event_time: new Date("2024-08-18T23:25:53.054Z"), +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `eventType` | [components.PlatformTriggerEventType](../../models/components/platformtriggereventtype.md) | :heavy_check_mark: | The kind of event. | DOCUMENT_CHANGE | +| `datasource` | *string* | :heavy_check_mark: | Datasource the event originated from. | GITHUB | +| `reason` | [components.PlatformTriggerEventReason](../../models/components/platformtriggereventreason.md) | :heavy_check_mark: | Why the event fired. | REVIEW_REQUESTED | +| `docType` | *string* | :heavy_check_mark: | Datasource-specific object type. | pull | +| `docId` | *string* | :heavy_check_mark: | Identifier of the document the event is about. | | +| `viewUrl` | *string* | :heavy_check_mark: | Link to the document in its source system. | | +| `title` | *string* | :heavy_check_mark: | Title of the document, or the subject for email. | | +| `eventTime` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | When the event happened at the source: the document's own change timestamp for a document change, and the scheduled time for a content schedule. Omitted when the source did not supply one. | | \ No newline at end of file diff --git a/docs/models/components/platformtriggereventreason.md b/docs/models/components/platformtriggereventreason.md new file mode 100644 index 000000000..73ee39449 --- /dev/null +++ b/docs/models/components/platformtriggereventreason.md @@ -0,0 +1,19 @@ +# PlatformTriggerEventReason + +Why the event fired. + +## Example Usage + +```typescript +import { PlatformTriggerEventReason } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerEventReason = "REVIEW_REQUESTED"; + +// Open enum: unrecognized values are captured as Unrecognized +``` + +## Values + +```typescript +"CREATED" | "UPDATED" | "DELETED" | "MEETS_CONDITION" | "ASSIGNED" | "UNASSIGNED" | "LABELED" | "UNLABELED" | "REVIEW_REQUESTED" | "REVIEW_REQUEST_REMOVED" | "READY_FOR_REVIEW" | "CONVERTED_TO_DRAFT" | "WEBHOOK_UPDATED" | Unrecognized +``` \ No newline at end of file diff --git a/docs/models/components/platformtriggereventsearchrequest.md b/docs/models/components/platformtriggereventsearchrequest.md new file mode 100644 index 000000000..8f99ca432 --- /dev/null +++ b/docs/models/components/platformtriggereventsearchrequest.md @@ -0,0 +1,15 @@ +# PlatformTriggerEventSearchRequest + +## Example Usage + +```typescript +import { PlatformTriggerEventSearchRequest } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerEventSearchRequest = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `pageSize` | *number* | :heavy_minus_sign: | Maximum number of events to return. | \ No newline at end of file diff --git a/docs/models/components/platformtriggereventsearchresponse.md b/docs/models/components/platformtriggereventsearchresponse.md new file mode 100644 index 000000000..fafab438e --- /dev/null +++ b/docs/models/components/platformtriggereventsearchresponse.md @@ -0,0 +1,32 @@ +# PlatformTriggerEventSearchResponse + +## Example Usage + +```typescript +import { PlatformTriggerEventSearchResponse } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerEventSearchResponse = { + results: [ + { + event_type: "DOCUMENT_CHANGE", + datasource: "GITHUB", + reason: "REVIEW_REQUESTED", + doc_type: "pull", + doc_id: "", + view_url: "https://dreary-tomatillo.org", + title: "", + event_time: new Date("2024-10-08T00:01:41.999Z"), + }, + ], + has_more: true, + request_id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- | +| `results` | [components.PlatformTriggerEvent](../../models/components/platformtriggerevent.md)[] | :heavy_check_mark: | Matching events, most recent first. | +| `hasMore` | *boolean* | :heavy_check_mark: | Whether more events matched than were returned. Raise `page_size` to see more; cursor-based paging is not offered yet.
| +| `requestId` | *string* | :heavy_check_mark: | Unique identifier for this request, for support and debugging. | \ No newline at end of file diff --git a/docs/models/components/platformtriggereventtype.md b/docs/models/components/platformtriggereventtype.md new file mode 100644 index 000000000..b02cf6ef0 --- /dev/null +++ b/docs/models/components/platformtriggereventtype.md @@ -0,0 +1,17 @@ +# PlatformTriggerEventType + +The kind of event. + +## Example Usage + +```typescript +import { PlatformTriggerEventType } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerEventType = "DOCUMENT_CHANGE"; +``` + +## Values + +```typescript +"DOCUMENT_CHANGE" +``` \ No newline at end of file diff --git a/docs/models/components/platformtriggergetresponse.md b/docs/models/components/platformtriggergetresponse.md new file mode 100644 index 000000000..2f3966c23 --- /dev/null +++ b/docs/models/components/platformtriggergetresponse.md @@ -0,0 +1,32 @@ +# PlatformTriggerGetResponse + +## Example Usage + +```typescript +import { PlatformTriggerGetResponse } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerGetResponse = { + trigger: { + trigger_id: "trigger_test_123", + preset_id: "GITHUB_1", + description: "Reviews I am tagged on, sent to my team's review channel", + status: "ENABLED", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + }, + created_at: new Date("2024-05-30T01:29:53.487Z"), + updated_at: new Date("2026-05-07T15:51:22.117Z"), + }, + request_id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `trigger` | [components.PlatformTrigger](../../models/components/platformtrigger.md) | :heavy_check_mark: | N/A | +| `requestId` | *string* | :heavy_check_mark: | Platform-generated request ID for support correlation. | \ No newline at end of file diff --git a/docs/models/components/platformtriggerlistresponse.md b/docs/models/components/platformtriggerlistresponse.md new file mode 100644 index 000000000..7c6564db0 --- /dev/null +++ b/docs/models/components/platformtriggerlistresponse.md @@ -0,0 +1,38 @@ +# PlatformTriggerListResponse + +## Example Usage + +```typescript +import { PlatformTriggerListResponse } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerListResponse = { + results: [ + { + trigger_id: "trigger_test_123", + preset_id: "GITHUB_1", + description: "Reviews I am tagged on, sent to my team's review channel", + status: "ENABLED", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + }, + created_at: new Date("2026-04-29T00:04:28.593Z"), + updated_at: new Date("2025-06-11T17:14:57.708Z"), + }, + ], + has_more: true, + next_cursor: null, + request_id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `results` | [components.PlatformTrigger](../../models/components/platformtrigger.md)[] | :heavy_check_mark: | Triggers owned by the caller. | +| `hasMore` | *boolean* | :heavy_check_mark: | Whether additional results are available. | +| `nextCursor` | *string* | :heavy_check_mark: | Cursor for the next page, or null when no more results are available. | +| `requestId` | *string* | :heavy_check_mark: | Platform-generated request ID for support correlation. | \ No newline at end of file diff --git a/docs/models/components/platformtriggerpreset.md b/docs/models/components/platformtriggerpreset.md new file mode 100644 index 000000000..b3ef72c94 --- /dev/null +++ b/docs/models/components/platformtriggerpreset.md @@ -0,0 +1,26 @@ +# PlatformTriggerPreset + +## Example Usage + +```typescript +import { PlatformTriggerPreset } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerPreset = { + preset_id: "GITHUB_1", + datasource: "github", + display_name: "Review requested from me", + description: + "A review is requested from the trigger creator on a pull request", + inputs: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `presetId` | *string* | :heavy_check_mark: | ID of the preset. Pass this when creating a trigger. | GITHUB_1 | +| `datasource` | *string* | :heavy_check_mark: | Datasource the preset fires on. | github | +| `displayName` | *string* | :heavy_check_mark: | Human-readable preset name. | Review requested from me | +| `description` | *string* | :heavy_minus_sign: | Human-readable description of when the preset fires. | A review is requested from the trigger creator on a pull request | +| `inputs` | [components.PlatformTriggerPresetInput](../../models/components/platformtriggerpresetinput.md)[] | :heavy_check_mark: | Inputs the caller may supply when creating a trigger from this preset. | | \ No newline at end of file diff --git a/docs/models/components/platformtriggerpreseteventsearchrequest.md b/docs/models/components/platformtriggerpreseteventsearchrequest.md new file mode 100644 index 000000000..37e0dde72 --- /dev/null +++ b/docs/models/components/platformtriggerpreseteventsearchrequest.md @@ -0,0 +1,20 @@ +# PlatformTriggerPresetEventSearchRequest + +## Example Usage + +```typescript +import { PlatformTriggerPresetEventSearchRequest } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerPresetEventSearchRequest = { + inputs: { + "repository": "acme/payments-api", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| `inputs` | Record | :heavy_minus_sign: | Values for the preset's input fields, keyed by field name.
| {
"repository": "acme/payments-api"
} | +| `pageSize` | *number* | :heavy_minus_sign: | Maximum number of events to return. | | \ No newline at end of file diff --git a/docs/models/components/platformtriggerpresetgetresponse.md b/docs/models/components/platformtriggerpresetgetresponse.md new file mode 100644 index 000000000..9283080a9 --- /dev/null +++ b/docs/models/components/platformtriggerpresetgetresponse.md @@ -0,0 +1,26 @@ +# PlatformTriggerPresetGetResponse + +## Example Usage + +```typescript +import { PlatformTriggerPresetGetResponse } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerPresetGetResponse = { + trigger_preset: { + preset_id: "GITHUB_1", + datasource: "github", + display_name: "Review requested from me", + description: + "A review is requested from the trigger creator on a pull request", + inputs: [], + }, + request_id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `triggerPreset` | [components.PlatformTriggerPreset](../../models/components/platformtriggerpreset.md) | :heavy_check_mark: | N/A | +| `requestId` | *string* | :heavy_check_mark: | Platform-generated request ID for support correlation. | \ No newline at end of file diff --git a/docs/models/components/platformtriggerpresetinput.md b/docs/models/components/platformtriggerpresetinput.md new file mode 100644 index 000000000..82c21d670 --- /dev/null +++ b/docs/models/components/platformtriggerpresetinput.md @@ -0,0 +1,31 @@ +# PlatformTriggerPresetInput + +## Example Usage + +```typescript +import { PlatformTriggerPresetInput } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerPresetInput = { + field: "repository", + type: "PICKLIST", + display_name: "Repository", + is_required: false, + values: [ + { + value: "acme/payments-api", + display_name: "acme/payments-api", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `field` | *string* | :heavy_check_mark: | Identifier of the input, supplied as a key in the trigger's `inputs`. | repository | +| `type` | [components.PlatformTriggerPresetInputType](../../models/components/platformtriggerpresetinputtype.md) | :heavy_check_mark: | Type of a preset input. | PICKLIST | +| `displayName` | *string* | :heavy_check_mark: | Human-readable name for the input. | Repository | +| `isRequired` | *boolean* | :heavy_check_mark: | Whether the caller must supply a value for this input. | | +| `values` | [components.PlatformTriggerPresetInputValue](../../models/components/platformtriggerpresetinputvalue.md)[] | :heavy_minus_sign: | Bounded initial set of selectable values for a picklist input. Omitted entirely for free-text inputs.
| | +| `isTruncated` | *boolean* | :heavy_minus_sign: | Whether additional selectable values were omitted from `values`. When true, use GET /trigger-presets/{preset_id}/input-values with a query to narrow the result set.
| | \ No newline at end of file diff --git a/docs/models/components/platformtriggerpresetinputtype.md b/docs/models/components/platformtriggerpresetinputtype.md new file mode 100644 index 000000000..aebdcb837 --- /dev/null +++ b/docs/models/components/platformtriggerpresetinputtype.md @@ -0,0 +1,19 @@ +# PlatformTriggerPresetInputType + +Type of a preset input. + +## Example Usage + +```typescript +import { PlatformTriggerPresetInputType } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerPresetInputType = "PICKLIST"; + +// Open enum: unrecognized values are captured as Unrecognized +``` + +## Values + +```typescript +"PICKLIST" | "TEXT" | "USER" | Unrecognized +``` \ No newline at end of file diff --git a/docs/models/components/platformtriggerpresetinputvalue.md b/docs/models/components/platformtriggerpresetinputvalue.md new file mode 100644 index 000000000..557da9915 --- /dev/null +++ b/docs/models/components/platformtriggerpresetinputvalue.md @@ -0,0 +1,19 @@ +# PlatformTriggerPresetInputValue + +## Example Usage + +```typescript +import { PlatformTriggerPresetInputValue } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerPresetInputValue = { + value: "acme/payments-api", + display_name: "acme/payments-api", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `value` | *string* | :heavy_check_mark: | The exact value to send in the trigger's `inputs` for this choice (e.g. a channel name, a user's email, etc).
| acme/payments-api | +| `displayName` | *string* | :heavy_check_mark: | Human-readable name for this value. | acme/payments-api | \ No newline at end of file diff --git a/docs/models/components/platformtriggerpresetinputvaluelistresponse.md b/docs/models/components/platformtriggerpresetinputvaluelistresponse.md new file mode 100644 index 000000000..ab8a047d2 --- /dev/null +++ b/docs/models/components/platformtriggerpresetinputvaluelistresponse.md @@ -0,0 +1,26 @@ +# PlatformTriggerPresetInputValueListResponse + +## Example Usage + +```typescript +import { PlatformTriggerPresetInputValueListResponse } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerPresetInputValueListResponse = { + results: [ + { + value: "acme/payments-api", + display_name: "acme/payments-api", + }, + ], + is_truncated: false, + request_id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `results` | [components.PlatformTriggerPresetInputValue](../../models/components/platformtriggerpresetinputvalue.md)[] | :heavy_check_mark: | The bounded set of selectable values matching the query. | +| `isTruncated` | *boolean* | :heavy_check_mark: | Whether additional matches were omitted. When true, refine `query` to narrow the result set.
| +| `requestId` | *string* | :heavy_check_mark: | Platform-generated request ID for support correlation. | \ No newline at end of file diff --git a/docs/models/components/platformtriggerpresetlistresponse.md b/docs/models/components/platformtriggerpresetlistresponse.md new file mode 100644 index 000000000..dc5546d57 --- /dev/null +++ b/docs/models/components/platformtriggerpresetlistresponse.md @@ -0,0 +1,31 @@ +# PlatformTriggerPresetListResponse + +## Example Usage + +```typescript +import { PlatformTriggerPresetListResponse } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerPresetListResponse = { + results: [ + { + preset_id: "GITHUB_1", + datasource: "github", + display_name: "Review requested from me", + description: + "A review is requested from the trigger creator on a pull request", + }, + ], + has_more: true, + next_cursor: "", + request_id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `results` | [components.PlatformTriggerPresetSummary](../../models/components/platformtriggerpresetsummary.md)[] | :heavy_check_mark: | Trigger presets available to the caller. | +| `hasMore` | *boolean* | :heavy_check_mark: | Whether additional results are available. | +| `nextCursor` | *string* | :heavy_check_mark: | Cursor for the next page, or null when no more results are available. | +| `requestId` | *string* | :heavy_check_mark: | Platform-generated request ID for support correlation. | \ No newline at end of file diff --git a/docs/models/components/platformtriggerpresetsummary.md b/docs/models/components/platformtriggerpresetsummary.md new file mode 100644 index 000000000..44ba35421 --- /dev/null +++ b/docs/models/components/platformtriggerpresetsummary.md @@ -0,0 +1,24 @@ +# PlatformTriggerPresetSummary + +## Example Usage + +```typescript +import { PlatformTriggerPresetSummary } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerPresetSummary = { + preset_id: "GITHUB_1", + datasource: "github", + display_name: "Review requested from me", + description: + "A review is requested from the trigger creator on a pull request", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `presetId` | *string* | :heavy_check_mark: | ID of the preset. Pass this when creating a trigger. | GITHUB_1 | +| `datasource` | *string* | :heavy_check_mark: | Datasource the preset fires on. | github | +| `displayName` | *string* | :heavy_check_mark: | Human-readable preset name. | Review requested from me | +| `description` | *string* | :heavy_minus_sign: | Human-readable description of when the preset fires. | A review is requested from the trigger creator on a pull request | \ No newline at end of file diff --git a/docs/models/components/platformtriggerstatus.md b/docs/models/components/platformtriggerstatus.md new file mode 100644 index 000000000..ca9ec29d8 --- /dev/null +++ b/docs/models/components/platformtriggerstatus.md @@ -0,0 +1,19 @@ +# PlatformTriggerStatus + +Current trigger lifecycle state. + +## Example Usage + +```typescript +import { PlatformTriggerStatus } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerStatus = "ENABLED"; + +// Open enum: unrecognized values are captured as Unrecognized +``` + +## Values + +```typescript +"ENABLED" | "DISABLED" | Unrecognized +``` \ No newline at end of file diff --git a/docs/models/components/platformtriggerupdaterequest.md b/docs/models/components/platformtriggerupdaterequest.md new file mode 100644 index 000000000..7bdf39359 --- /dev/null +++ b/docs/models/components/platformtriggerupdaterequest.md @@ -0,0 +1,33 @@ +# PlatformTriggerUpdateRequest + +Partial update. Only the supplied fields are changed. + +## Example Usage + +```typescript +import { PlatformTriggerUpdateRequest } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerUpdateRequest = { + status: "ENABLED", + description: "Reviews I am tagged on, sent to my team's review channel", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + auth: { + type: "BEARER", + secret: "secret_test_123", + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `status` | [components.PlatformTriggerStatus](../../models/components/platformtriggerstatus.md) | :heavy_minus_sign: | Current trigger lifecycle state. | ENABLED | +| `description` | *string* | :heavy_minus_sign: | Optional note describing this trigger. | Reviews I am tagged on, sent to my team's review channel | +| `inputs` | Record | :heavy_minus_sign: | Values for the preset's inputs. | {
"repository": "acme/payments-api"
} | +| `delivery` | [components.PlatformTriggerDelivery](../../models/components/platformtriggerdelivery.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/docs/models/components/platformtriggerwebhookevent.md b/docs/models/components/platformtriggerwebhookevent.md new file mode 100644 index 000000000..57b7e8f45 --- /dev/null +++ b/docs/models/components/platformtriggerwebhookevent.md @@ -0,0 +1,42 @@ +# PlatformTriggerWebhookEvent + +Every delivered webhook is one of these two variants. A trigger with a cron schedule carries no document and so cannot be delivered over a webhook. + + +## Supported Types + +### `components.PlatformDocumentChangeWebhookEvent` + +```typescript +const value: components.PlatformDocumentChangeWebhookEvent = { + version: "1", + trigger_id: "trigger_test_123", + event_type: "DOCUMENT_CHANGE", + datasource: "GITHUB", + reason: "REVIEW_REQUESTED", + doc_type: "pull", + doc_id: "GITHUB_pull_123", + view_url: "https://github.com/acme/payments-api/pull/123", + title: "Add retry backoff to the crawler", + event_time: new Date("2025-04-23T11:00:00Z"), +}; +``` + +### `components.PlatformContentScheduleWebhookEvent` + +```typescript +const value: components.PlatformContentScheduleWebhookEvent = { + version: "1", + trigger_id: "trigger_test_123", + event_type: "CONTENT_SCHEDULE", + datasource: "GOOGLECALENDAR", + reason: "CONTENT_SCHEDULE", + doc_type: "event", + doc_id: "GCAL_event_123", + view_url: "https://calendar.google.com/event?eid=abc", + title: "Weekly Sync", + event_time: new Date("2025-04-23T12:00:00Z"), + time_offset_seconds: 1800, +}; +``` + diff --git a/docs/models/components/platformtriggerwithsecret.md b/docs/models/components/platformtriggerwithsecret.md new file mode 100644 index 000000000..f917b0a7d --- /dev/null +++ b/docs/models/components/platformtriggerwithsecret.md @@ -0,0 +1,37 @@ +# PlatformTriggerWithSecret + +## Example Usage + +```typescript +import { PlatformTriggerWithSecret } from "@gleanwork/api-client/models/components"; + +let value: PlatformTriggerWithSecret = { + trigger_id: "trigger_test_123", + preset_id: "GITHUB_1", + description: "Reviews I am tagged on, sent to my team's review channel", + status: "ENABLED", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + }, + created_at: new Date("2025-11-01T19:32:18.099Z"), + updated_at: new Date("2026-09-21T18:05:33.058Z"), + signing_secret: "whsec_xxx", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `triggerId` | *string* | :heavy_check_mark: | ID of the trigger. | trigger_test_123 | +| `presetId` | *string* | :heavy_check_mark: | ID of the preset this trigger was created from. | GITHUB_1 | +| `description` | *string* | :heavy_minus_sign: | Optional caller-supplied note describing this trigger. | Reviews I am tagged on, sent to my team's review channel | +| `status` | [components.PlatformTriggerStatus](../../models/components/platformtriggerstatus.md) | :heavy_check_mark: | Current trigger lifecycle state. | ENABLED | +| `inputs` | Record | :heavy_minus_sign: | Values supplied for the preset's inputs. | {
"repository": "acme/payments-api"
} | +| `delivery` | [components.PlatformTriggerDeliveryOutput](../../models/components/platformtriggerdeliveryoutput.md) | :heavy_check_mark: | N/A | | +| `createdAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | Time the trigger was created. | | +| `updatedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | Time the trigger was last updated. | | +| `signingSecret` | *string* | :heavy_check_mark: | Secret for verifying webhook signatures, serialized as `whsec_` following Standard Webhooks. Returned only when the trigger is created and cannot be retrieved later. Store it securely. | whsec_xxx | \ No newline at end of file diff --git a/docs/models/operations/platformchatcreateresponse.md b/docs/models/operations/platformchatcreateresponse.md index 2772585cc..d5d70fb1b 100644 --- a/docs/models/operations/platformchatcreateresponse.md +++ b/docs/models/operations/platformchatcreateresponse.md @@ -8,13 +8,13 @@ ```typescript const value: components.PlatformChatCompletedResponse = { id: "", - object: "response", + object: "RESPONSE", created_at: new Date("2024-01-21T06:04:05.713Z"), - status: "completed", + status: "COMPLETED", output: [ { - type: "message", - role: "assistant", + type: "MESSAGE", + role: "ASSISTANT", content: [], }, ], diff --git a/docs/models/operations/platformtriggerpresetseventssearchrequest.md b/docs/models/operations/platformtriggerpresetseventssearchrequest.md new file mode 100644 index 000000000..ccc1014cc --- /dev/null +++ b/docs/models/operations/platformtriggerpresetseventssearchrequest.md @@ -0,0 +1,18 @@ +# PlatformTriggerPresetsEventsSearchRequest + +## Example Usage + +```typescript +import { PlatformTriggerPresetsEventsSearchRequest } from "@gleanwork/api-client/models/operations"; + +let value: PlatformTriggerPresetsEventsSearchRequest = { + preset_id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `presetId` | *string* | :heavy_check_mark: | ID of the preset to preview. | +| `platformTriggerPresetEventSearchRequest` | [components.PlatformTriggerPresetEventSearchRequest](../../models/components/platformtriggerpreseteventsearchrequest.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/platformtriggerpresetsgetrequest.md b/docs/models/operations/platformtriggerpresetsgetrequest.md new file mode 100644 index 000000000..3e092b1fd --- /dev/null +++ b/docs/models/operations/platformtriggerpresetsgetrequest.md @@ -0,0 +1,17 @@ +# PlatformTriggerPresetsGetRequest + +## Example Usage + +```typescript +import { PlatformTriggerPresetsGetRequest } from "@gleanwork/api-client/models/operations"; + +let value: PlatformTriggerPresetsGetRequest = { + preset_id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | +| `presetId` | *string* | :heavy_check_mark: | ID of the preset to retrieve. | \ No newline at end of file diff --git a/docs/models/operations/platformtriggerpresetsinputvalueslistrequest.md b/docs/models/operations/platformtriggerpresetsinputvalueslistrequest.md new file mode 100644 index 000000000..8fbe206ba --- /dev/null +++ b/docs/models/operations/platformtriggerpresetsinputvalueslistrequest.md @@ -0,0 +1,20 @@ +# PlatformTriggerPresetsInputValuesListRequest + +## Example Usage + +```typescript +import { PlatformTriggerPresetsInputValuesListRequest } from "@gleanwork/api-client/models/operations"; + +let value: PlatformTriggerPresetsInputValuesListRequest = { + preset_id: "", + field: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `presetId` | *string* | :heavy_check_mark: | ID of the preset the input belongs to. | +| `field` | *string* | :heavy_check_mark: | Field identifier of the input whose values to list. | +| `query` | *string* | :heavy_minus_sign: | Prefix filter over the input's option values, for typeahead. Matching is on the option value, not its display name.
| \ No newline at end of file diff --git a/docs/models/operations/platformtriggerpresetslistrequest.md b/docs/models/operations/platformtriggerpresetslistrequest.md new file mode 100644 index 000000000..a73a93e5e --- /dev/null +++ b/docs/models/operations/platformtriggerpresetslistrequest.md @@ -0,0 +1,17 @@ +# PlatformTriggerPresetsListRequest + +## Example Usage + +```typescript +import { PlatformTriggerPresetsListRequest } from "@gleanwork/api-client/models/operations"; + +let value: PlatformTriggerPresetsListRequest = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `datasource` | *string* | :heavy_minus_sign: | Restrict results to presets for a single datasource (e.g. github). | +| `pageSize` | *number* | :heavy_minus_sign: | Maximum number of presets to return. | +| `cursor` | *string* | :heavy_minus_sign: | Opaque pagination cursor from a previous response. | \ No newline at end of file diff --git a/docs/models/operations/platformtriggersdeleterequest.md b/docs/models/operations/platformtriggersdeleterequest.md new file mode 100644 index 000000000..c81f9e53b --- /dev/null +++ b/docs/models/operations/platformtriggersdeleterequest.md @@ -0,0 +1,17 @@ +# PlatformTriggersDeleteRequest + +## Example Usage + +```typescript +import { PlatformTriggersDeleteRequest } from "@gleanwork/api-client/models/operations"; + +let value: PlatformTriggersDeleteRequest = { + trigger_id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | +| `triggerId` | *string* | :heavy_check_mark: | ID of the trigger to delete. | \ No newline at end of file diff --git a/docs/models/operations/platformtriggerseventssearchrequest.md b/docs/models/operations/platformtriggerseventssearchrequest.md new file mode 100644 index 000000000..d7ca59e0b --- /dev/null +++ b/docs/models/operations/platformtriggerseventssearchrequest.md @@ -0,0 +1,18 @@ +# PlatformTriggersEventsSearchRequest + +## Example Usage + +```typescript +import { PlatformTriggersEventsSearchRequest } from "@gleanwork/api-client/models/operations"; + +let value: PlatformTriggersEventsSearchRequest = { + trigger_id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `triggerId` | *string* | :heavy_check_mark: | ID of the trigger whose events to search. | +| `platformTriggerEventSearchRequest` | [components.PlatformTriggerEventSearchRequest](../../models/components/platformtriggereventsearchrequest.md) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/docs/models/operations/platformtriggersgetrequest.md b/docs/models/operations/platformtriggersgetrequest.md new file mode 100644 index 000000000..e16272a6c --- /dev/null +++ b/docs/models/operations/platformtriggersgetrequest.md @@ -0,0 +1,17 @@ +# PlatformTriggersGetRequest + +## Example Usage + +```typescript +import { PlatformTriggersGetRequest } from "@gleanwork/api-client/models/operations"; + +let value: PlatformTriggersGetRequest = { + trigger_id: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | +| `triggerId` | *string* | :heavy_check_mark: | ID of the trigger to retrieve. | \ No newline at end of file diff --git a/docs/models/operations/platformtriggerslistrequest.md b/docs/models/operations/platformtriggerslistrequest.md new file mode 100644 index 000000000..a9e97c3cf --- /dev/null +++ b/docs/models/operations/platformtriggerslistrequest.md @@ -0,0 +1,16 @@ +# PlatformTriggersListRequest + +## Example Usage + +```typescript +import { PlatformTriggersListRequest } from "@gleanwork/api-client/models/operations"; + +let value: PlatformTriggersListRequest = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `pageSize` | *number* | :heavy_minus_sign: | Maximum number of triggers to return. | +| `cursor` | *string* | :heavy_minus_sign: | Opaque pagination cursor from a previous response. | \ No newline at end of file diff --git a/docs/models/operations/platformtriggersupdaterequest.md b/docs/models/operations/platformtriggersupdaterequest.md new file mode 100644 index 000000000..fd81b8d67 --- /dev/null +++ b/docs/models/operations/platformtriggersupdaterequest.md @@ -0,0 +1,32 @@ +# PlatformTriggersUpdateRequest + +## Example Usage + +```typescript +import { PlatformTriggersUpdateRequest } from "@gleanwork/api-client/models/operations"; + +let value: PlatformTriggersUpdateRequest = { + trigger_id: "", + platformTriggerUpdateRequest: { + status: "ENABLED", + description: "Reviews I am tagged on, sent to my team's review channel", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + auth: { + type: "BEARER", + secret: "secret_test_123", + }, + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `triggerId` | *string* | :heavy_check_mark: | ID of the trigger to update. | +| `platformTriggerUpdateRequest` | [components.PlatformTriggerUpdateRequest](../../models/components/platformtriggerupdaterequest.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/docs/sdks/skills/README.md b/docs/sdks/skills/README.md index 2634c0a6b..4231043fb 100644 --- a/docs/sdks/skills/README.md +++ b/docs/sdks/skills/README.md @@ -6,8 +6,8 @@ * [create](#create) - Create skill * [list](#list) - List skills -* [validate](#validate) - Validate skill bundle * [import](#import) - Import skills from GitHub +* [validate](#validate) - Validate skill bundle * [previewSource](#previewsource) - Preview a GitHub skill source * [update](#update) - Update skill * [delete](#delete) - Delete skill @@ -215,25 +215,26 @@ import { | errors.PlatformProblemDetailError | 500, 503 | application/problem+json | | errors.GleanError | 4XX, 5XX | \*/\* | -## validate +## import -Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. +Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. ### Example Usage - + ```typescript import { Glean } from "@gleanwork/api-client"; -import { openAsBlob } from "node:fs"; const glean = new Glean({ apiToken: process.env["GLEAN_API_TOKEN"] ?? "", }); async function run() { - const result = await glean.skills.validate({ - file: await openAsBlob("example.file"), + const result = await glean.skills.import({ + source_urls: [ + "", + ], }); console.log(result); @@ -248,8 +249,7 @@ The standalone function version of this method: ```typescript import { GleanCore } from "@gleanwork/api-client/core.js"; -import { skillsValidate } from "@gleanwork/api-client/funcs/skillsValidate.js"; -import { openAsBlob } from "node:fs"; +import { skillsImport } from "@gleanwork/api-client/funcs/skillsImport.js"; // Use `GleanCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -258,14 +258,16 @@ const glean = new GleanCore({ }); async function run() { - const res = await skillsValidate(glean, { - file: await openAsBlob("example.file"), + const res = await skillsImport(glean, { + source_urls: [ + "", + ], }); if (res.ok) { const { value: result } = res; console.log(result); } else { - console.log("skillsValidate failed:", res.error); + console.log("skillsImport failed:", res.error); } } @@ -285,51 +287,50 @@ associated utilities. ```tsx import { // Mutation hook for triggering the API call. - useSkillsValidateMutation -} from "@gleanwork/api-client/react-query/skillsValidate.js"; + useSkillsImportMutation +} from "@gleanwork/api-client/react-query/skillsImport.js"; ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.PlatformSkillValidationRequest](../../models/components/platformskillvalidationrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `request` | [components.PlatformSkillImportRequest](../../models/components/platformskillimportrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.PlatformSkillValidationResponse](../../models/components/platformskillvalidationresponse.md)\>** +**Promise\<[components.PlatformSkillImportResponse](../../models/components/platformskillimportresponse.md)\>** ### Errors | Error Type | Status Code | Content Type | | --------------------------------- | --------------------------------- | --------------------------------- | -| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 413, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 400, 401, 403, 408, 409, 413, 429 | application/problem+json | | errors.PlatformProblemDetailError | 500, 503 | application/problem+json | | errors.GleanError | 4XX, 5XX | \*/\* | -## import +## validate -Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. +Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. ### Example Usage - + ```typescript import { Glean } from "@gleanwork/api-client"; +import { openAsBlob } from "node:fs"; const glean = new Glean({ apiToken: process.env["GLEAN_API_TOKEN"] ?? "", }); async function run() { - const result = await glean.skills.import({ - source_urls: [ - "", - ], + const result = await glean.skills.validate({ + file: await openAsBlob("example.file"), }); console.log(result); @@ -344,7 +345,8 @@ The standalone function version of this method: ```typescript import { GleanCore } from "@gleanwork/api-client/core.js"; -import { skillsImport } from "@gleanwork/api-client/funcs/skillsImport.js"; +import { skillsValidate } from "@gleanwork/api-client/funcs/skillsValidate.js"; +import { openAsBlob } from "node:fs"; // Use `GleanCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -353,16 +355,14 @@ const glean = new GleanCore({ }); async function run() { - const res = await skillsImport(glean, { - source_urls: [ - "", - ], + const res = await skillsValidate(glean, { + file: await openAsBlob("example.file"), }); if (res.ok) { const { value: result } = res; console.log(result); } else { - console.log("skillsImport failed:", res.error); + console.log("skillsValidate failed:", res.error); } } @@ -382,28 +382,28 @@ associated utilities. ```tsx import { // Mutation hook for triggering the API call. - useSkillsImportMutation -} from "@gleanwork/api-client/react-query/skillsImport.js"; + useSkillsValidateMutation +} from "@gleanwork/api-client/react-query/skillsValidate.js"; ``` ### Parameters | Parameter | Type | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `request` | [components.PlatformSkillImportRequest](../../models/components/platformskillimportrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `request` | [components.PlatformSkillValidationRequest](../../models/components/platformskillvalidationrequest.md) | :heavy_check_mark: | The request object to use for the request. | | `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | | `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | | `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | ### Response -**Promise\<[components.PlatformSkillImportResponse](../../models/components/platformskillimportresponse.md)\>** +**Promise\<[components.PlatformSkillValidationResponse](../../models/components/platformskillvalidationresponse.md)\>** ### Errors | Error Type | Status Code | Content Type | | --------------------------------- | --------------------------------- | --------------------------------- | -| errors.PlatformProblemDetailError | 400, 401, 403, 408, 409, 413, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 413, 429 | application/problem+json | | errors.PlatformProblemDetailError | 500, 503 | application/problem+json | | errors.GleanError | 4XX, 5XX | \*/\* | diff --git a/docs/sdks/tools/README.md b/docs/sdks/tools/README.md index ebf0e4ed4..bed0af9a4 100644 --- a/docs/sdks/tools/README.md +++ b/docs/sdks/tools/README.md @@ -609,14 +609,15 @@ import { ## getToolServerTools Returns the name, description and JSON input schema for the named tools on the -specified tool server. Works for both action packs and MCP servers. +specified tool server. Works for Glean's built-in tools, tool packs and MCP +servers. `toolNames` is required. Names that do not exist on the server are returned in `notFound` rather than failing the request, so a single bad name does not force callers into one-at-a-time retries. Matching is case-insensitive and treats `-` and `_` as equivalent. -Native tools are not served; `serverId=native` returns 404. +Use `serverId=native` for Glean's built-in tools. ### Example Usage diff --git a/docs/sdks/triggers/README.md b/docs/sdks/triggers/README.md new file mode 100644 index 000000000..08d7532f3 --- /dev/null +++ b/docs/sdks/triggers/README.md @@ -0,0 +1,1029 @@ +# Triggers + +## Overview + +### Available Operations + +* [create](#create) - Create trigger +* [list](#list) - List triggers +* [get](#get) - Get trigger +* [update](#update) - Update trigger +* [delete](#delete) - Delete trigger +* [searchEvents](#searchevents) - Search events for a trigger +* [listPresets](#listpresets) - List trigger presets +* [getPreset](#getpreset) - Get trigger preset +* [listPresetInputValues](#listpresetinputvalues) - Search trigger preset input values +* [searchPresetEvents](#searchpresetevents) - Search events for a trigger preset + +## create + +Create a trigger from a preset and return it with its signing secret. + + +### Example Usage + + +```typescript +import { Glean } from "@gleanwork/api-client"; + +const glean = new Glean({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const result = await glean.triggers.create({ + preset_id: "GITHUB_1", + description: "Reviews I am tagged on, sent to my team's review channel", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + auth: { + type: "BEARER", + secret: "secret_test_123", + }, + }, + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { GleanCore } from "@gleanwork/api-client/core.js"; +import { triggersCreate } from "@gleanwork/api-client/funcs/triggersCreate.js"; + +// Use `GleanCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const glean = new GleanCore({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const res = await triggersCreate(glean, { + preset_id: "GITHUB_1", + description: "Reviews I am tagged on, sent to my team's review channel", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + auth: { + type: "BEARER", + secret: "secret_test_123", + }, + }, + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("triggersCreate failed:", res.error); + } +} + +run(); +``` + +### React hooks and utilities + +This method can be used in React components through the following hooks and +associated utilities. + +> Check out [this guide][hook-guide] for information about each of the utilities +> below and how to get started using React hooks. + +[hook-guide]: ../../../REACT_QUERY.md + +```tsx +import { + // Mutation hook for triggering the API call. + useTriggersCreateMutation +} from "@gleanwork/api-client/react-query/triggersCreate.js"; +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [components.PlatformTriggerCreateRequest](../../models/components/platformtriggercreaterequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[components.PlatformTriggerCreateResponse](../../models/components/platformtriggercreateresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| -------------------------------------- | -------------------------------------- | -------------------------------------- | +| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 409, 413, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| errors.GleanError | 4XX, 5XX | \*/\* | + +## list + +List triggers owned by the authenticated caller. + + +### Example Usage + + +```typescript +import { Glean } from "@gleanwork/api-client"; + +const glean = new Glean({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const result = await glean.triggers.list(); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { GleanCore } from "@gleanwork/api-client/core.js"; +import { triggersList } from "@gleanwork/api-client/funcs/triggersList.js"; + +// Use `GleanCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const glean = new GleanCore({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const res = await triggersList(glean); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("triggersList failed:", res.error); + } +} + +run(); +``` + +### React hooks and utilities + +This method can be used in React components through the following hooks and +associated utilities. + +> Check out [this guide][hook-guide] for information about each of the utilities +> below and how to get started using React hooks. + +[hook-guide]: ../../../REACT_QUERY.md + +```tsx +import { + // Query hooks for fetching data. + useTriggersList, + useTriggersListSuspense, + + // Utility for prefetching data during server-side rendering and in React + // Server Components that will be immediately available to client components + // using the hooks. + prefetchTriggersList, + + // Utilities to invalidate the query cache for this query in response to + // mutations and other user actions. + invalidateTriggersList, + invalidateAllTriggersList, +} from "@gleanwork/api-client/react-query/triggersList.js"; +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `pageSize` | *number* | :heavy_minus_sign: | Maximum number of triggers to return. | +| `cursor` | *string* | :heavy_minus_sign: | Opaque pagination cursor from a previous response. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[components.PlatformTriggerListResponse](../../models/components/platformtriggerlistresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.PlatformProblemDetailError | 400, 401, 403, 408, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| errors.GleanError | 4XX, 5XX | \*/\* | + +## get + +Retrieve a trigger owned by the authenticated caller. + + +### Example Usage + + +```typescript +import { Glean } from "@gleanwork/api-client"; + +const glean = new Glean({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const result = await glean.triggers.get(""); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { GleanCore } from "@gleanwork/api-client/core.js"; +import { triggersGet } from "@gleanwork/api-client/funcs/triggersGet.js"; + +// Use `GleanCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const glean = new GleanCore({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const res = await triggersGet(glean, ""); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("triggersGet failed:", res.error); + } +} + +run(); +``` + +### React hooks and utilities + +This method can be used in React components through the following hooks and +associated utilities. + +> Check out [this guide][hook-guide] for information about each of the utilities +> below and how to get started using React hooks. + +[hook-guide]: ../../../REACT_QUERY.md + +```tsx +import { + // Query hooks for fetching data. + useTriggersGet, + useTriggersGetSuspense, + + // Utility for prefetching data during server-side rendering and in React + // Server Components that will be immediately available to client components + // using the hooks. + prefetchTriggersGet, + + // Utilities to invalidate the query cache for this query in response to + // mutations and other user actions. + invalidateTriggersGet, + invalidateAllTriggersGet, +} from "@gleanwork/api-client/react-query/triggersGet.js"; +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `triggerId` | *string* | :heavy_check_mark: | ID of the trigger to retrieve. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[components.PlatformTriggerGetResponse](../../models/components/platformtriggergetresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| errors.GleanError | 4XX, 5XX | \*/\* | + +## update + +Update a trigger. + + +### Example Usage + + +```typescript +import { Glean } from "@gleanwork/api-client"; + +const glean = new Glean({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const result = await glean.triggers.update({ + status: "ENABLED", + description: "Reviews I am tagged on, sent to my team's review channel", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + auth: { + type: "BEARER", + secret: "secret_test_123", + }, + }, + }, ""); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { GleanCore } from "@gleanwork/api-client/core.js"; +import { triggersUpdate } from "@gleanwork/api-client/funcs/triggersUpdate.js"; + +// Use `GleanCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const glean = new GleanCore({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const res = await triggersUpdate(glean, { + status: "ENABLED", + description: "Reviews I am tagged on, sent to my team's review channel", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + auth: { + type: "BEARER", + secret: "secret_test_123", + }, + }, + }, ""); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("triggersUpdate failed:", res.error); + } +} + +run(); +``` + +### React hooks and utilities + +This method can be used in React components through the following hooks and +associated utilities. + +> Check out [this guide][hook-guide] for information about each of the utilities +> below and how to get started using React hooks. + +[hook-guide]: ../../../REACT_QUERY.md + +```tsx +import { + // Mutation hook for triggering the API call. + useTriggersUpdateMutation +} from "@gleanwork/api-client/react-query/triggersUpdate.js"; +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `triggerId` | *string* | :heavy_check_mark: | ID of the trigger to update. | +| `platformTriggerUpdateRequest` | [components.PlatformTriggerUpdateRequest](../../models/components/platformtriggerupdaterequest.md) | :heavy_check_mark: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[components.PlatformTriggerGetResponse](../../models/components/platformtriggergetresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 413, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| errors.GleanError | 4XX, 5XX | \*/\* | + +## delete + +Delete a trigger. + + +### Example Usage + + +```typescript +import { Glean } from "@gleanwork/api-client"; + +const glean = new Glean({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + await glean.triggers.delete(""); + + +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { GleanCore } from "@gleanwork/api-client/core.js"; +import { triggersDelete } from "@gleanwork/api-client/funcs/triggersDelete.js"; + +// Use `GleanCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const glean = new GleanCore({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const res = await triggersDelete(glean, ""); + if (res.ok) { + const { value: result } = res; + + } else { + console.log("triggersDelete failed:", res.error); + } +} + +run(); +``` + +### React hooks and utilities + +This method can be used in React components through the following hooks and +associated utilities. + +> Check out [this guide][hook-guide] for information about each of the utilities +> below and how to get started using React hooks. + +[hook-guide]: ../../../REACT_QUERY.md + +```tsx +import { + // Mutation hook for triggering the API call. + useTriggersDeleteMutation +} from "@gleanwork/api-client/react-query/triggersDelete.js"; +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `triggerId` | *string* | :heavy_check_mark: | ID of the trigger to delete. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| errors.GleanError | 4XX, 5XX | \*/\* | + +## searchEvents + +Search recent content events an existing trigger matches. Read-only — no webhook delivery is made. Covers the last seven days. + + +### Example Usage + + +```typescript +import { Glean } from "@gleanwork/api-client"; + +const glean = new Glean({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const result = await glean.triggers.searchEvents(""); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { GleanCore } from "@gleanwork/api-client/core.js"; +import { triggersSearchEvents } from "@gleanwork/api-client/funcs/triggersSearchEvents.js"; + +// Use `GleanCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const glean = new GleanCore({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const res = await triggersSearchEvents(glean, ""); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("triggersSearchEvents failed:", res.error); + } +} + +run(); +``` + +### React hooks and utilities + +This method can be used in React components through the following hooks and +associated utilities. + +> Check out [this guide][hook-guide] for information about each of the utilities +> below and how to get started using React hooks. + +[hook-guide]: ../../../REACT_QUERY.md + +```tsx +import { + // Mutation hook for triggering the API call. + useTriggersSearchEventsMutation +} from "@gleanwork/api-client/react-query/triggersSearchEvents.js"; +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `triggerId` | *string* | :heavy_check_mark: | ID of the trigger whose events to search. | +| `platformTriggerEventSearchRequest` | [components.PlatformTriggerEventSearchRequest](../../models/components/platformtriggereventsearchrequest.md) | :heavy_minus_sign: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[components.PlatformTriggerEventSearchResponse](../../models/components/platformtriggereventsearchresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 413, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| errors.GleanError | 4XX, 5XX | \*/\* | + +## listPresets + +List the trigger presets available to the caller. A preset is a curated content-trigger template (e.g. a new Jira ticket) which is passed when creating a trigger. + + +### Example Usage + + +```typescript +import { Glean } from "@gleanwork/api-client"; + +const glean = new Glean({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const result = await glean.triggers.listPresets(); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { GleanCore } from "@gleanwork/api-client/core.js"; +import { triggersListPresets } from "@gleanwork/api-client/funcs/triggersListPresets.js"; + +// Use `GleanCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const glean = new GleanCore({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const res = await triggersListPresets(glean); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("triggersListPresets failed:", res.error); + } +} + +run(); +``` + +### React hooks and utilities + +This method can be used in React components through the following hooks and +associated utilities. + +> Check out [this guide][hook-guide] for information about each of the utilities +> below and how to get started using React hooks. + +[hook-guide]: ../../../REACT_QUERY.md + +```tsx +import { + // Query hooks for fetching data. + useTriggersListPresets, + useTriggersListPresetsSuspense, + + // Utility for prefetching data during server-side rendering and in React + // Server Components that will be immediately available to client components + // using the hooks. + prefetchTriggersListPresets, + + // Utilities to invalidate the query cache for this query in response to + // mutations and other user actions. + invalidateTriggersListPresets, + invalidateAllTriggersListPresets, +} from "@gleanwork/api-client/react-query/triggersListPresets.js"; +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `datasource` | *string* | :heavy_minus_sign: | Restrict results to presets for a single datasource (e.g. github). | +| `pageSize` | *number* | :heavy_minus_sign: | Maximum number of presets to return. | +| `cursor` | *string* | :heavy_minus_sign: | Opaque pagination cursor from a previous response. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[components.PlatformTriggerPresetListResponse](../../models/components/platformtriggerpresetlistresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.PlatformProblemDetailError | 400, 401, 403, 408, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| errors.GleanError | 4XX, 5XX | \*/\* | + +## getPreset + +Retrieve a single trigger preset by id. + + +### Example Usage + + +```typescript +import { Glean } from "@gleanwork/api-client"; + +const glean = new Glean({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const result = await glean.triggers.getPreset(""); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { GleanCore } from "@gleanwork/api-client/core.js"; +import { triggersGetPreset } from "@gleanwork/api-client/funcs/triggersGetPreset.js"; + +// Use `GleanCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const glean = new GleanCore({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const res = await triggersGetPreset(glean, ""); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("triggersGetPreset failed:", res.error); + } +} + +run(); +``` + +### React hooks and utilities + +This method can be used in React components through the following hooks and +associated utilities. + +> Check out [this guide][hook-guide] for information about each of the utilities +> below and how to get started using React hooks. + +[hook-guide]: ../../../REACT_QUERY.md + +```tsx +import { + // Query hooks for fetching data. + useTriggersGetPreset, + useTriggersGetPresetSuspense, + + // Utility for prefetching data during server-side rendering and in React + // Server Components that will be immediately available to client components + // using the hooks. + prefetchTriggersGetPreset, + + // Utilities to invalidate the query cache for this query in response to + // mutations and other user actions. + invalidateTriggersGetPreset, + invalidateAllTriggersGetPreset, +} from "@gleanwork/api-client/react-query/triggersGetPreset.js"; +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `presetId` | *string* | :heavy_check_mark: | ID of the preset to retrieve. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[components.PlatformTriggerPresetGetResponse](../../models/components/platformtriggerpresetgetresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| errors.GleanError | 4XX, 5XX | \*/\* | + +## listPresetInputValues + +Return up to 300 selectable values for a single picklist input on a preset. Results are intended for typeahead selection and are not cursor-paginated. When `is_truncated` is true, refine `query` to narrow the result set. + + +### Example Usage + + +```typescript +import { Glean } from "@gleanwork/api-client"; + +const glean = new Glean({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const result = await glean.triggers.listPresetInputValues("", ""); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { GleanCore } from "@gleanwork/api-client/core.js"; +import { triggersListPresetInputValues } from "@gleanwork/api-client/funcs/triggersListPresetInputValues.js"; + +// Use `GleanCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const glean = new GleanCore({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const res = await triggersListPresetInputValues(glean, "", ""); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("triggersListPresetInputValues failed:", res.error); + } +} + +run(); +``` + +### React hooks and utilities + +This method can be used in React components through the following hooks and +associated utilities. + +> Check out [this guide][hook-guide] for information about each of the utilities +> below and how to get started using React hooks. + +[hook-guide]: ../../../REACT_QUERY.md + +```tsx +import { + // Query hooks for fetching data. + useTriggersListPresetInputValues, + useTriggersListPresetInputValuesSuspense, + + // Utility for prefetching data during server-side rendering and in React + // Server Components that will be immediately available to client components + // using the hooks. + prefetchTriggersListPresetInputValues, + + // Utilities to invalidate the query cache for this query in response to + // mutations and other user actions. + invalidateTriggersListPresetInputValues, + invalidateAllTriggersListPresetInputValues, +} from "@gleanwork/api-client/react-query/triggersListPresetInputValues.js"; +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `presetId` | *string* | :heavy_check_mark: | ID of the preset the input belongs to. | +| `field` | *string* | :heavy_check_mark: | Field identifier of the input whose values to list. | +| `query` | *string* | :heavy_minus_sign: | Prefix filter over the input's option values, for typeahead. Matching is on the option value, not its display name.
| +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[components.PlatformTriggerPresetInputValueListResponse](../../models/components/platformtriggerpresetinputvaluelistresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| errors.GleanError | 4XX, 5XX | \*/\* | + +## searchPresetEvents + +Search recent content events an unsaved trigger built from this preset would match, to preview it before creating the trigger. Read-only — no trigger is created and no webhook delivery is made. Covers the last seven days. + + +### Example Usage + + +```typescript +import { Glean } from "@gleanwork/api-client"; + +const glean = new Glean({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const result = await glean.triggers.searchPresetEvents("", { + inputs: { + "repository": "acme/payments-api", + }, + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { GleanCore } from "@gleanwork/api-client/core.js"; +import { triggersSearchPresetEvents } from "@gleanwork/api-client/funcs/triggersSearchPresetEvents.js"; + +// Use `GleanCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const glean = new GleanCore({ + apiToken: process.env["GLEAN_API_TOKEN"] ?? "", +}); + +async function run() { + const res = await triggersSearchPresetEvents(glean, "", { + inputs: { + "repository": "acme/payments-api", + }, + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("triggersSearchPresetEvents failed:", res.error); + } +} + +run(); +``` + +### React hooks and utilities + +This method can be used in React components through the following hooks and +associated utilities. + +> Check out [this guide][hook-guide] for information about each of the utilities +> below and how to get started using React hooks. + +[hook-guide]: ../../../REACT_QUERY.md + +```tsx +import { + // Mutation hook for triggering the API call. + useTriggersSearchPresetEventsMutation +} from "@gleanwork/api-client/react-query/triggersSearchPresetEvents.js"; +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `presetId` | *string* | :heavy_check_mark: | ID of the preset to preview. | +| `platformTriggerPresetEventSearchRequest` | [components.PlatformTriggerPresetEventSearchRequest](../../models/components/platformtriggerpreseteventsearchrequest.md) | :heavy_minus_sign: | N/A | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[components.PlatformTriggerEventSearchResponse](../../models/components/platformtriggereventsearchresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| --------------------------------- | --------------------------------- | --------------------------------- | +| errors.PlatformProblemDetailError | 400, 401, 403, 404, 408, 413, 429 | application/problem+json | +| errors.PlatformProblemDetailError | 500, 503 | application/problem+json | +| errors.GleanError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/examples/package-lock.json b/examples/package-lock.json index 401e001e3..3e60ffb08 100644 --- a/examples/package-lock.json +++ b/examples/package-lock.json @@ -18,7 +18,7 @@ }, "..": { "name": "@gleanwork/api-client", - "version": "0.18.1", + "version": "0.19.0", "dependencies": { "zod": "^3.25.0 || ^4.0.0" }, diff --git a/jsr.json b/jsr.json index 6252229ac..c1e678a6b 100644 --- a/jsr.json +++ b/jsr.json @@ -2,7 +2,7 @@ { "name": "@gleanwork/api-client", - "version": "0.18.1", + "version": "0.19.0", "exports": { ".": "./src/index.ts", "./models/errors": "./src/models/errors/index.ts", diff --git a/package-lock.json b/package-lock.json index 8854c02ff..ec6227d02 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@gleanwork/api-client", - "version": "0.18.1", + "version": "0.19.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@gleanwork/api-client", - "version": "0.18.1", + "version": "0.19.0", "dependencies": { "zod": "^3.25.0 || ^4.0.0" }, diff --git a/package.json b/package.json index 1aa7344f7..9fb584bc8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@gleanwork/api-client", - "version": "0.18.1", + "version": "0.19.0", "author": "Speakeasy", "tshy": { "sourceDialects": [ @@ -13,6 +13,7 @@ "./models/errors": "./src/models/errors/index.ts", "./models/components": "./src/models/components/index.ts", "./models/operations": "./src/models/operations/index.ts", + "./models/callbacks": "./src/models/callbacks/index.ts", "./react-query": "./src/react-query/index.ts", "./*.js": "./src/*.ts", "./*": "./src/*.ts" @@ -119,6 +120,17 @@ "default": "./dist/commonjs/models/operations/index.js" } }, + "./models/callbacks": { + "import": { + "@gleanwork/api-client/source": "./src/models/callbacks/index.ts", + "types": "./dist/esm/models/callbacks/index.d.ts", + "default": "./dist/esm/models/callbacks/index.js" + }, + "require": { + "types": "./dist/commonjs/models/callbacks/index.d.ts", + "default": "./dist/commonjs/models/callbacks/index.js" + } + }, "./react-query": { "import": { "@gleanwork/api-client/source": "./src/react-query/index.ts", diff --git a/src/__tests__/messages.test.ts b/src/__tests__/messages.test.ts index 41c0b3c93..a4785e318 100644 --- a/src/__tests__/messages.test.ts +++ b/src/__tests__/messages.test.ts @@ -20,7 +20,7 @@ test("Messages Messages", async () => { idType: "CONVERSATION_ID", id: "", timestampMillis: 558834, - datasource: "GCHAT", + datasource: "SLACK", }); expect(result).toBeDefined(); }); diff --git a/src/__tests__/mockserver/internal/handler/generated_handlers.go b/src/__tests__/mockserver/internal/handler/generated_handlers.go index b45346d96..010a384f3 100644 --- a/src/__tests__/mockserver/internal/handler/generated_handlers.go +++ b/src/__tests__/mockserver/internal/handler/generated_handlers.go @@ -24,6 +24,11 @@ func GeneratedHandlers(ctx context.Context, dir *logging.HTTPFileDirectory, rt * NewGeneratedHandler(ctx, http.MethodGet, "/api/skills/{skill_id}/versions", pathGetAPISkillsSkillIDVersions(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/api/skills/{skill_id}/versions/{version}", pathGetAPISkillsSkillIDVersionsVersion(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/api/skills/{skill_id}/versions/{version}/content", pathGetAPISkillsSkillIDVersionsVersionContent(dir, rt)), + NewGeneratedHandler(ctx, http.MethodGet, "/api/trigger-presets", pathGetAPITriggerPresets(dir, rt)), + NewGeneratedHandler(ctx, http.MethodGet, "/api/trigger-presets/{preset_id}", pathGetAPITriggerPresetsPresetID(dir, rt)), + NewGeneratedHandler(ctx, http.MethodGet, "/api/trigger-presets/{preset_id}/input-values", pathGetAPITriggerPresetsPresetIDInputValues(dir, rt)), + NewGeneratedHandler(ctx, http.MethodGet, "/api/triggers", pathGetAPITriggers(dir, rt)), + NewGeneratedHandler(ctx, http.MethodGet, "/api/triggers/{trigger_id}", pathGetAPITriggersTriggerID(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/index/custom-metadata/schema/{groupName}", pathGetRestAPIIndexCustomMetadataSchemaGroupName(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/actions/actionpack/{actionPackId}/auth", pathGetRestAPIV1ActionsActionpackActionPackIDAuth(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/agents/{agent_id}", pathGetRestAPIV1AgentsAgentID(dir, rt)), @@ -39,6 +44,7 @@ func GeneratedHandlers(ctx context.Context, dir *logging.HTTPFileDirectory, rt * NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/tool-servers/{serverId}/tools", pathGetRestAPIV1ToolServersServerIDTools(dir, rt)), NewGeneratedHandler(ctx, http.MethodGet, "/rest/api/v1/tools/list", pathGetRestAPIV1ToolsList(dir, rt)), NewGeneratedHandler(ctx, http.MethodPatch, "/api/skills/{skill_id}", pathPatchAPISkillsSkillID(dir, rt)), + NewGeneratedHandler(ctx, http.MethodPatch, "/api/triggers/{trigger_id}", pathPatchAPITriggersTriggerID(dir, rt)), NewGeneratedHandler(ctx, http.MethodPatch, "/rest/api/v1/configure/datasources/{datasourceId}/instances/{instanceId}", pathPatchRestAPIV1ConfigureDatasourcesDatasourceIDInstancesInstanceID(dir, rt)), NewGeneratedHandler(ctx, http.MethodPost, "/api/agents/search", pathPostAPIAgentsSearch(dir, rt)), NewGeneratedHandler(ctx, http.MethodPost, "/api/agents/{agent_id}/runs", pathPostAPIAgentsAgentIDRuns(dir, rt)), @@ -79,6 +85,9 @@ func GeneratedHandlers(ctx context.Context, dir *logging.HTTPFileDirectory, rt * NewGeneratedHandler(ctx, http.MethodPost, "/api/skills/validation", pathPostAPISkillsValidation(dir, rt)), NewGeneratedHandler(ctx, http.MethodPost, "/api/skills/{skill_id}/sync", pathPostAPISkillsSkillIDSync(dir, rt)), NewGeneratedHandler(ctx, http.MethodPost, "/api/skills/{skill_id}/versions", pathPostAPISkillsSkillIDVersions(dir, rt)), + NewGeneratedHandler(ctx, http.MethodPost, "/api/trigger-presets/{preset_id}/events/search", pathPostAPITriggerPresetsPresetIDEventsSearch(dir, rt)), + NewGeneratedHandler(ctx, http.MethodPost, "/api/triggers", pathPostAPITriggers(dir, rt)), + NewGeneratedHandler(ctx, http.MethodPost, "/api/triggers/{trigger_id}/events/search", pathPostAPITriggersTriggerIDEventsSearch(dir, rt)), NewGeneratedHandler(ctx, http.MethodPost, "/rest/api/index/submissions/{datasourceInstance}/{type}", pathPostRestAPIIndexSubmissionsDatasourceInstanceType(dir, rt)), NewGeneratedHandler(ctx, http.MethodPost, "/rest/api/v1/actions/actionpack/{actionPackId}/auth", pathPostRestAPIV1ActionsActionpackActionPackIDAuth(dir, rt)), NewGeneratedHandler(ctx, http.MethodPost, "/rest/api/v1/activity", pathPostRestAPIV1Activity(dir, rt)), diff --git a/src/__tests__/mockserver/internal/handler/pathgetapitriggerpresets.go b/src/__tests__/mockserver/internal/handler/pathgetapitriggerpresets.go new file mode 100644 index 000000000..b2a2e1bc9 --- /dev/null +++ b/src/__tests__/mockserver/internal/handler/pathgetapitriggerpresets.go @@ -0,0 +1,68 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 1bf1cd639fcd + +package handler + +import ( + "fmt" + "log" + "mockserver/internal/handler/assert" + "mockserver/internal/logging" + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathGetAPITriggerPresets(dir *logging.HTTPFileDirectory, rt *tracking.RequestTracker) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + test := req.Header.Get("x-speakeasy-test-name") + instanceID := req.Header.Get("x-speakeasy-test-instance-id") + + count := rt.GetRequestCount(test, instanceID) + + switch fmt.Sprintf("%s[%d]", test, count) { + case "platform-trigger-presets-list[0]": + dir.HandlerFunc("platform-trigger-presets-list", testPlatformTriggerPresetsListPlatformTriggerPresetsList0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testPlatformTriggerPresetsListPlatformTriggerPresetsList0(w http.ResponseWriter, req *http.Request) { + if err := assert.SecurityAuthorizationHeader(req, false, "Bearer"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusUnauthorized) + return + } + if err := assert.AcceptHeader(req, []string{"application/json"}); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.HeaderExists(req, "User-Agent"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + var respBody *components.PlatformTriggerPresetListResponse = &components.PlatformTriggerPresetListResponse{ + Results: []components.PlatformTriggerPresetSummary{}, + HasMore: false, + NextCursor: nil, + RequestID: "", + } + respBodyBytes, err := utils.MarshalJSON(respBody, "", true) + + if err != nil { + http.Error( + w, + "Unable to encode response body as JSON: "+err.Error(), + http.StatusInternalServerError, + ) + return + } + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = w.Write(respBodyBytes) +} diff --git a/src/__tests__/mockserver/internal/handler/pathgetapitriggerpresetspresetid.go b/src/__tests__/mockserver/internal/handler/pathgetapitriggerpresetspresetid.go new file mode 100644 index 000000000..ffcb3bab0 --- /dev/null +++ b/src/__tests__/mockserver/internal/handler/pathgetapitriggerpresetspresetid.go @@ -0,0 +1,73 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 69fc355daa2f + +package handler + +import ( + "fmt" + "log" + "mockserver/internal/handler/assert" + "mockserver/internal/logging" + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/types" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathGetAPITriggerPresetsPresetID(dir *logging.HTTPFileDirectory, rt *tracking.RequestTracker) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + test := req.Header.Get("x-speakeasy-test-name") + instanceID := req.Header.Get("x-speakeasy-test-instance-id") + + count := rt.GetRequestCount(test, instanceID) + + switch fmt.Sprintf("%s[%d]", test, count) { + case "platform-trigger-presets-get[0]": + dir.HandlerFunc("platform-trigger-presets-get", testPlatformTriggerPresetsGetPlatformTriggerPresetsGet0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testPlatformTriggerPresetsGetPlatformTriggerPresetsGet0(w http.ResponseWriter, req *http.Request) { + if err := assert.SecurityAuthorizationHeader(req, false, "Bearer"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusUnauthorized) + return + } + if err := assert.AcceptHeader(req, []string{"application/json"}); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.HeaderExists(req, "User-Agent"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + var respBody *components.PlatformTriggerPresetGetResponse = &components.PlatformTriggerPresetGetResponse{ + TriggerPreset: components.PlatformTriggerPreset{ + PresetID: "GITHUB_1", + Datasource: "github", + DisplayName: "Review requested from me", + Description: types.String("A review is requested from the trigger creator on a pull request"), + Inputs: []components.PlatformTriggerPresetInput{}, + }, + RequestID: "", + } + respBodyBytes, err := utils.MarshalJSON(respBody, "", true) + + if err != nil { + http.Error( + w, + "Unable to encode response body as JSON: "+err.Error(), + http.StatusInternalServerError, + ) + return + } + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = w.Write(respBodyBytes) +} diff --git a/src/__tests__/mockserver/internal/handler/pathgetapitriggerpresetspresetidinputvalues.go b/src/__tests__/mockserver/internal/handler/pathgetapitriggerpresetspresetidinputvalues.go new file mode 100644 index 000000000..4ee901dcf --- /dev/null +++ b/src/__tests__/mockserver/internal/handler/pathgetapitriggerpresetspresetidinputvalues.go @@ -0,0 +1,72 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 90e14855e035 + +package handler + +import ( + "fmt" + "log" + "mockserver/internal/handler/assert" + "mockserver/internal/logging" + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathGetAPITriggerPresetsPresetIDInputValues(dir *logging.HTTPFileDirectory, rt *tracking.RequestTracker) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + test := req.Header.Get("x-speakeasy-test-name") + instanceID := req.Header.Get("x-speakeasy-test-instance-id") + + count := rt.GetRequestCount(test, instanceID) + + switch fmt.Sprintf("%s[%d]", test, count) { + case "platform-trigger-presets-input-values-list[0]": + dir.HandlerFunc("platform-trigger-presets-input-values-list", testPlatformTriggerPresetsInputValuesListPlatformTriggerPresetsInputValuesList0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testPlatformTriggerPresetsInputValuesListPlatformTriggerPresetsInputValuesList0(w http.ResponseWriter, req *http.Request) { + if err := assert.SecurityAuthorizationHeader(req, false, "Bearer"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusUnauthorized) + return + } + if err := assert.AcceptHeader(req, []string{"application/json"}); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.HeaderExists(req, "User-Agent"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + var respBody *components.PlatformTriggerPresetInputValueListResponse = &components.PlatformTriggerPresetInputValueListResponse{ + Results: []components.PlatformTriggerPresetInputValue{ + components.PlatformTriggerPresetInputValue{ + Value: "acme/payments-api", + DisplayName: "acme/payments-api", + }, + }, + IsTruncated: false, + RequestID: "", + } + respBodyBytes, err := utils.MarshalJSON(respBody, "", true) + + if err != nil { + http.Error( + w, + "Unable to encode response body as JSON: "+err.Error(), + http.StatusInternalServerError, + ) + return + } + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = w.Write(respBodyBytes) +} diff --git a/src/__tests__/mockserver/internal/handler/pathgetapitriggers.go b/src/__tests__/mockserver/internal/handler/pathgetapitriggers.go new file mode 100644 index 000000000..90905e6bd --- /dev/null +++ b/src/__tests__/mockserver/internal/handler/pathgetapitriggers.go @@ -0,0 +1,69 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: f494b7e57c3b + +package handler + +import ( + "fmt" + "log" + "mockserver/internal/handler/assert" + "mockserver/internal/logging" + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/types" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathGetAPITriggers(dir *logging.HTTPFileDirectory, rt *tracking.RequestTracker) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + test := req.Header.Get("x-speakeasy-test-name") + instanceID := req.Header.Get("x-speakeasy-test-instance-id") + + count := rt.GetRequestCount(test, instanceID) + + switch fmt.Sprintf("%s[%d]", test, count) { + case "platform-triggers-list[0]": + dir.HandlerFunc("platform-triggers-list", testPlatformTriggersListPlatformTriggersList0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testPlatformTriggersListPlatformTriggersList0(w http.ResponseWriter, req *http.Request) { + if err := assert.SecurityAuthorizationHeader(req, false, "Bearer"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusUnauthorized) + return + } + if err := assert.AcceptHeader(req, []string{"application/json"}); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.HeaderExists(req, "User-Agent"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + var respBody *components.PlatformTriggerListResponse = &components.PlatformTriggerListResponse{ + Results: []components.PlatformTrigger{}, + HasMore: true, + NextCursor: types.String(""), + RequestID: "", + } + respBodyBytes, err := utils.MarshalJSON(respBody, "", true) + + if err != nil { + http.Error( + w, + "Unable to encode response body as JSON: "+err.Error(), + http.StatusInternalServerError, + ) + return + } + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = w.Write(respBodyBytes) +} diff --git a/src/__tests__/mockserver/internal/handler/pathgetapitriggerstriggerid.go b/src/__tests__/mockserver/internal/handler/pathgetapitriggerstriggerid.go new file mode 100644 index 000000000..54a9adb91 --- /dev/null +++ b/src/__tests__/mockserver/internal/handler/pathgetapitriggerstriggerid.go @@ -0,0 +1,80 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 463c8d7bbd74 + +package handler + +import ( + "fmt" + "log" + "mockserver/internal/handler/assert" + "mockserver/internal/logging" + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/types" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathGetAPITriggersTriggerID(dir *logging.HTTPFileDirectory, rt *tracking.RequestTracker) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + test := req.Header.Get("x-speakeasy-test-name") + instanceID := req.Header.Get("x-speakeasy-test-instance-id") + + count := rt.GetRequestCount(test, instanceID) + + switch fmt.Sprintf("%s[%d]", test, count) { + case "platform-triggers-get[0]": + dir.HandlerFunc("platform-triggers-get", testPlatformTriggersGetPlatformTriggersGet0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testPlatformTriggersGetPlatformTriggersGet0(w http.ResponseWriter, req *http.Request) { + if err := assert.SecurityAuthorizationHeader(req, false, "Bearer"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusUnauthorized) + return + } + if err := assert.AcceptHeader(req, []string{"application/json"}); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.HeaderExists(req, "User-Agent"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + var respBody *components.PlatformTriggerGetResponse = &components.PlatformTriggerGetResponse{ + Trigger: components.PlatformTrigger{ + TriggerID: "trigger_test_123", + PresetID: "GITHUB_1", + Description: types.String("Reviews I am tagged on, sent to my team's review channel"), + Status: components.PlatformTriggerStatusEnabled, + Inputs: map[string]any{ + "repository": "acme/payments-api", + }, + Delivery: components.PlatformTriggerDeliveryOutput{ + WebhookURL: "https://customer.app/webhook", + }, + CreatedAt: types.MustTimeFromString("2024-01-06T01:37:37.232Z"), + UpdatedAt: types.MustTimeFromString("2025-07-02T01:19:47.126Z"), + }, + RequestID: "", + } + respBodyBytes, err := utils.MarshalJSON(respBody, "", true) + + if err != nil { + http.Error( + w, + "Unable to encode response body as JSON: "+err.Error(), + http.StatusInternalServerError, + ) + return + } + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = w.Write(respBodyBytes) +} diff --git a/src/__tests__/mockserver/internal/handler/pathpatchapitriggerstriggerid.go b/src/__tests__/mockserver/internal/handler/pathpatchapitriggerstriggerid.go new file mode 100644 index 000000000..c94cec352 --- /dev/null +++ b/src/__tests__/mockserver/internal/handler/pathpatchapitriggerstriggerid.go @@ -0,0 +1,85 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 60124b89f681 + +package handler + +import ( + "fmt" + "log" + "mockserver/internal/handler/assert" + "mockserver/internal/logging" + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/types" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathPatchAPITriggersTriggerID(dir *logging.HTTPFileDirectory, rt *tracking.RequestTracker) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + test := req.Header.Get("x-speakeasy-test-name") + instanceID := req.Header.Get("x-speakeasy-test-instance-id") + + count := rt.GetRequestCount(test, instanceID) + + switch fmt.Sprintf("%s[%d]", test, count) { + case "platform-triggers-update[0]": + dir.HandlerFunc("platform-triggers-update", testPlatformTriggersUpdatePlatformTriggersUpdate0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testPlatformTriggersUpdatePlatformTriggersUpdate0(w http.ResponseWriter, req *http.Request) { + if err := assert.SecurityAuthorizationHeader(req, false, "Bearer"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusUnauthorized) + return + } + if err := assert.ContentType(req, "application/json", true); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.AcceptHeader(req, []string{"application/json"}); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.HeaderExists(req, "User-Agent"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + var respBody *components.PlatformTriggerGetResponse = &components.PlatformTriggerGetResponse{ + Trigger: components.PlatformTrigger{ + TriggerID: "trigger_test_123", + PresetID: "GITHUB_1", + Description: types.String("Reviews I am tagged on, sent to my team's review channel"), + Status: components.PlatformTriggerStatusEnabled, + Inputs: map[string]any{ + "repository": "acme/payments-api", + }, + Delivery: components.PlatformTriggerDeliveryOutput{ + WebhookURL: "https://customer.app/webhook", + }, + CreatedAt: types.MustTimeFromString("2026-09-03T11:57:47.699Z"), + UpdatedAt: types.MustTimeFromString("2026-01-25T02:15:09.513Z"), + }, + RequestID: "", + } + respBodyBytes, err := utils.MarshalJSON(respBody, "", true) + + if err != nil { + http.Error( + w, + "Unable to encode response body as JSON: "+err.Error(), + http.StatusInternalServerError, + ) + return + } + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = w.Write(respBodyBytes) +} diff --git a/src/__tests__/mockserver/internal/handler/pathpostapitriggerpresetspresetideventssearch.go b/src/__tests__/mockserver/internal/handler/pathpostapitriggerpresetspresetideventssearch.go new file mode 100644 index 000000000..7d52adbbb --- /dev/null +++ b/src/__tests__/mockserver/internal/handler/pathpostapitriggerpresetspresetideventssearch.go @@ -0,0 +1,84 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: cccf2454ed3f + +package handler + +import ( + "fmt" + "log" + "mockserver/internal/handler/assert" + "mockserver/internal/logging" + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/types" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathPostAPITriggerPresetsPresetIDEventsSearch(dir *logging.HTTPFileDirectory, rt *tracking.RequestTracker) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + test := req.Header.Get("x-speakeasy-test-name") + instanceID := req.Header.Get("x-speakeasy-test-instance-id") + + count := rt.GetRequestCount(test, instanceID) + + switch fmt.Sprintf("%s[%d]", test, count) { + case "platform-trigger-presets-events-search[0]": + dir.HandlerFunc("platform-trigger-presets-events-search", testPlatformTriggerPresetsEventsSearchPlatformTriggerPresetsEventsSearch0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testPlatformTriggerPresetsEventsSearchPlatformTriggerPresetsEventsSearch0(w http.ResponseWriter, req *http.Request) { + if err := assert.SecurityAuthorizationHeader(req, false, "Bearer"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusUnauthorized) + return + } + if err := assert.ContentType(req, "application/json", false); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.AcceptHeader(req, []string{"application/json"}); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.HeaderExists(req, "User-Agent"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + var respBody *components.PlatformTriggerEventSearchResponse = &components.PlatformTriggerEventSearchResponse{ + Results: []components.PlatformTriggerEvent{ + components.PlatformTriggerEvent{ + EventType: components.PlatformTriggerEventTypeDocumentChange, + Datasource: "GITHUB", + Reason: components.PlatformTriggerEventReasonReviewRequested, + DocType: "pull", + DocID: "", + ViewURL: "https://prickly-cutover.info/", + Title: "", + EventTime: types.MustTimeFromString("2025-04-15T15:45:31.544Z"), + }, + }, + HasMore: false, + RequestID: "", + } + respBodyBytes, err := utils.MarshalJSON(respBody, "", true) + + if err != nil { + http.Error( + w, + "Unable to encode response body as JSON: "+err.Error(), + http.StatusInternalServerError, + ) + return + } + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = w.Write(respBodyBytes) +} diff --git a/src/__tests__/mockserver/internal/handler/pathpostapitriggers.go b/src/__tests__/mockserver/internal/handler/pathpostapitriggers.go new file mode 100644 index 000000000..4d5a24621 --- /dev/null +++ b/src/__tests__/mockserver/internal/handler/pathpostapitriggers.go @@ -0,0 +1,86 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 5ea81159ef53 + +package handler + +import ( + "fmt" + "log" + "mockserver/internal/handler/assert" + "mockserver/internal/logging" + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/types" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathPostAPITriggers(dir *logging.HTTPFileDirectory, rt *tracking.RequestTracker) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + test := req.Header.Get("x-speakeasy-test-name") + instanceID := req.Header.Get("x-speakeasy-test-instance-id") + + count := rt.GetRequestCount(test, instanceID) + + switch fmt.Sprintf("%s[%d]", test, count) { + case "platform-triggers-create[0]": + dir.HandlerFunc("platform-triggers-create", testPlatformTriggersCreatePlatformTriggersCreate0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testPlatformTriggersCreatePlatformTriggersCreate0(w http.ResponseWriter, req *http.Request) { + if err := assert.SecurityAuthorizationHeader(req, false, "Bearer"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusUnauthorized) + return + } + if err := assert.ContentType(req, "application/json", true); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.AcceptHeader(req, []string{"application/json"}); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.HeaderExists(req, "User-Agent"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + var respBody *components.PlatformTriggerCreateResponse = &components.PlatformTriggerCreateResponse{ + Trigger: components.PlatformTriggerWithSecret{ + TriggerID: "trigger_test_123", + PresetID: "GITHUB_1", + Description: types.String("Reviews I am tagged on, sent to my team's review channel"), + Status: components.PlatformTriggerStatusEnabled, + Inputs: map[string]any{ + "repository": "acme/payments-api", + }, + Delivery: components.PlatformTriggerDeliveryOutput{ + WebhookURL: "https://customer.app/webhook", + }, + CreatedAt: types.MustTimeFromString("2025-08-17T18:19:46.877Z"), + UpdatedAt: types.MustTimeFromString("2024-09-14T03:27:40.201Z"), + SigningSecret: "whsec_xxx", + }, + RequestID: "", + } + respBodyBytes, err := utils.MarshalJSON(respBody, "", true) + + if err != nil { + http.Error( + w, + "Unable to encode response body as JSON: "+err.Error(), + http.StatusInternalServerError, + ) + return + } + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusCreated) + _, _ = w.Write(respBodyBytes) +} diff --git a/src/__tests__/mockserver/internal/handler/pathpostapitriggerstriggerideventssearch.go b/src/__tests__/mockserver/internal/handler/pathpostapitriggerstriggerideventssearch.go new file mode 100644 index 000000000..54a751343 --- /dev/null +++ b/src/__tests__/mockserver/internal/handler/pathpostapitriggerstriggerideventssearch.go @@ -0,0 +1,84 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: dab45dea610f + +package handler + +import ( + "fmt" + "log" + "mockserver/internal/handler/assert" + "mockserver/internal/logging" + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/types" + "mockserver/internal/sdk/utils" + "mockserver/internal/tracking" + "net/http" +) + +func pathPostAPITriggersTriggerIDEventsSearch(dir *logging.HTTPFileDirectory, rt *tracking.RequestTracker) http.HandlerFunc { + return func(w http.ResponseWriter, req *http.Request) { + test := req.Header.Get("x-speakeasy-test-name") + instanceID := req.Header.Get("x-speakeasy-test-instance-id") + + count := rt.GetRequestCount(test, instanceID) + + switch fmt.Sprintf("%s[%d]", test, count) { + case "platform-triggers-events-search[0]": + dir.HandlerFunc("platform-triggers-events-search", testPlatformTriggersEventsSearchPlatformTriggersEventsSearch0)(w, req) + default: + http.Error(w, fmt.Sprintf("Unknown test: %s[%d]", test, count), http.StatusBadRequest) + } + } +} + +func testPlatformTriggersEventsSearchPlatformTriggersEventsSearch0(w http.ResponseWriter, req *http.Request) { + if err := assert.SecurityAuthorizationHeader(req, false, "Bearer"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusUnauthorized) + return + } + if err := assert.ContentType(req, "application/json", false); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.AcceptHeader(req, []string{"application/json"}); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + if err := assert.HeaderExists(req, "User-Agent"); err != nil { + log.Printf("assertion error: %s\n", err) + http.Error(w, err.Error(), http.StatusBadRequest) + return + } + var respBody *components.PlatformTriggerEventSearchResponse = &components.PlatformTriggerEventSearchResponse{ + Results: []components.PlatformTriggerEvent{ + components.PlatformTriggerEvent{ + EventType: components.PlatformTriggerEventTypeDocumentChange, + Datasource: "GITHUB", + Reason: components.PlatformTriggerEventReasonReviewRequested, + DocType: "pull", + DocID: "", + ViewURL: "https://silent-omelet.biz", + Title: "", + EventTime: types.MustTimeFromString("2024-06-12T22:23:25.274Z"), + }, + }, + HasMore: false, + RequestID: "", + } + respBodyBytes, err := utils.MarshalJSON(respBody, "", true) + + if err != nil { + http.Error( + w, + "Unable to encode response body as JSON: "+err.Error(), + http.StatusInternalServerError, + ) + return + } + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusOK) + _, _ = w.Write(respBodyBytes) +} diff --git a/src/__tests__/mockserver/internal/handler/pathpostrestapiv1getchat.go b/src/__tests__/mockserver/internal/handler/pathpostrestapiv1getchat.go index a7e16d16b..e2243868c 100644 --- a/src/__tests__/mockserver/internal/handler/pathpostrestapiv1getchat.go +++ b/src/__tests__/mockserver/internal/handler/pathpostrestapiv1getchat.go @@ -629,8 +629,8 @@ func testGetchatGetchat0(w http.ResponseWriter, req *http.Request) { Roles: []components.UserRoleSpecification{}, SourceDocumentSpec: types.Pointer(components.CreateDocumentSpecUnionDocumentSpec3( components.DocumentSpec3{ - UgcType: components.DocumentSpecUgcType1Announcements, - ContentID: 848009, + UgcType: components.DocumentSpecUgcType1Shortcuts, + ContentID: 602763, }, )), SourceType: components.AnswerSourceTypeAssistant.ToPointer(), diff --git a/src/__tests__/mockserver/internal/sdk/models/callbacks/platformtriggerscreate.go b/src/__tests__/mockserver/internal/sdk/models/callbacks/platformtriggerscreate.go new file mode 100644 index 000000000..37ccf40e8 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/callbacks/platformtriggerscreate.go @@ -0,0 +1,70 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 9f4d2c30444f + +package callbacks + +import ( + "mockserver/internal/sdk/models/components" +) + +type PlatformTriggersCreateTriggerWebhookEventResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` +} + +func (o *PlatformTriggersCreateTriggerWebhookEventResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +type PlatformTriggersCreateTriggerWebhookEventRequest struct { + // Opaque delivery ID. It remains stable across retries of the same event and can be used as an idempotency key. + WebhookID string `header:"style=simple,explode=false,name=webhook-id"` + // Unix time in seconds when this delivery attempt was signed. + WebhookTimestamp int64 `header:"style=simple,explode=false,name=webhook-timestamp"` + // `v1,` followed by the standard Base64-encoded HMAC-SHA256 digest. To verify it, remove the + // `whsec_` prefix from `signing_secret`, standard-Base64-decode the remainder, and use those + // bytes as the HMAC key. Sign the UTF-8 bytes of `webhook-id + "." + webhook-timestamp + "." + // + raw request body`. Verify the signature against the unmodified request body before + // parsing JSON, and use a constant-time comparison. + // + // Fixed test vector (the raw body is one line with no trailing newline): + // + // - decoded signing key bytes (UTF-8; test only): `test_webhook_signing_secret_1234` + // - `webhook-id`: `81e6dc877ac553ef96ecbc939c1e46431159491991ba55cd131fbd0e3746c6bc` + // - `webhook-timestamp`: `1700000000` + // - `raw request body`: `{"version":"1","trigger_id":"trigger_test_123","datasource":"GITHUB","reason":"REVIEW_REQUESTED","doc_type":"pull","event_type":"DOCUMENT_CHANGE","doc_id":"GITHUB_pull_123","view_url":"https://github.com/acme/payments-api/pull/123","title":"Add retry backoff to the crawler","event_time":"2025-04-23T11:00:00Z"}` + // - `webhook-signature`: `v1,JqvHW0dwAOSLndiwQdXLUS/P+2RvOO8x4sOWgA/w0Gs=` + // + WebhookSignature string `header:"style=simple,explode=false,name=webhook-signature"` + Body components.PlatformTriggerWebhookEvent `request:"mediaType=application/json"` +} + +func (o *PlatformTriggersCreateTriggerWebhookEventRequest) GetWebhookID() string { + if o == nil { + return "" + } + return o.WebhookID +} + +func (o *PlatformTriggersCreateTriggerWebhookEventRequest) GetWebhookTimestamp() int64 { + if o == nil { + return 0 + } + return o.WebhookTimestamp +} + +func (o *PlatformTriggersCreateTriggerWebhookEventRequest) GetWebhookSignature() string { + if o == nil { + return "" + } + return o.WebhookSignature +} + +func (o *PlatformTriggersCreateTriggerWebhookEventRequest) GetBody() components.PlatformTriggerWebhookEvent { + if o == nil { + return components.PlatformTriggerWebhookEvent{} + } + return o.Body +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/calendarevent.go b/src/__tests__/mockserver/internal/sdk/models/components/calendarevent.go index 5b5de4413..cb8469207 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/calendarevent.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/calendarevent.go @@ -6,6 +6,7 @@ package components import ( "encoding/json" "fmt" + "mockserver/internal/sdk/optionalnullable" ) // CalendarEventEventType - The nature of the event, for example "out of office". @@ -45,6 +46,12 @@ type CalendarEvent struct { // A permalink for this calendar event URL string `json:"url"` Attendees *CalendarAttendees `json:"attendees,omitempty"` + // Whether the requesting user is the organizer of this event. + IsOrganizer optionalnullable.OptionalNullable[bool] `json:"isOrganizer,omitempty"` + // The current booking status of the room resource associated with an event. + RoomBookingStatus *CalendarRoomBookingStatus `json:"roomBookingStatus,omitempty"` + // The display name of the room resource associated with this event. + RoomName *string `json:"roomName,omitempty"` // The location that this event is taking place at. Location *string `json:"location,omitempty"` ConferenceData *ConferenceData `json:"conferenceData,omitempty"` @@ -95,6 +102,27 @@ func (o *CalendarEvent) GetAttendees() *CalendarAttendees { return o.Attendees } +func (o *CalendarEvent) GetIsOrganizer() optionalnullable.OptionalNullable[bool] { + if o == nil { + return nil + } + return o.IsOrganizer +} + +func (o *CalendarEvent) GetRoomBookingStatus() *CalendarRoomBookingStatus { + if o == nil { + return nil + } + return o.RoomBookingStatus +} + +func (o *CalendarEvent) GetRoomName() *string { + if o == nil { + return nil + } + return o.RoomName +} + func (o *CalendarEvent) GetLocation() *string { if o == nil { return nil diff --git a/src/__tests__/mockserver/internal/sdk/models/components/calendarroombookingstatus.go b/src/__tests__/mockserver/internal/sdk/models/components/calendarroombookingstatus.go new file mode 100644 index 000000000..d4c5ee0b9 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/calendarroombookingstatus.go @@ -0,0 +1,42 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: ff0cce8cf47a + +package components + +import ( + "encoding/json" + "fmt" +) + +// CalendarRoomBookingStatus - The current booking status of the room resource associated with an event. +type CalendarRoomBookingStatus string + +const ( + CalendarRoomBookingStatusNone CalendarRoomBookingStatus = "NONE" + CalendarRoomBookingStatusAccepted CalendarRoomBookingStatus = "ACCEPTED" + CalendarRoomBookingStatusDeclined CalendarRoomBookingStatus = "DECLINED" + CalendarRoomBookingStatusPending CalendarRoomBookingStatus = "PENDING" +) + +func (e CalendarRoomBookingStatus) ToPointer() *CalendarRoomBookingStatus { + return &e +} +func (e *CalendarRoomBookingStatus) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "NONE": + fallthrough + case "ACCEPTED": + fallthrough + case "DECLINED": + fallthrough + case "PENDING": + *e = CalendarRoomBookingStatus(v) + return nil + default: + return fmt.Errorf("invalid value for CalendarRoomBookingStatus: %v", v) + } +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/feedentry.go b/src/__tests__/mockserver/internal/sdk/models/components/feedentry.go index c10cf6160..cc69d1755 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/feedentry.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/feedentry.go @@ -99,6 +99,7 @@ const ( JustificationTypeStarterKitOrgChart JustificationType = "STARTER_KIT_ORG_CHART" JustificationTypeStarterKitAddDoc JustificationType = "STARTER_KIT_ADD_DOC" JustificationTypeMeetingRecap JustificationType = "MEETING_RECAP" + JustificationTypeMeetingRoom JustificationType = "MEETING_ROOM" JustificationTypeMeetingPrepAutomation JustificationType = "MEETING_PREP_AUTOMATION" JustificationTypeActiveDiscussion JustificationType = "ACTIVE_DISCUSSION" JustificationTypeMidDayCatchUp JustificationType = "MID_DAY_CATCH_UP" @@ -115,6 +116,7 @@ const ( JustificationTypeOooPlanner JustificationType = "OOO_PLANNER" JustificationTypeOooCatchUp JustificationType = "OOO_CATCH_UP" JustificationTypeAdminHealthCenter JustificationType = "ADMIN_HEALTH_CENTER" + JustificationTypeKnowledgeGap JustificationType = "KNOWLEDGE_GAP" ) func (e JustificationType) ToPointer() *JustificationType { @@ -210,6 +212,8 @@ func (e *JustificationType) UnmarshalJSON(data []byte) error { fallthrough case "MEETING_RECAP": fallthrough + case "MEETING_ROOM": + fallthrough case "MEETING_PREP_AUTOMATION": fallthrough case "ACTIVE_DISCUSSION": @@ -241,6 +245,8 @@ func (e *JustificationType) UnmarshalJSON(data []byte) error { case "OOO_CATCH_UP": fallthrough case "ADMIN_HEALTH_CENTER": + fallthrough + case "KNOWLEDGE_GAP": *e = JustificationType(v) return nil default: diff --git a/src/__tests__/mockserver/internal/sdk/models/components/feedrequest.go b/src/__tests__/mockserver/internal/sdk/models/components/feedrequest.go index 0a92f1062..a5f8b3a90 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/feedrequest.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/feedrequest.go @@ -56,6 +56,7 @@ const ( FeedRequestCategoryOooPlanner FeedRequestCategory = "OOO_PLANNER" FeedRequestCategoryOooCatchUp FeedRequestCategory = "OOO_CATCH_UP" FeedRequestCategoryAdminHealthCenter FeedRequestCategory = "ADMIN_HEALTH_CENTER" + FeedRequestCategoryKnowledgeGap FeedRequestCategory = "KNOWLEDGE_GAP" ) func (e FeedRequestCategory) ToPointer() *FeedRequestCategory { @@ -156,6 +157,8 @@ func (e *FeedRequestCategory) UnmarshalJSON(data []byte) error { case "OOO_CATCH_UP": fallthrough case "ADMIN_HEALTH_CENTER": + fallthrough + case "KNOWLEDGE_GAP": *e = FeedRequestCategory(v) return nil default: diff --git a/src/__tests__/mockserver/internal/sdk/models/components/feedresult.go b/src/__tests__/mockserver/internal/sdk/models/components/feedresult.go index a3066261f..7d221ae18 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/feedresult.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/feedresult.go @@ -57,6 +57,7 @@ const ( FeedResultCategoryOooPlanner FeedResultCategory = "OOO_PLANNER" FeedResultCategoryOooCatchUp FeedResultCategory = "OOO_CATCH_UP" FeedResultCategoryAdminHealthCenter FeedResultCategory = "ADMIN_HEALTH_CENTER" + FeedResultCategoryKnowledgeGap FeedResultCategory = "KNOWLEDGE_GAP" ) func (e FeedResultCategory) ToPointer() *FeedResultCategory { @@ -157,6 +158,8 @@ func (e *FeedResultCategory) UnmarshalJSON(data []byte) error { case "OOO_CATCH_UP": fallthrough case "ADMIN_HEALTH_CENTER": + fallthrough + case "KNOWLEDGE_GAP": *e = FeedResultCategory(v) return nil default: @@ -164,12 +167,13 @@ func (e *FeedResultCategory) UnmarshalJSON(data []byte) error { } } -// PlacementReason - Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. +// PlacementReason - Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). type PlacementReason string const ( PlacementReasonOrganic PlacementReason = "ORGANIC" PlacementReasonPromo PlacementReason = "PROMO" + PlacementReasonPinned PlacementReason = "PINNED" ) func (e PlacementReason) ToPointer() *PlacementReason { @@ -184,6 +188,8 @@ func (e *PlacementReason) UnmarshalJSON(data []byte) error { case "ORGANIC": fallthrough case "PROMO": + fallthrough + case "PINNED": *e = PlacementReason(v) return nil default: @@ -199,7 +205,7 @@ type FeedResult struct { SecondaryEntries []FeedEntry `json:"secondaryEntries,omitempty"` // Rank of the result. Rank is suggested by server. Client side rank may differ. Rank *int64 `json:"rank,omitempty"` - // Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. + // Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). PlacementReason *PlacementReason `json:"placementReason,omitempty"` } diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformchatcitationannotation.go b/src/__tests__/mockserver/internal/sdk/models/components/platformchatcitationannotation.go index b0b9de0e9..792b81253 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/platformchatcitationannotation.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformchatcitationannotation.go @@ -12,7 +12,7 @@ import ( type PlatformChatCitationAnnotationType string const ( - PlatformChatCitationAnnotationTypeCitation PlatformChatCitationAnnotationType = "citation" + PlatformChatCitationAnnotationTypeCitation PlatformChatCitationAnnotationType = "CITATION" ) func (e PlatformChatCitationAnnotationType) ToPointer() *PlatformChatCitationAnnotationType { @@ -24,7 +24,7 @@ func (e *PlatformChatCitationAnnotationType) UnmarshalJSON(data []byte) error { return err } switch v { - case "citation": + case "CITATION": *e = PlatformChatCitationAnnotationType(v) return nil default: diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go b/src/__tests__/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go index 9e0cdb0a5..ccc1ffa7e 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformchatcompletedresponse.go @@ -14,7 +14,7 @@ import ( type Object string const ( - ObjectResponse Object = "response" + ObjectResponse Object = "RESPONSE" ) func (e Object) ToPointer() *Object { @@ -26,7 +26,7 @@ func (e *Object) UnmarshalJSON(data []byte) error { return err } switch v { - case "response": + case "RESPONSE": *e = Object(v) return nil default: @@ -37,7 +37,7 @@ func (e *Object) UnmarshalJSON(data []byte) error { type PlatformChatCompletedResponseStatus string const ( - PlatformChatCompletedResponseStatusCompleted PlatformChatCompletedResponseStatus = "completed" + PlatformChatCompletedResponseStatusCompleted PlatformChatCompletedResponseStatus = "COMPLETED" ) func (e PlatformChatCompletedResponseStatus) ToPointer() *PlatformChatCompletedResponseStatus { @@ -49,7 +49,7 @@ func (e *PlatformChatCompletedResponseStatus) UnmarshalJSON(data []byte) error { return err } switch v { - case "completed": + case "COMPLETED": *e = PlatformChatCompletedResponseStatus(v) return nil default: diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformchatcreaterequest.go b/src/__tests__/mockserver/internal/sdk/models/components/platformchatcreaterequest.go index 06561e4b8..204108288 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/platformchatcreaterequest.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformchatcreaterequest.go @@ -16,7 +16,7 @@ const ( InputTypeArrayOfPlatformChatInputMessage InputType = "arrayOfPlatformChatInputMessage" ) -// Input - Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. +// Input - Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. type Input struct { Str *string `queryParam:"inline"` ArrayOfPlatformChatInputMessage []PlatformChatInputMessage `queryParam:"inline"` @@ -74,7 +74,7 @@ func (u Input) MarshalJSON() ([]byte, error) { } type PlatformChatCreateRequest struct { - // Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. + // Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. // Input Input `json:"input"` // When true, respond with `text/event-stream`. When false or omitted, respond with `application/json`. diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go b/src/__tests__/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go index 1d41c6b64..def886172 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformchatcustomentitysource.go @@ -12,7 +12,7 @@ import ( type PlatformChatCustomEntitySourceType string const ( - PlatformChatCustomEntitySourceTypeCustomEntity PlatformChatCustomEntitySourceType = "custom_entity" + PlatformChatCustomEntitySourceTypeCustomEntity PlatformChatCustomEntitySourceType = "CUSTOM_ENTITY" ) func (e PlatformChatCustomEntitySourceType) ToPointer() *PlatformChatCustomEntitySourceType { @@ -24,7 +24,7 @@ func (e *PlatformChatCustomEntitySourceType) UnmarshalJSON(data []byte) error { return err } switch v { - case "custom_entity": + case "CUSTOM_ENTITY": *e = PlatformChatCustomEntitySourceType(v) return nil default: diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformchatdocumentsource.go b/src/__tests__/mockserver/internal/sdk/models/components/platformchatdocumentsource.go index 707be168d..3086e8358 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/platformchatdocumentsource.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformchatdocumentsource.go @@ -13,7 +13,7 @@ import ( type PlatformChatDocumentSourceType2 string const ( - PlatformChatDocumentSourceType2Document PlatformChatDocumentSourceType2 = "document" + PlatformChatDocumentSourceType2Document PlatformChatDocumentSourceType2 = "DOCUMENT" ) func (e PlatformChatDocumentSourceType2) ToPointer() *PlatformChatDocumentSourceType2 { @@ -25,7 +25,7 @@ func (e *PlatformChatDocumentSourceType2) UnmarshalJSON(data []byte) error { return err } switch v { - case "document": + case "DOCUMENT": *e = PlatformChatDocumentSourceType2(v) return nil default: @@ -90,7 +90,7 @@ func (o *PlatformChatDocumentSourceDocument2) GetDatasource() *string { type PlatformChatDocumentSourceType1 string const ( - PlatformChatDocumentSourceType1Document PlatformChatDocumentSourceType1 = "document" + PlatformChatDocumentSourceType1Document PlatformChatDocumentSourceType1 = "DOCUMENT" ) func (e PlatformChatDocumentSourceType1) ToPointer() *PlatformChatDocumentSourceType1 { @@ -102,7 +102,7 @@ func (e *PlatformChatDocumentSourceType1) UnmarshalJSON(data []byte) error { return err } switch v { - case "document": + case "DOCUMENT": *e = PlatformChatDocumentSourceType1(v) return nil default: diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformchatfilesource.go b/src/__tests__/mockserver/internal/sdk/models/components/platformchatfilesource.go index 69991a9a5..f1e39d695 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/platformchatfilesource.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformchatfilesource.go @@ -12,7 +12,7 @@ import ( type PlatformChatFileSourceType string const ( - PlatformChatFileSourceTypeFile PlatformChatFileSourceType = "file" + PlatformChatFileSourceTypeFile PlatformChatFileSourceType = "FILE" ) func (e PlatformChatFileSourceType) ToPointer() *PlatformChatFileSourceType { @@ -24,7 +24,7 @@ func (e *PlatformChatFileSourceType) UnmarshalJSON(data []byte) error { return err } switch v { - case "file": + case "FILE": *e = PlatformChatFileSourceType(v) return nil default: diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformchatinputmessage.go b/src/__tests__/mockserver/internal/sdk/models/components/platformchatinputmessage.go index df2c424a9..27fa64cbf 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/platformchatinputmessage.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformchatinputmessage.go @@ -12,8 +12,8 @@ import ( type PlatformChatInputMessageRole string const ( - PlatformChatInputMessageRoleUser PlatformChatInputMessageRole = "user" - PlatformChatInputMessageRoleAssistant PlatformChatInputMessageRole = "assistant" + PlatformChatInputMessageRoleUser PlatformChatInputMessageRole = "USER" + PlatformChatInputMessageRoleAssistant PlatformChatInputMessageRole = "ASSISTANT" ) func (e PlatformChatInputMessageRole) ToPointer() *PlatformChatInputMessageRole { @@ -25,9 +25,9 @@ func (e *PlatformChatInputMessageRole) UnmarshalJSON(data []byte) error { return err } switch v { - case "user": + case "USER": fallthrough - case "assistant": + case "ASSISTANT": *e = PlatformChatInputMessageRole(v) return nil default: diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformchatoutputmessage.go b/src/__tests__/mockserver/internal/sdk/models/components/platformchatoutputmessage.go index f02e9b2d2..a8a58d2ed 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/platformchatoutputmessage.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformchatoutputmessage.go @@ -11,7 +11,7 @@ import ( type PlatformChatOutputMessageType string const ( - PlatformChatOutputMessageTypeMessage PlatformChatOutputMessageType = "message" + PlatformChatOutputMessageTypeMessage PlatformChatOutputMessageType = "MESSAGE" ) func (e PlatformChatOutputMessageType) ToPointer() *PlatformChatOutputMessageType { @@ -23,7 +23,7 @@ func (e *PlatformChatOutputMessageType) UnmarshalJSON(data []byte) error { return err } switch v { - case "message": + case "MESSAGE": *e = PlatformChatOutputMessageType(v) return nil default: @@ -34,7 +34,7 @@ func (e *PlatformChatOutputMessageType) UnmarshalJSON(data []byte) error { type PlatformChatOutputMessageRole string const ( - PlatformChatOutputMessageRoleAssistant PlatformChatOutputMessageRole = "assistant" + PlatformChatOutputMessageRoleAssistant PlatformChatOutputMessageRole = "ASSISTANT" ) func (e PlatformChatOutputMessageRole) ToPointer() *PlatformChatOutputMessageRole { @@ -46,7 +46,7 @@ func (e *PlatformChatOutputMessageRole) UnmarshalJSON(data []byte) error { return err } switch v { - case "assistant": + case "ASSISTANT": *e = PlatformChatOutputMessageRole(v) return nil default: diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go b/src/__tests__/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go index dc6e6121b..0cecacad8 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformchatoutputtextcontent.go @@ -11,7 +11,7 @@ import ( type PlatformChatOutputTextContentType string const ( - PlatformChatOutputTextContentTypeOutputText PlatformChatOutputTextContentType = "output_text" + PlatformChatOutputTextContentTypeOutputText PlatformChatOutputTextContentType = "OUTPUT_TEXT" ) func (e PlatformChatOutputTextContentType) ToPointer() *PlatformChatOutputTextContentType { @@ -23,7 +23,7 @@ func (e *PlatformChatOutputTextContentType) UnmarshalJSON(data []byte) error { return err } switch v { - case "output_text": + case "OUTPUT_TEXT": *e = PlatformChatOutputTextContentType(v) return nil default: diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformchatpersonsource.go b/src/__tests__/mockserver/internal/sdk/models/components/platformchatpersonsource.go index f27dcb814..a17cf3988 100644 --- a/src/__tests__/mockserver/internal/sdk/models/components/platformchatpersonsource.go +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformchatpersonsource.go @@ -12,7 +12,7 @@ import ( type PlatformChatPersonSourceType string const ( - PlatformChatPersonSourceTypePerson PlatformChatPersonSourceType = "person" + PlatformChatPersonSourceTypePerson PlatformChatPersonSourceType = "PERSON" ) func (e PlatformChatPersonSourceType) ToPointer() *PlatformChatPersonSourceType { @@ -24,7 +24,7 @@ func (e *PlatformChatPersonSourceType) UnmarshalJSON(data []byte) error { return err } switch v { - case "person": + case "PERSON": *e = PlatformChatPersonSourceType(v) return nil default: diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformcontentschedulewebhookevent.go b/src/__tests__/mockserver/internal/sdk/models/components/platformcontentschedulewebhookevent.go new file mode 100644 index 000000000..f8284566f --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformcontentschedulewebhookevent.go @@ -0,0 +1,121 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 1dec110fbea1 + +package components + +import ( + "mockserver/internal/sdk/utils" + "time" +) + +type PlatformContentScheduleWebhookEvent struct { + // Webhook payload schema version. + Version string `json:"version"` + // ID of the Platform trigger that produced the event. + TriggerID string `json:"trigger_id"` + EventType string `json:"event_type"` + // Datasource the event originated from. + Datasource string `json:"datasource"` + // Why the event fired. + Reason string `json:"reason"` + // Datasource-specific object type. + DocType string `json:"doc_type"` + // Identifier of the document the event is about. + DocID string `json:"doc_id"` + // Link to the document in its source system. + ViewURL string `json:"view_url"` + // Title of the document, or the subject for email. + Title string `json:"title"` + // Relevant event time. Document changes use the source-observed time when available and otherwise the document ingestion time; content schedules use the scheduled time. Omitted when no timestamp is available. + EventTime *time.Time `json:"event_time,omitempty"` + // Offset in seconds from the scheduled time at which the trigger fired. + TimeOffsetSeconds int `json:"time_offset_seconds"` +} + +func (p PlatformContentScheduleWebhookEvent) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(p, "", false) +} + +func (p *PlatformContentScheduleWebhookEvent) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &p, "", false, []string{"version", "trigger_id", "event_type", "datasource", "reason", "doc_type", "doc_id", "view_url", "title", "time_offset_seconds"}); err != nil { + return err + } + return nil +} + +func (o *PlatformContentScheduleWebhookEvent) GetVersion() string { + if o == nil { + return "" + } + return o.Version +} + +func (o *PlatformContentScheduleWebhookEvent) GetTriggerID() string { + if o == nil { + return "" + } + return o.TriggerID +} + +func (o *PlatformContentScheduleWebhookEvent) GetEventType() string { + if o == nil { + return "" + } + return o.EventType +} + +func (o *PlatformContentScheduleWebhookEvent) GetDatasource() string { + if o == nil { + return "" + } + return o.Datasource +} + +func (o *PlatformContentScheduleWebhookEvent) GetReason() string { + if o == nil { + return "" + } + return o.Reason +} + +func (o *PlatformContentScheduleWebhookEvent) GetDocType() string { + if o == nil { + return "" + } + return o.DocType +} + +func (o *PlatformContentScheduleWebhookEvent) GetDocID() string { + if o == nil { + return "" + } + return o.DocID +} + +func (o *PlatformContentScheduleWebhookEvent) GetViewURL() string { + if o == nil { + return "" + } + return o.ViewURL +} + +func (o *PlatformContentScheduleWebhookEvent) GetTitle() string { + if o == nil { + return "" + } + return o.Title +} + +func (o *PlatformContentScheduleWebhookEvent) GetEventTime() *time.Time { + if o == nil { + return nil + } + return o.EventTime +} + +func (o *PlatformContentScheduleWebhookEvent) GetTimeOffsetSeconds() int { + if o == nil { + return 0 + } + return o.TimeOffsetSeconds +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformdocumentchangewebhookevent.go b/src/__tests__/mockserver/internal/sdk/models/components/platformdocumentchangewebhookevent.go new file mode 100644 index 000000000..44d358659 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformdocumentchangewebhookevent.go @@ -0,0 +1,130 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: e3d51bf15c74 + +package components + +import ( + "mockserver/internal/sdk/utils" + "time" +) + +type PlatformDocumentChangeWebhookEvent struct { + // Webhook payload schema version. + Version string `json:"version"` + // ID of the Platform trigger that produced the event. + TriggerID string `json:"trigger_id"` + EventType string `json:"event_type"` + // Datasource the event originated from. + Datasource string `json:"datasource"` + // Why the event fired. + Reason string `json:"reason"` + // Datasource-specific object type. + DocType string `json:"doc_type"` + // Identifier of the document the event is about. + DocID string `json:"doc_id"` + // Link to the document in its source system. + ViewURL string `json:"view_url"` + // Title of the document, or the subject for email. + Title string `json:"title"` + // Relevant event time. Document changes use the source-observed time when available and otherwise the document ingestion time; content schedules use the scheduled time. Omitted when no timestamp is available. + EventTime *time.Time `json:"event_time,omitempty"` + // Email body content when the event is for an email document. + Content *string `json:"content,omitempty"` + // Present and true when source content exceeded the delivery size limit. + ContentTruncated *bool `json:"content_truncated,omitempty"` +} + +func (p PlatformDocumentChangeWebhookEvent) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(p, "", false) +} + +func (p *PlatformDocumentChangeWebhookEvent) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &p, "", false, []string{"version", "trigger_id", "event_type", "datasource", "reason", "doc_type", "doc_id", "view_url", "title"}); err != nil { + return err + } + return nil +} + +func (o *PlatformDocumentChangeWebhookEvent) GetVersion() string { + if o == nil { + return "" + } + return o.Version +} + +func (o *PlatformDocumentChangeWebhookEvent) GetTriggerID() string { + if o == nil { + return "" + } + return o.TriggerID +} + +func (o *PlatformDocumentChangeWebhookEvent) GetEventType() string { + if o == nil { + return "" + } + return o.EventType +} + +func (o *PlatformDocumentChangeWebhookEvent) GetDatasource() string { + if o == nil { + return "" + } + return o.Datasource +} + +func (o *PlatformDocumentChangeWebhookEvent) GetReason() string { + if o == nil { + return "" + } + return o.Reason +} + +func (o *PlatformDocumentChangeWebhookEvent) GetDocType() string { + if o == nil { + return "" + } + return o.DocType +} + +func (o *PlatformDocumentChangeWebhookEvent) GetDocID() string { + if o == nil { + return "" + } + return o.DocID +} + +func (o *PlatformDocumentChangeWebhookEvent) GetViewURL() string { + if o == nil { + return "" + } + return o.ViewURL +} + +func (o *PlatformDocumentChangeWebhookEvent) GetTitle() string { + if o == nil { + return "" + } + return o.Title +} + +func (o *PlatformDocumentChangeWebhookEvent) GetEventTime() *time.Time { + if o == nil { + return nil + } + return o.EventTime +} + +func (o *PlatformDocumentChangeWebhookEvent) GetContent() *string { + if o == nil { + return nil + } + return o.Content +} + +func (o *PlatformDocumentChangeWebhookEvent) GetContentTruncated() *bool { + if o == nil { + return nil + } + return o.ContentTruncated +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtrigger.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtrigger.go new file mode 100644 index 000000000..1fbc8044c --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtrigger.go @@ -0,0 +1,94 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 9e1dbe70a16e + +package components + +import ( + "mockserver/internal/sdk/utils" + "time" +) + +type PlatformTrigger struct { + // ID of the trigger. + TriggerID string `json:"trigger_id"` + // ID of the preset this trigger was created from. + PresetID string `json:"preset_id"` + // Optional caller-supplied note describing this trigger. + Description *string `json:"description,omitempty"` + // Current trigger lifecycle state. + Status PlatformTriggerStatus `json:"status"` + // Values supplied for the preset's inputs. + Inputs map[string]any `json:"inputs,omitempty"` + Delivery PlatformTriggerDeliveryOutput `json:"delivery"` + // Time the trigger was created. + CreatedAt time.Time `json:"created_at"` + // Time the trigger was last updated. + UpdatedAt time.Time `json:"updated_at"` +} + +func (p PlatformTrigger) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(p, "", false) +} + +func (p *PlatformTrigger) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &p, "", false, []string{"trigger_id", "preset_id", "status", "delivery", "created_at", "updated_at"}); err != nil { + return err + } + return nil +} + +func (o *PlatformTrigger) GetTriggerID() string { + if o == nil { + return "" + } + return o.TriggerID +} + +func (o *PlatformTrigger) GetPresetID() string { + if o == nil { + return "" + } + return o.PresetID +} + +func (o *PlatformTrigger) GetDescription() *string { + if o == nil { + return nil + } + return o.Description +} + +func (o *PlatformTrigger) GetStatus() PlatformTriggerStatus { + if o == nil { + return PlatformTriggerStatus("") + } + return o.Status +} + +func (o *PlatformTrigger) GetInputs() map[string]any { + if o == nil { + return nil + } + return o.Inputs +} + +func (o *PlatformTrigger) GetDelivery() PlatformTriggerDeliveryOutput { + if o == nil { + return PlatformTriggerDeliveryOutput{} + } + return o.Delivery +} + +func (o *PlatformTrigger) GetCreatedAt() time.Time { + if o == nil { + return time.Time{} + } + return o.CreatedAt +} + +func (o *PlatformTrigger) GetUpdatedAt() time.Time { + if o == nil { + return time.Time{} + } + return o.UpdatedAt +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerauthoutput.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerauthoutput.go new file mode 100644 index 000000000..362627076 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerauthoutput.go @@ -0,0 +1,68 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 19714f2f7f1d + +package components + +import ( + "encoding/json" + "fmt" +) + +// PlatformTriggerAuthType - Credential scheme. +type PlatformTriggerAuthType string + +const ( + PlatformTriggerAuthTypeBearer PlatformTriggerAuthType = "BEARER" +) + +func (e PlatformTriggerAuthType) ToPointer() *PlatformTriggerAuthType { + return &e +} +func (e *PlatformTriggerAuthType) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "BEARER": + *e = PlatformTriggerAuthType(v) + return nil + default: + return fmt.Errorf("invalid value for PlatformTriggerAuthType: %v", v) + } +} + +// PlatformTriggerAuthOutput - Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. +type PlatformTriggerAuthOutput struct { + // Credential scheme. + Type PlatformTriggerAuthType `json:"type"` +} + +func (o *PlatformTriggerAuthOutput) GetType() PlatformTriggerAuthType { + if o == nil { + return PlatformTriggerAuthType("") + } + return o.Type +} + +// PlatformTriggerAuth - Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. +type PlatformTriggerAuth struct { + // Credential scheme. + Type PlatformTriggerAuthType `json:"type"` + // Secret credential value. Write-only; never returned on reads. + Secret string `json:"secret"` +} + +func (o *PlatformTriggerAuth) GetType() PlatformTriggerAuthType { + if o == nil { + return PlatformTriggerAuthType("") + } + return o.Type +} + +func (o *PlatformTriggerAuth) GetSecret() string { + if o == nil { + return "" + } + return o.Secret +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggercreaterequest.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggercreaterequest.go new file mode 100644 index 000000000..ca36065db --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggercreaterequest.go @@ -0,0 +1,42 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 3998088a527e + +package components + +type PlatformTriggerCreateRequest struct { + // ID of the preset to instantiate. + PresetID string `json:"preset_id"` + // Optional note describing this trigger. + Description *string `json:"description,omitempty"` + // Values for the preset's inputs. + Inputs map[string]any `json:"inputs,omitempty"` + Delivery PlatformTriggerDelivery `json:"delivery"` +} + +func (o *PlatformTriggerCreateRequest) GetPresetID() string { + if o == nil { + return "" + } + return o.PresetID +} + +func (o *PlatformTriggerCreateRequest) GetDescription() *string { + if o == nil { + return nil + } + return o.Description +} + +func (o *PlatformTriggerCreateRequest) GetInputs() map[string]any { + if o == nil { + return nil + } + return o.Inputs +} + +func (o *PlatformTriggerCreateRequest) GetDelivery() PlatformTriggerDelivery { + if o == nil { + return PlatformTriggerDelivery{} + } + return o.Delivery +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggercreateresponse.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggercreateresponse.go new file mode 100644 index 000000000..eb12985a4 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggercreateresponse.go @@ -0,0 +1,24 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 66f1748722fa + +package components + +type PlatformTriggerCreateResponse struct { + Trigger PlatformTriggerWithSecret `json:"trigger"` + // Platform-generated request ID for support correlation. + RequestID string `json:"request_id"` +} + +func (o *PlatformTriggerCreateResponse) GetTrigger() PlatformTriggerWithSecret { + if o == nil { + return PlatformTriggerWithSecret{} + } + return o.Trigger +} + +func (o *PlatformTriggerCreateResponse) GetRequestID() string { + if o == nil { + return "" + } + return o.RequestID +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerdelivery.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerdelivery.go new file mode 100644 index 000000000..a9e96bfa9 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerdelivery.go @@ -0,0 +1,25 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 60753ec0281e + +package components + +type PlatformTriggerDelivery struct { + // HTTPS URL that signed events are delivered to. + WebhookURL string `json:"webhook_url"` + // Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. + Auth *PlatformTriggerAuth `json:"auth,omitempty"` +} + +func (o *PlatformTriggerDelivery) GetWebhookURL() string { + if o == nil { + return "" + } + return o.WebhookURL +} + +func (o *PlatformTriggerDelivery) GetAuth() *PlatformTriggerAuth { + if o == nil { + return nil + } + return o.Auth +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerdeliveryoutput.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerdeliveryoutput.go new file mode 100644 index 000000000..7ab369980 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerdeliveryoutput.go @@ -0,0 +1,25 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: dde6e04e6eb6 + +package components + +type PlatformTriggerDeliveryOutput struct { + // HTTPS URL that signed events are delivered to. + WebhookURL string `json:"webhook_url"` + // Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. + Auth *PlatformTriggerAuthOutput `json:"auth,omitempty"` +} + +func (o *PlatformTriggerDeliveryOutput) GetWebhookURL() string { + if o == nil { + return "" + } + return o.WebhookURL +} + +func (o *PlatformTriggerDeliveryOutput) GetAuth() *PlatformTriggerAuthOutput { + if o == nil { + return nil + } + return o.Auth +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerevent.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerevent.go new file mode 100644 index 000000000..a756a2969 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerevent.go @@ -0,0 +1,96 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 2c0f8e7ebdba + +package components + +import ( + "mockserver/internal/sdk/utils" + "time" +) + +// PlatformTriggerEvent - A content event a trigger can fire on. +type PlatformTriggerEvent struct { + // The kind of event. + EventType PlatformTriggerEventType `json:"event_type"` + // Datasource the event originated from. + Datasource string `json:"datasource"` + // Why the event fired. + Reason PlatformTriggerEventReason `json:"reason"` + // Datasource-specific object type. + DocType string `json:"doc_type"` + // Identifier of the document the event is about. + DocID string `json:"doc_id"` + // Link to the document in its source system. + ViewURL string `json:"view_url"` + // Title of the document, or the subject for email. + Title string `json:"title"` + // When the event happened at the source: the document's own change timestamp for a document change, and the scheduled time for a content schedule. Omitted when the source did not supply one. + EventTime time.Time `json:"event_time"` +} + +func (p PlatformTriggerEvent) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(p, "", false) +} + +func (p *PlatformTriggerEvent) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &p, "", false, []string{"event_type", "datasource", "reason", "doc_type", "doc_id", "view_url", "title", "event_time"}); err != nil { + return err + } + return nil +} + +func (o *PlatformTriggerEvent) GetEventType() PlatformTriggerEventType { + if o == nil { + return PlatformTriggerEventType("") + } + return o.EventType +} + +func (o *PlatformTriggerEvent) GetDatasource() string { + if o == nil { + return "" + } + return o.Datasource +} + +func (o *PlatformTriggerEvent) GetReason() PlatformTriggerEventReason { + if o == nil { + return PlatformTriggerEventReason("") + } + return o.Reason +} + +func (o *PlatformTriggerEvent) GetDocType() string { + if o == nil { + return "" + } + return o.DocType +} + +func (o *PlatformTriggerEvent) GetDocID() string { + if o == nil { + return "" + } + return o.DocID +} + +func (o *PlatformTriggerEvent) GetViewURL() string { + if o == nil { + return "" + } + return o.ViewURL +} + +func (o *PlatformTriggerEvent) GetTitle() string { + if o == nil { + return "" + } + return o.Title +} + +func (o *PlatformTriggerEvent) GetEventTime() time.Time { + if o == nil { + return time.Time{} + } + return o.EventTime +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventreason.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventreason.go new file mode 100644 index 000000000..43165608e --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventreason.go @@ -0,0 +1,69 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 405ea0e78cf3 + +package components + +import ( + "encoding/json" + "fmt" +) + +// PlatformTriggerEventReason - Why the event fired. +type PlatformTriggerEventReason string + +const ( + PlatformTriggerEventReasonCreated PlatformTriggerEventReason = "CREATED" + PlatformTriggerEventReasonUpdated PlatformTriggerEventReason = "UPDATED" + PlatformTriggerEventReasonDeleted PlatformTriggerEventReason = "DELETED" + PlatformTriggerEventReasonMeetsCondition PlatformTriggerEventReason = "MEETS_CONDITION" + PlatformTriggerEventReasonAssigned PlatformTriggerEventReason = "ASSIGNED" + PlatformTriggerEventReasonUnassigned PlatformTriggerEventReason = "UNASSIGNED" + PlatformTriggerEventReasonLabeled PlatformTriggerEventReason = "LABELED" + PlatformTriggerEventReasonUnlabeled PlatformTriggerEventReason = "UNLABELED" + PlatformTriggerEventReasonReviewRequested PlatformTriggerEventReason = "REVIEW_REQUESTED" + PlatformTriggerEventReasonReviewRequestRemoved PlatformTriggerEventReason = "REVIEW_REQUEST_REMOVED" + PlatformTriggerEventReasonReadyForReview PlatformTriggerEventReason = "READY_FOR_REVIEW" + PlatformTriggerEventReasonConvertedToDraft PlatformTriggerEventReason = "CONVERTED_TO_DRAFT" + PlatformTriggerEventReasonWebhookUpdated PlatformTriggerEventReason = "WEBHOOK_UPDATED" +) + +func (e PlatformTriggerEventReason) ToPointer() *PlatformTriggerEventReason { + return &e +} +func (e *PlatformTriggerEventReason) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "CREATED": + fallthrough + case "UPDATED": + fallthrough + case "DELETED": + fallthrough + case "MEETS_CONDITION": + fallthrough + case "ASSIGNED": + fallthrough + case "UNASSIGNED": + fallthrough + case "LABELED": + fallthrough + case "UNLABELED": + fallthrough + case "REVIEW_REQUESTED": + fallthrough + case "REVIEW_REQUEST_REMOVED": + fallthrough + case "READY_FOR_REVIEW": + fallthrough + case "CONVERTED_TO_DRAFT": + fallthrough + case "WEBHOOK_UPDATED": + *e = PlatformTriggerEventReason(v) + return nil + default: + return fmt.Errorf("invalid value for PlatformTriggerEventReason: %v", v) + } +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventsearchrequest.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventsearchrequest.go new file mode 100644 index 000000000..efa845e42 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventsearchrequest.go @@ -0,0 +1,31 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: d25ba9f345f0 + +package components + +import ( + "mockserver/internal/sdk/utils" +) + +type PlatformTriggerEventSearchRequest struct { + // Maximum number of events to return. + PageSize *int64 `default:"10" json:"page_size"` +} + +func (p PlatformTriggerEventSearchRequest) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(p, "", false) +} + +func (p *PlatformTriggerEventSearchRequest) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &p, "", false, nil); err != nil { + return err + } + return nil +} + +func (o *PlatformTriggerEventSearchRequest) GetPageSize() *int64 { + if o == nil { + return nil + } + return o.PageSize +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventsearchresponse.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventsearchresponse.go new file mode 100644 index 000000000..e0fd80510 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventsearchresponse.go @@ -0,0 +1,35 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: f435d829b645 + +package components + +type PlatformTriggerEventSearchResponse struct { + // Matching events, most recent first. + Results []PlatformTriggerEvent `json:"results"` + // Whether more events matched than were returned. Raise `page_size` to see more; cursor-based paging is not offered yet. + // + HasMore bool `json:"has_more"` + // Unique identifier for this request, for support and debugging. + RequestID string `json:"request_id"` +} + +func (o *PlatformTriggerEventSearchResponse) GetResults() []PlatformTriggerEvent { + if o == nil { + return []PlatformTriggerEvent{} + } + return o.Results +} + +func (o *PlatformTriggerEventSearchResponse) GetHasMore() bool { + if o == nil { + return false + } + return o.HasMore +} + +func (o *PlatformTriggerEventSearchResponse) GetRequestID() string { + if o == nil { + return "" + } + return o.RequestID +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventtype.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventtype.go new file mode 100644 index 000000000..b13dc2f47 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggereventtype.go @@ -0,0 +1,33 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 5e48dd4bcd0a + +package components + +import ( + "encoding/json" + "fmt" +) + +// PlatformTriggerEventType - The kind of event. +type PlatformTriggerEventType string + +const ( + PlatformTriggerEventTypeDocumentChange PlatformTriggerEventType = "DOCUMENT_CHANGE" +) + +func (e PlatformTriggerEventType) ToPointer() *PlatformTriggerEventType { + return &e +} +func (e *PlatformTriggerEventType) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "DOCUMENT_CHANGE": + *e = PlatformTriggerEventType(v) + return nil + default: + return fmt.Errorf("invalid value for PlatformTriggerEventType: %v", v) + } +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggergetresponse.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggergetresponse.go new file mode 100644 index 000000000..ea6c1b93d --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggergetresponse.go @@ -0,0 +1,24 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 64b98792dbba + +package components + +type PlatformTriggerGetResponse struct { + Trigger PlatformTrigger `json:"trigger"` + // Platform-generated request ID for support correlation. + RequestID string `json:"request_id"` +} + +func (o *PlatformTriggerGetResponse) GetTrigger() PlatformTrigger { + if o == nil { + return PlatformTrigger{} + } + return o.Trigger +} + +func (o *PlatformTriggerGetResponse) GetRequestID() string { + if o == nil { + return "" + } + return o.RequestID +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerlistresponse.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerlistresponse.go new file mode 100644 index 000000000..1cee1c54e --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerlistresponse.go @@ -0,0 +1,43 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: abf652846301 + +package components + +type PlatformTriggerListResponse struct { + // Triggers owned by the caller. + Results []PlatformTrigger `json:"results"` + // Whether additional results are available. + HasMore bool `json:"has_more"` + // Cursor for the next page, or null when no more results are available. + NextCursor *string `json:"next_cursor"` + // Platform-generated request ID for support correlation. + RequestID string `json:"request_id"` +} + +func (o *PlatformTriggerListResponse) GetResults() []PlatformTrigger { + if o == nil { + return []PlatformTrigger{} + } + return o.Results +} + +func (o *PlatformTriggerListResponse) GetHasMore() bool { + if o == nil { + return false + } + return o.HasMore +} + +func (o *PlatformTriggerListResponse) GetNextCursor() *string { + if o == nil { + return nil + } + return o.NextCursor +} + +func (o *PlatformTriggerListResponse) GetRequestID() string { + if o == nil { + return "" + } + return o.RequestID +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpreset.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpreset.go new file mode 100644 index 000000000..3208faada --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpreset.go @@ -0,0 +1,52 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 08efcfe12520 + +package components + +type PlatformTriggerPreset struct { + // ID of the preset. Pass this when creating a trigger. + PresetID string `json:"preset_id"` + // Datasource the preset fires on. + Datasource string `json:"datasource"` + // Human-readable preset name. + DisplayName string `json:"display_name"` + // Human-readable description of when the preset fires. + Description *string `json:"description,omitempty"` + // Inputs the caller may supply when creating a trigger from this preset. + Inputs []PlatformTriggerPresetInput `json:"inputs"` +} + +func (o *PlatformTriggerPreset) GetPresetID() string { + if o == nil { + return "" + } + return o.PresetID +} + +func (o *PlatformTriggerPreset) GetDatasource() string { + if o == nil { + return "" + } + return o.Datasource +} + +func (o *PlatformTriggerPreset) GetDisplayName() string { + if o == nil { + return "" + } + return o.DisplayName +} + +func (o *PlatformTriggerPreset) GetDescription() *string { + if o == nil { + return nil + } + return o.Description +} + +func (o *PlatformTriggerPreset) GetInputs() []PlatformTriggerPresetInput { + if o == nil { + return []PlatformTriggerPresetInput{} + } + return o.Inputs +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpreseteventsearchrequest.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpreseteventsearchrequest.go new file mode 100644 index 000000000..9ab06d308 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpreseteventsearchrequest.go @@ -0,0 +1,41 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 18d2dc638cce + +package components + +import ( + "mockserver/internal/sdk/utils" +) + +type PlatformTriggerPresetEventSearchRequest struct { + // Values for the preset's input fields, keyed by field name. + // + Inputs map[string]string `json:"inputs,omitempty"` + // Maximum number of events to return. + PageSize *int64 `default:"10" json:"page_size"` +} + +func (p PlatformTriggerPresetEventSearchRequest) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(p, "", false) +} + +func (p *PlatformTriggerPresetEventSearchRequest) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &p, "", false, nil); err != nil { + return err + } + return nil +} + +func (o *PlatformTriggerPresetEventSearchRequest) GetInputs() map[string]string { + if o == nil { + return nil + } + return o.Inputs +} + +func (o *PlatformTriggerPresetEventSearchRequest) GetPageSize() *int64 { + if o == nil { + return nil + } + return o.PageSize +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetgetresponse.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetgetresponse.go new file mode 100644 index 000000000..427979a95 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetgetresponse.go @@ -0,0 +1,24 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 8f41ea4211ca + +package components + +type PlatformTriggerPresetGetResponse struct { + TriggerPreset PlatformTriggerPreset `json:"trigger_preset"` + // Platform-generated request ID for support correlation. + RequestID string `json:"request_id"` +} + +func (o *PlatformTriggerPresetGetResponse) GetTriggerPreset() PlatformTriggerPreset { + if o == nil { + return PlatformTriggerPreset{} + } + return o.TriggerPreset +} + +func (o *PlatformTriggerPresetGetResponse) GetRequestID() string { + if o == nil { + return "" + } + return o.RequestID +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinput.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinput.go new file mode 100644 index 000000000..6629c89a8 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinput.go @@ -0,0 +1,63 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: c6236742b533 + +package components + +type PlatformTriggerPresetInput struct { + // Identifier of the input, supplied as a key in the trigger's `inputs`. + Field string `json:"field"` + // Type of a preset input. + Type PlatformTriggerPresetInputType `json:"type"` + // Human-readable name for the input. + DisplayName string `json:"display_name"` + // Whether the caller must supply a value for this input. + IsRequired bool `json:"is_required"` + // Bounded initial set of selectable values for a picklist input. Omitted entirely for free-text inputs. + // + Values []PlatformTriggerPresetInputValue `json:"values,omitempty"` + // Whether additional selectable values were omitted from `values`. When true, use GET /trigger-presets/{preset_id}/input-values with a query to narrow the result set. + // + IsTruncated *bool `json:"is_truncated,omitempty"` +} + +func (o *PlatformTriggerPresetInput) GetField() string { + if o == nil { + return "" + } + return o.Field +} + +func (o *PlatformTriggerPresetInput) GetType() PlatformTriggerPresetInputType { + if o == nil { + return PlatformTriggerPresetInputType("") + } + return o.Type +} + +func (o *PlatformTriggerPresetInput) GetDisplayName() string { + if o == nil { + return "" + } + return o.DisplayName +} + +func (o *PlatformTriggerPresetInput) GetIsRequired() bool { + if o == nil { + return false + } + return o.IsRequired +} + +func (o *PlatformTriggerPresetInput) GetValues() []PlatformTriggerPresetInputValue { + if o == nil { + return nil + } + return o.Values +} + +func (o *PlatformTriggerPresetInput) GetIsTruncated() *bool { + if o == nil { + return nil + } + return o.IsTruncated +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinputtype.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinputtype.go new file mode 100644 index 000000000..c7a91822a --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinputtype.go @@ -0,0 +1,39 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: a219707dd271 + +package components + +import ( + "encoding/json" + "fmt" +) + +// PlatformTriggerPresetInputType - Type of a preset input. +type PlatformTriggerPresetInputType string + +const ( + PlatformTriggerPresetInputTypePicklist PlatformTriggerPresetInputType = "PICKLIST" + PlatformTriggerPresetInputTypeText PlatformTriggerPresetInputType = "TEXT" + PlatformTriggerPresetInputTypeUser PlatformTriggerPresetInputType = "USER" +) + +func (e PlatformTriggerPresetInputType) ToPointer() *PlatformTriggerPresetInputType { + return &e +} +func (e *PlatformTriggerPresetInputType) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "PICKLIST": + fallthrough + case "TEXT": + fallthrough + case "USER": + *e = PlatformTriggerPresetInputType(v) + return nil + default: + return fmt.Errorf("invalid value for PlatformTriggerPresetInputType: %v", v) + } +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinputvalue.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinputvalue.go new file mode 100644 index 000000000..1d4e8732e --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinputvalue.go @@ -0,0 +1,26 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 40c940d549ae + +package components + +type PlatformTriggerPresetInputValue struct { + // The exact value to send in the trigger's `inputs` for this choice (e.g. a channel name, a user's email, etc). + // + Value string `json:"value"` + // Human-readable name for this value. + DisplayName string `json:"display_name"` +} + +func (o *PlatformTriggerPresetInputValue) GetValue() string { + if o == nil { + return "" + } + return o.Value +} + +func (o *PlatformTriggerPresetInputValue) GetDisplayName() string { + if o == nil { + return "" + } + return o.DisplayName +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinputvaluelistresponse.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinputvaluelistresponse.go new file mode 100644 index 000000000..07b41f1c4 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetinputvaluelistresponse.go @@ -0,0 +1,35 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: db1a212739d1 + +package components + +type PlatformTriggerPresetInputValueListResponse struct { + // The bounded set of selectable values matching the query. + Results []PlatformTriggerPresetInputValue `json:"results"` + // Whether additional matches were omitted. When true, refine `query` to narrow the result set. + // + IsTruncated bool `json:"is_truncated"` + // Platform-generated request ID for support correlation. + RequestID string `json:"request_id"` +} + +func (o *PlatformTriggerPresetInputValueListResponse) GetResults() []PlatformTriggerPresetInputValue { + if o == nil { + return []PlatformTriggerPresetInputValue{} + } + return o.Results +} + +func (o *PlatformTriggerPresetInputValueListResponse) GetIsTruncated() bool { + if o == nil { + return false + } + return o.IsTruncated +} + +func (o *PlatformTriggerPresetInputValueListResponse) GetRequestID() string { + if o == nil { + return "" + } + return o.RequestID +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetlistresponse.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetlistresponse.go new file mode 100644 index 000000000..d419129d6 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetlistresponse.go @@ -0,0 +1,43 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 25016540ff2e + +package components + +type PlatformTriggerPresetListResponse struct { + // Trigger presets available to the caller. + Results []PlatformTriggerPresetSummary `json:"results"` + // Whether additional results are available. + HasMore bool `json:"has_more"` + // Cursor for the next page, or null when no more results are available. + NextCursor *string `json:"next_cursor"` + // Platform-generated request ID for support correlation. + RequestID string `json:"request_id"` +} + +func (o *PlatformTriggerPresetListResponse) GetResults() []PlatformTriggerPresetSummary { + if o == nil { + return []PlatformTriggerPresetSummary{} + } + return o.Results +} + +func (o *PlatformTriggerPresetListResponse) GetHasMore() bool { + if o == nil { + return false + } + return o.HasMore +} + +func (o *PlatformTriggerPresetListResponse) GetNextCursor() *string { + if o == nil { + return nil + } + return o.NextCursor +} + +func (o *PlatformTriggerPresetListResponse) GetRequestID() string { + if o == nil { + return "" + } + return o.RequestID +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetsummary.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetsummary.go new file mode 100644 index 000000000..21379947f --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerpresetsummary.go @@ -0,0 +1,43 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 1ce129382e94 + +package components + +type PlatformTriggerPresetSummary struct { + // ID of the preset. Pass this when creating a trigger. + PresetID string `json:"preset_id"` + // Datasource the preset fires on. + Datasource string `json:"datasource"` + // Human-readable preset name. + DisplayName string `json:"display_name"` + // Human-readable description of when the preset fires. + Description *string `json:"description,omitempty"` +} + +func (o *PlatformTriggerPresetSummary) GetPresetID() string { + if o == nil { + return "" + } + return o.PresetID +} + +func (o *PlatformTriggerPresetSummary) GetDatasource() string { + if o == nil { + return "" + } + return o.Datasource +} + +func (o *PlatformTriggerPresetSummary) GetDisplayName() string { + if o == nil { + return "" + } + return o.DisplayName +} + +func (o *PlatformTriggerPresetSummary) GetDescription() *string { + if o == nil { + return nil + } + return o.Description +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerstatus.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerstatus.go new file mode 100644 index 000000000..32840b782 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerstatus.go @@ -0,0 +1,36 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 44b0e6baa4bd + +package components + +import ( + "encoding/json" + "fmt" +) + +// PlatformTriggerStatus - Current trigger lifecycle state. +type PlatformTriggerStatus string + +const ( + PlatformTriggerStatusEnabled PlatformTriggerStatus = "ENABLED" + PlatformTriggerStatusDisabled PlatformTriggerStatus = "DISABLED" +) + +func (e PlatformTriggerStatus) ToPointer() *PlatformTriggerStatus { + return &e +} +func (e *PlatformTriggerStatus) UnmarshalJSON(data []byte) error { + var v string + if err := json.Unmarshal(data, &v); err != nil { + return err + } + switch v { + case "ENABLED": + fallthrough + case "DISABLED": + *e = PlatformTriggerStatus(v) + return nil + default: + return fmt.Errorf("invalid value for PlatformTriggerStatus: %v", v) + } +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerupdaterequest.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerupdaterequest.go new file mode 100644 index 000000000..ce65a5ae6 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerupdaterequest.go @@ -0,0 +1,43 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 5ce573b641d5 + +package components + +// PlatformTriggerUpdateRequest - Partial update. Only the supplied fields are changed. +type PlatformTriggerUpdateRequest struct { + // Current trigger lifecycle state. + Status *PlatformTriggerStatus `json:"status,omitempty"` + // Optional note describing this trigger. + Description *string `json:"description,omitempty"` + // Values for the preset's inputs. + Inputs map[string]any `json:"inputs,omitempty"` + Delivery *PlatformTriggerDelivery `json:"delivery,omitempty"` +} + +func (o *PlatformTriggerUpdateRequest) GetStatus() *PlatformTriggerStatus { + if o == nil { + return nil + } + return o.Status +} + +func (o *PlatformTriggerUpdateRequest) GetDescription() *string { + if o == nil { + return nil + } + return o.Description +} + +func (o *PlatformTriggerUpdateRequest) GetInputs() map[string]any { + if o == nil { + return nil + } + return o.Inputs +} + +func (o *PlatformTriggerUpdateRequest) GetDelivery() *PlatformTriggerDelivery { + if o == nil { + return nil + } + return o.Delivery +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerwebhookevent.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerwebhookevent.go new file mode 100644 index 000000000..ab3c71f53 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerwebhookevent.go @@ -0,0 +1,74 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 5358430e5961 + +package components + +import ( + "errors" + "fmt" + "mockserver/internal/sdk/utils" +) + +type PlatformTriggerWebhookEventType string + +const ( + PlatformTriggerWebhookEventTypePlatformDocumentChangeWebhookEvent PlatformTriggerWebhookEventType = "PlatformDocumentChangeWebhookEvent" + PlatformTriggerWebhookEventTypePlatformContentScheduleWebhookEvent PlatformTriggerWebhookEventType = "PlatformContentScheduleWebhookEvent" +) + +// PlatformTriggerWebhookEvent - Every delivered webhook is one of these two variants. A trigger with a cron schedule carries no document and so cannot be delivered over a webhook. +type PlatformTriggerWebhookEvent struct { + PlatformDocumentChangeWebhookEvent *PlatformDocumentChangeWebhookEvent `queryParam:"inline"` + PlatformContentScheduleWebhookEvent *PlatformContentScheduleWebhookEvent `queryParam:"inline"` + + Type PlatformTriggerWebhookEventType +} + +func CreatePlatformTriggerWebhookEventPlatformDocumentChangeWebhookEvent(platformDocumentChangeWebhookEvent PlatformDocumentChangeWebhookEvent) PlatformTriggerWebhookEvent { + typ := PlatformTriggerWebhookEventTypePlatformDocumentChangeWebhookEvent + + return PlatformTriggerWebhookEvent{ + PlatformDocumentChangeWebhookEvent: &platformDocumentChangeWebhookEvent, + Type: typ, + } +} + +func CreatePlatformTriggerWebhookEventPlatformContentScheduleWebhookEvent(platformContentScheduleWebhookEvent PlatformContentScheduleWebhookEvent) PlatformTriggerWebhookEvent { + typ := PlatformTriggerWebhookEventTypePlatformContentScheduleWebhookEvent + + return PlatformTriggerWebhookEvent{ + PlatformContentScheduleWebhookEvent: &platformContentScheduleWebhookEvent, + Type: typ, + } +} + +func (u *PlatformTriggerWebhookEvent) UnmarshalJSON(data []byte) error { + + var platformContentScheduleWebhookEvent PlatformContentScheduleWebhookEvent = PlatformContentScheduleWebhookEvent{} + if err := utils.UnmarshalJSON(data, &platformContentScheduleWebhookEvent, "", true, nil); err == nil { + u.PlatformContentScheduleWebhookEvent = &platformContentScheduleWebhookEvent + u.Type = PlatformTriggerWebhookEventTypePlatformContentScheduleWebhookEvent + return nil + } + + var platformDocumentChangeWebhookEvent PlatformDocumentChangeWebhookEvent = PlatformDocumentChangeWebhookEvent{} + if err := utils.UnmarshalJSON(data, &platformDocumentChangeWebhookEvent, "", true, nil); err == nil { + u.PlatformDocumentChangeWebhookEvent = &platformDocumentChangeWebhookEvent + u.Type = PlatformTriggerWebhookEventTypePlatformDocumentChangeWebhookEvent + return nil + } + + return fmt.Errorf("could not unmarshal `%s` into any supported union types for PlatformTriggerWebhookEvent", string(data)) +} + +func (u PlatformTriggerWebhookEvent) MarshalJSON() ([]byte, error) { + if u.PlatformDocumentChangeWebhookEvent != nil { + return utils.MarshalJSON(u.PlatformDocumentChangeWebhookEvent, "", true) + } + + if u.PlatformContentScheduleWebhookEvent != nil { + return utils.MarshalJSON(u.PlatformContentScheduleWebhookEvent, "", true) + } + + return nil, errors.New("could not marshal union type PlatformTriggerWebhookEvent: all fields are null") +} diff --git a/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerwithsecret.go b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerwithsecret.go new file mode 100644 index 000000000..45f0f6422 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/components/platformtriggerwithsecret.go @@ -0,0 +1,103 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 0751b4273ea2 + +package components + +import ( + "mockserver/internal/sdk/utils" + "time" +) + +type PlatformTriggerWithSecret struct { + // ID of the trigger. + TriggerID string `json:"trigger_id"` + // ID of the preset this trigger was created from. + PresetID string `json:"preset_id"` + // Optional caller-supplied note describing this trigger. + Description *string `json:"description,omitempty"` + // Current trigger lifecycle state. + Status PlatformTriggerStatus `json:"status"` + // Values supplied for the preset's inputs. + Inputs map[string]any `json:"inputs,omitempty"` + Delivery PlatformTriggerDeliveryOutput `json:"delivery"` + // Time the trigger was created. + CreatedAt time.Time `json:"created_at"` + // Time the trigger was last updated. + UpdatedAt time.Time `json:"updated_at"` + // Secret for verifying webhook signatures, serialized as `whsec_` following Standard Webhooks. Returned only when the trigger is created and cannot be retrieved later. Store it securely. + SigningSecret string `json:"signing_secret"` +} + +func (p PlatformTriggerWithSecret) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(p, "", false) +} + +func (p *PlatformTriggerWithSecret) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &p, "", false, []string{"trigger_id", "preset_id", "status", "delivery", "created_at", "updated_at", "signing_secret"}); err != nil { + return err + } + return nil +} + +func (o *PlatformTriggerWithSecret) GetTriggerID() string { + if o == nil { + return "" + } + return o.TriggerID +} + +func (o *PlatformTriggerWithSecret) GetPresetID() string { + if o == nil { + return "" + } + return o.PresetID +} + +func (o *PlatformTriggerWithSecret) GetDescription() *string { + if o == nil { + return nil + } + return o.Description +} + +func (o *PlatformTriggerWithSecret) GetStatus() PlatformTriggerStatus { + if o == nil { + return PlatformTriggerStatus("") + } + return o.Status +} + +func (o *PlatformTriggerWithSecret) GetInputs() map[string]any { + if o == nil { + return nil + } + return o.Inputs +} + +func (o *PlatformTriggerWithSecret) GetDelivery() PlatformTriggerDeliveryOutput { + if o == nil { + return PlatformTriggerDeliveryOutput{} + } + return o.Delivery +} + +func (o *PlatformTriggerWithSecret) GetCreatedAt() time.Time { + if o == nil { + return time.Time{} + } + return o.CreatedAt +} + +func (o *PlatformTriggerWithSecret) GetUpdatedAt() time.Time { + if o == nil { + return time.Time{} + } + return o.UpdatedAt +} + +func (o *PlatformTriggerWithSecret) GetSigningSecret() string { + if o == nil { + return "" + } + return o.SigningSecret +} diff --git a/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetseventssearch.go b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetseventssearch.go new file mode 100644 index 000000000..b20ea6ed9 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetseventssearch.go @@ -0,0 +1,48 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: dd503042e330 + +package operations + +import ( + "mockserver/internal/sdk/models/components" +) + +type PlatformTriggerPresetsEventsSearchRequest struct { + // ID of the preset to preview. + PresetID string `pathParam:"style=simple,explode=false,name=preset_id"` + Body *components.PlatformTriggerPresetEventSearchRequest `request:"mediaType=application/json"` +} + +func (o *PlatformTriggerPresetsEventsSearchRequest) GetPresetID() string { + if o == nil { + return "" + } + return o.PresetID +} + +func (o *PlatformTriggerPresetsEventsSearchRequest) GetBody() *components.PlatformTriggerPresetEventSearchRequest { + if o == nil { + return nil + } + return o.Body +} + +type PlatformTriggerPresetsEventsSearchResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerEventSearchResponse *components.PlatformTriggerEventSearchResponse +} + +func (o *PlatformTriggerPresetsEventsSearchResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *PlatformTriggerPresetsEventsSearchResponse) GetPlatformTriggerEventSearchResponse() *components.PlatformTriggerEventSearchResponse { + if o == nil { + return nil + } + return o.PlatformTriggerEventSearchResponse +} diff --git a/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetsget.go b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetsget.go new file mode 100644 index 000000000..d4c99aa90 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetsget.go @@ -0,0 +1,40 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: aed476f89b5e + +package operations + +import ( + "mockserver/internal/sdk/models/components" +) + +type PlatformTriggerPresetsGetRequest struct { + // ID of the preset to retrieve. + PresetID string `pathParam:"style=simple,explode=false,name=preset_id"` +} + +func (o *PlatformTriggerPresetsGetRequest) GetPresetID() string { + if o == nil { + return "" + } + return o.PresetID +} + +type PlatformTriggerPresetsGetResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerPresetGetResponse *components.PlatformTriggerPresetGetResponse +} + +func (o *PlatformTriggerPresetsGetResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *PlatformTriggerPresetsGetResponse) GetPlatformTriggerPresetGetResponse() *components.PlatformTriggerPresetGetResponse { + if o == nil { + return nil + } + return o.PlatformTriggerPresetGetResponse +} diff --git a/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetsinputvalueslist.go b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetsinputvalueslist.go new file mode 100644 index 000000000..011a8a3f5 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetsinputvalueslist.go @@ -0,0 +1,59 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: ff41e38b05e8 + +package operations + +import ( + "mockserver/internal/sdk/models/components" +) + +type PlatformTriggerPresetsInputValuesListRequest struct { + // ID of the preset the input belongs to. + PresetID string `pathParam:"style=simple,explode=false,name=preset_id"` + // Field identifier of the input whose values to list. + Field string `queryParam:"style=form,explode=true,name=field"` + // Prefix filter over the input's option values, for typeahead. Matching is on the option value, not its display name. + // + Query *string `queryParam:"style=form,explode=true,name=query"` +} + +func (o *PlatformTriggerPresetsInputValuesListRequest) GetPresetID() string { + if o == nil { + return "" + } + return o.PresetID +} + +func (o *PlatformTriggerPresetsInputValuesListRequest) GetField() string { + if o == nil { + return "" + } + return o.Field +} + +func (o *PlatformTriggerPresetsInputValuesListRequest) GetQuery() *string { + if o == nil { + return nil + } + return o.Query +} + +type PlatformTriggerPresetsInputValuesListResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerPresetInputValueListResponse *components.PlatformTriggerPresetInputValueListResponse +} + +func (o *PlatformTriggerPresetsInputValuesListResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *PlatformTriggerPresetsInputValuesListResponse) GetPlatformTriggerPresetInputValueListResponse() *components.PlatformTriggerPresetInputValueListResponse { + if o == nil { + return nil + } + return o.PlatformTriggerPresetInputValueListResponse +} diff --git a/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetslist.go b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetslist.go new file mode 100644 index 000000000..a17b640b6 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerpresetslist.go @@ -0,0 +1,70 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: eeb558367466 + +package operations + +import ( + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/utils" +) + +type PlatformTriggerPresetsListRequest struct { + // Restrict results to presets for a single datasource (e.g. github). + Datasource *string `queryParam:"style=form,explode=true,name=datasource"` + // Maximum number of presets to return. + PageSize *int64 `default:"50" queryParam:"style=form,explode=true,name=page_size"` + // Opaque pagination cursor from a previous response. + Cursor *string `queryParam:"style=form,explode=true,name=cursor"` +} + +func (p PlatformTriggerPresetsListRequest) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(p, "", false) +} + +func (p *PlatformTriggerPresetsListRequest) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &p, "", false, nil); err != nil { + return err + } + return nil +} + +func (o *PlatformTriggerPresetsListRequest) GetDatasource() *string { + if o == nil { + return nil + } + return o.Datasource +} + +func (o *PlatformTriggerPresetsListRequest) GetPageSize() *int64 { + if o == nil { + return nil + } + return o.PageSize +} + +func (o *PlatformTriggerPresetsListRequest) GetCursor() *string { + if o == nil { + return nil + } + return o.Cursor +} + +type PlatformTriggerPresetsListResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerPresetListResponse *components.PlatformTriggerPresetListResponse +} + +func (o *PlatformTriggerPresetsListResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *PlatformTriggerPresetsListResponse) GetPlatformTriggerPresetListResponse() *components.PlatformTriggerPresetListResponse { + if o == nil { + return nil + } + return o.PlatformTriggerPresetListResponse +} diff --git a/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerscreate.go b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerscreate.go new file mode 100644 index 000000000..204c957c2 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerscreate.go @@ -0,0 +1,28 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 1e8ca316af8f + +package operations + +import ( + "mockserver/internal/sdk/models/components" +) + +type PlatformTriggersCreateResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Trigger created. + PlatformTriggerCreateResponse *components.PlatformTriggerCreateResponse +} + +func (o *PlatformTriggersCreateResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *PlatformTriggersCreateResponse) GetPlatformTriggerCreateResponse() *components.PlatformTriggerCreateResponse { + if o == nil { + return nil + } + return o.PlatformTriggerCreateResponse +} diff --git a/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggersdelete.go b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggersdelete.go new file mode 100644 index 000000000..412f31210 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggersdelete.go @@ -0,0 +1,31 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: e2a95e92b8ed + +package operations + +import ( + "mockserver/internal/sdk/models/components" +) + +type PlatformTriggersDeleteRequest struct { + // ID of the trigger to delete. + TriggerID string `pathParam:"style=simple,explode=false,name=trigger_id"` +} + +func (o *PlatformTriggersDeleteRequest) GetTriggerID() string { + if o == nil { + return "" + } + return o.TriggerID +} + +type PlatformTriggersDeleteResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` +} + +func (o *PlatformTriggersDeleteResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} diff --git a/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerseventssearch.go b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerseventssearch.go new file mode 100644 index 000000000..17b663de3 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerseventssearch.go @@ -0,0 +1,48 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 81ec4e316aa4 + +package operations + +import ( + "mockserver/internal/sdk/models/components" +) + +type PlatformTriggersEventsSearchRequest struct { + // ID of the trigger whose events to search. + TriggerID string `pathParam:"style=simple,explode=false,name=trigger_id"` + Body *components.PlatformTriggerEventSearchRequest `request:"mediaType=application/json"` +} + +func (o *PlatformTriggersEventsSearchRequest) GetTriggerID() string { + if o == nil { + return "" + } + return o.TriggerID +} + +func (o *PlatformTriggersEventsSearchRequest) GetBody() *components.PlatformTriggerEventSearchRequest { + if o == nil { + return nil + } + return o.Body +} + +type PlatformTriggersEventsSearchResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerEventSearchResponse *components.PlatformTriggerEventSearchResponse +} + +func (o *PlatformTriggersEventsSearchResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *PlatformTriggersEventsSearchResponse) GetPlatformTriggerEventSearchResponse() *components.PlatformTriggerEventSearchResponse { + if o == nil { + return nil + } + return o.PlatformTriggerEventSearchResponse +} diff --git a/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggersget.go b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggersget.go new file mode 100644 index 000000000..67149ca85 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggersget.go @@ -0,0 +1,40 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 414c35e1991e + +package operations + +import ( + "mockserver/internal/sdk/models/components" +) + +type PlatformTriggersGetRequest struct { + // ID of the trigger to retrieve. + TriggerID string `pathParam:"style=simple,explode=false,name=trigger_id"` +} + +func (o *PlatformTriggersGetRequest) GetTriggerID() string { + if o == nil { + return "" + } + return o.TriggerID +} + +type PlatformTriggersGetResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerGetResponse *components.PlatformTriggerGetResponse +} + +func (o *PlatformTriggersGetResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *PlatformTriggersGetResponse) GetPlatformTriggerGetResponse() *components.PlatformTriggerGetResponse { + if o == nil { + return nil + } + return o.PlatformTriggerGetResponse +} diff --git a/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerslist.go b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerslist.go new file mode 100644 index 000000000..9f9d6fae5 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggerslist.go @@ -0,0 +1,61 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 6ae8b05f94b5 + +package operations + +import ( + "mockserver/internal/sdk/models/components" + "mockserver/internal/sdk/utils" +) + +type PlatformTriggersListRequest struct { + // Maximum number of triggers to return. + PageSize *int64 `default:"50" queryParam:"style=form,explode=true,name=page_size"` + // Opaque pagination cursor from a previous response. + Cursor *string `queryParam:"style=form,explode=true,name=cursor"` +} + +func (p PlatformTriggersListRequest) MarshalJSON() ([]byte, error) { + return utils.MarshalJSON(p, "", false) +} + +func (p *PlatformTriggersListRequest) UnmarshalJSON(data []byte) error { + if err := utils.UnmarshalJSON(data, &p, "", false, nil); err != nil { + return err + } + return nil +} + +func (o *PlatformTriggersListRequest) GetPageSize() *int64 { + if o == nil { + return nil + } + return o.PageSize +} + +func (o *PlatformTriggersListRequest) GetCursor() *string { + if o == nil { + return nil + } + return o.Cursor +} + +type PlatformTriggersListResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Successful response. + PlatformTriggerListResponse *components.PlatformTriggerListResponse +} + +func (o *PlatformTriggersListResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *PlatformTriggersListResponse) GetPlatformTriggerListResponse() *components.PlatformTriggerListResponse { + if o == nil { + return nil + } + return o.PlatformTriggerListResponse +} diff --git a/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggersupdate.go b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggersupdate.go new file mode 100644 index 000000000..5e75f9d02 --- /dev/null +++ b/src/__tests__/mockserver/internal/sdk/models/operations/platformtriggersupdate.go @@ -0,0 +1,48 @@ +// Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. +// @generated-id: 432685f12fbc + +package operations + +import ( + "mockserver/internal/sdk/models/components" +) + +type PlatformTriggersUpdateRequest struct { + // ID of the trigger to update. + TriggerID string `pathParam:"style=simple,explode=false,name=trigger_id"` + Body components.PlatformTriggerUpdateRequest `request:"mediaType=application/json"` +} + +func (o *PlatformTriggersUpdateRequest) GetTriggerID() string { + if o == nil { + return "" + } + return o.TriggerID +} + +func (o *PlatformTriggersUpdateRequest) GetBody() components.PlatformTriggerUpdateRequest { + if o == nil { + return components.PlatformTriggerUpdateRequest{} + } + return o.Body +} + +type PlatformTriggersUpdateResponse struct { + HTTPMeta components.HTTPMetadata `json:"-"` + // Trigger updated. + PlatformTriggerGetResponse *components.PlatformTriggerGetResponse +} + +func (o *PlatformTriggersUpdateResponse) GetHTTPMeta() components.HTTPMetadata { + if o == nil { + return components.HTTPMetadata{} + } + return o.HTTPMeta +} + +func (o *PlatformTriggersUpdateResponse) GetPlatformTriggerGetResponse() *components.PlatformTriggerGetResponse { + if o == nil { + return nil + } + return o.PlatformTriggerGetResponse +} diff --git a/src/__tests__/summarize.test.ts b/src/__tests__/summarize.test.ts index 31b3a9b32..229bb4db2 100644 --- a/src/__tests__/summarize.test.ts +++ b/src/__tests__/summarize.test.ts @@ -19,12 +19,10 @@ test("Summarize Summarize", async () => { const result = await glean.client.documents.summarize({ documentSpecs: [ { - ugcType: "ANNOUNCEMENTS", - ugcId: "", + url: "https://coarse-surface.net", }, { - ugcType: "COLLECTIONS", - contentId: 885812, + url: "https://coarse-surface.net", }, ], }); diff --git a/src/__tests__/triggers.test.ts b/src/__tests__/triggers.test.ts new file mode 100644 index 000000000..3b4efedc6 --- /dev/null +++ b/src/__tests__/triggers.test.ts @@ -0,0 +1,161 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 9325c87699e4 + */ + +import { expect, test } from "vitest"; +import { Glean } from "../index.js"; +import { createTestHTTPClient } from "./testclient.js"; + +test("Triggers Platform Triggers Create", async () => { + const testHttpClient = createTestHTTPClient("platform-triggers-create"); + + const glean = new Glean({ + serverURL: process.env["TEST_SERVER_URL"] ?? "http://localhost:18080", + httpClient: testHttpClient, + apiToken: process.env["GLEAN_API_TOKEN"] ?? "value", + }); + + const result = await glean.triggers.create({ + preset_id: "GITHUB_1", + description: "Reviews I am tagged on, sent to my team's review channel", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + auth: { + type: "BEARER", + secret: "secret_test_123", + }, + }, + }); + expect(result).toBeDefined(); +}); + +test("Triggers Platform Triggers List", async () => { + const testHttpClient = createTestHTTPClient("platform-triggers-list"); + + const glean = new Glean({ + serverURL: process.env["TEST_SERVER_URL"] ?? "http://localhost:18080", + httpClient: testHttpClient, + apiToken: process.env["GLEAN_API_TOKEN"] ?? "value", + }); + + const result = await glean.triggers.list(); + expect(result).toBeDefined(); +}); + +test("Triggers Platform Triggers Get", async () => { + const testHttpClient = createTestHTTPClient("platform-triggers-get"); + + const glean = new Glean({ + serverURL: process.env["TEST_SERVER_URL"] ?? "http://localhost:18080", + httpClient: testHttpClient, + apiToken: process.env["GLEAN_API_TOKEN"] ?? "value", + }); + + const result = await glean.triggers.get(""); + expect(result).toBeDefined(); +}); + +test("Triggers Platform Triggers Update", async () => { + const testHttpClient = createTestHTTPClient("platform-triggers-update"); + + const glean = new Glean({ + serverURL: process.env["TEST_SERVER_URL"] ?? "http://localhost:18080", + httpClient: testHttpClient, + apiToken: process.env["GLEAN_API_TOKEN"] ?? "value", + }); + + const result = await glean.triggers.update({ + status: "ENABLED", + description: "Reviews I am tagged on, sent to my team's review channel", + inputs: { + "repository": "acme/payments-api", + }, + delivery: { + webhook_url: "https://customer.app/webhook", + auth: { + type: "BEARER", + secret: "secret_test_123", + }, + }, + }, ""); + expect(result).toBeDefined(); +}); + +test("Triggers Platform Triggers Events Search", async () => { + const testHttpClient = createTestHTTPClient( + "platform-triggers-events-search", + ); + + const glean = new Glean({ + serverURL: process.env["TEST_SERVER_URL"] ?? "http://localhost:18080", + httpClient: testHttpClient, + apiToken: process.env["GLEAN_API_TOKEN"] ?? "value", + }); + + const result = await glean.triggers.searchEvents(""); + expect(result).toBeDefined(); +}); + +test("Triggers Platform Trigger Presets List", async () => { + const testHttpClient = createTestHTTPClient("platform-trigger-presets-list"); + + const glean = new Glean({ + serverURL: process.env["TEST_SERVER_URL"] ?? "http://localhost:18080", + httpClient: testHttpClient, + apiToken: process.env["GLEAN_API_TOKEN"] ?? "value", + }); + + const result = await glean.triggers.listPresets(); + expect(result).toBeDefined(); +}); + +test("Triggers Platform Trigger Presets Get", async () => { + const testHttpClient = createTestHTTPClient("platform-trigger-presets-get"); + + const glean = new Glean({ + serverURL: process.env["TEST_SERVER_URL"] ?? "http://localhost:18080", + httpClient: testHttpClient, + apiToken: process.env["GLEAN_API_TOKEN"] ?? "value", + }); + + const result = await glean.triggers.getPreset(""); + expect(result).toBeDefined(); +}); + +test("Triggers Platform Trigger Presets Input Values List", async () => { + const testHttpClient = createTestHTTPClient( + "platform-trigger-presets-input-values-list", + ); + + const glean = new Glean({ + serverURL: process.env["TEST_SERVER_URL"] ?? "http://localhost:18080", + httpClient: testHttpClient, + apiToken: process.env["GLEAN_API_TOKEN"] ?? "value", + }); + + const result = await glean.triggers.listPresetInputValues("", ""); + expect(result).toBeDefined(); +}); + +test("Triggers Platform Trigger Presets Events Search", async () => { + const testHttpClient = createTestHTTPClient( + "platform-trigger-presets-events-search", + ); + + const glean = new Glean({ + serverURL: process.env["TEST_SERVER_URL"] ?? "http://localhost:18080", + httpClient: testHttpClient, + apiToken: process.env["GLEAN_API_TOKEN"] ?? "value", + }); + + const result = await glean.triggers.searchPresetEvents("", { + inputs: { + "repository": "acme/payments-api", + }, + }); + expect(result).toBeDefined(); +}); diff --git a/src/funcs/clientToolsGetToolServerTools.ts b/src/funcs/clientToolsGetToolServerTools.ts index fbe223783..b8b1e1533 100644 --- a/src/funcs/clientToolsGetToolServerTools.ts +++ b/src/funcs/clientToolsGetToolServerTools.ts @@ -32,14 +32,15 @@ import { Result } from "../types/fp.js"; * * @remarks * Returns the name, description and JSON input schema for the named tools on the - * specified tool server. Works for both action packs and MCP servers. + * specified tool server. Works for Glean's built-in tools, tool packs and MCP + * servers. * * `toolNames` is required. Names that do not exist on the server are returned in * `notFound` rather than failing the request, so a single bad name does not force * callers into one-at-a-time retries. Matching is case-insensitive and treats `-` * and `_` as equivalent. * - * Native tools are not served; `serverId=native` returns 404. + * Use `serverId=native` for Glean's built-in tools. */ export function clientToolsGetToolServerTools( client: GleanCore, diff --git a/src/funcs/triggersCreate.ts b/src/funcs/triggersCreate.ts new file mode 100644 index 000000000..0987b2c01 --- /dev/null +++ b/src/funcs/triggersCreate.ts @@ -0,0 +1,180 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: ea9ed652cbea + */ + +import { GleanCore } from "../core.js"; +import { encodeJSON } from "../lib/encodings.js"; +import { matchStatusCode } from "../lib/http.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Create trigger + * + * @remarks + * Create a trigger from a preset and return it with its signing secret. + */ +export function triggersCreate( + client: GleanCore, + request: components.PlatformTriggerCreateRequest, + options?: RequestOptions, +): APIPromise< + Result< + components.PlatformTriggerCreateResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: GleanCore, + request: components.PlatformTriggerCreateRequest, + options?: RequestOptions, +): Promise< + [ + Result< + components.PlatformTriggerCreateResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + components.PlatformTriggerCreateRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload, { explode: true }); + + const path = pathToFunc("/api/triggers")(); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiToken); + const securityInput = secConfig == null ? {} : { apiToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "platform-triggers-create", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + isErrorStatusCode: (statusCode: number) => + matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]), + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + components.PlatformTriggerCreateResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(201, components.PlatformTriggerCreateResponse$inboundSchema), + M.jsonErr( + [400, 401, 403, 404, 408, 409, 413, 429], + errors.PlatformProblemDetailError$inboundSchema, + { ctype: "application/problem+json" }, + ), + M.jsonErr([500, 503], errors.PlatformProblemDetailError$inboundSchema, { + ctype: "application/problem+json", + }), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/funcs/triggersDelete.ts b/src/funcs/triggersDelete.ts new file mode 100644 index 000000000..c9685eb6c --- /dev/null +++ b/src/funcs/triggersDelete.ts @@ -0,0 +1,190 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: acd7beeb8caf + */ + +import * as z from "zod/v3"; +import { GleanCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import { matchStatusCode } from "../lib/http.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Delete trigger + * + * @remarks + * Delete a trigger. + */ +export function triggersDelete( + client: GleanCore, + triggerId: string, + options?: RequestOptions, +): APIPromise< + Result< + void, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + triggerId, + options, + )); +} + +async function $do( + client: GleanCore, + triggerId: string, + options?: RequestOptions, +): Promise< + [ + Result< + void, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const input: operations.PlatformTriggersDeleteRequest = { + trigger_id: triggerId, + }; + + const parsed = safeParse( + input, + (value) => + operations.PlatformTriggersDeleteRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + trigger_id: encodeSimple("trigger_id", payload.trigger_id, { + explode: false, + charEncoding: "percent", + }), + }; + const path = pathToFunc("/api/triggers/{trigger_id}")(pathParams); + + const headers = new Headers(compactMap({ + Accept: "application/problem+json", + })); + + const secConfig = await extractSecurity(client._options.apiToken); + const securityInput = secConfig == null ? {} : { apiToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "platform-triggers-delete", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + baseURL: options?.serverURL, + path: path, + headers: headers, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + isErrorStatusCode: (statusCode: number) => + matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]), + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + void, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.nil(204, z.void()), + M.jsonErr( + [400, 401, 403, 404, 408, 429], + errors.PlatformProblemDetailError$inboundSchema, + { ctype: "application/problem+json" }, + ), + M.jsonErr([500, 503], errors.PlatformProblemDetailError$inboundSchema, { + ctype: "application/problem+json", + }), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/funcs/triggersGet.ts b/src/funcs/triggersGet.ts new file mode 100644 index 000000000..1cfa132f2 --- /dev/null +++ b/src/funcs/triggersGet.ts @@ -0,0 +1,190 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 87dfc9261ecb + */ + +import { GleanCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import { matchStatusCode } from "../lib/http.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Get trigger + * + * @remarks + * Retrieve a trigger owned by the authenticated caller. + */ +export function triggersGet( + client: GleanCore, + triggerId: string, + options?: RequestOptions, +): APIPromise< + Result< + components.PlatformTriggerGetResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + triggerId, + options, + )); +} + +async function $do( + client: GleanCore, + triggerId: string, + options?: RequestOptions, +): Promise< + [ + Result< + components.PlatformTriggerGetResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const input: operations.PlatformTriggersGetRequest = { + trigger_id: triggerId, + }; + + const parsed = safeParse( + input, + (value) => + operations.PlatformTriggersGetRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + trigger_id: encodeSimple("trigger_id", payload.trigger_id, { + explode: false, + charEncoding: "percent", + }), + }; + const path = pathToFunc("/api/triggers/{trigger_id}")(pathParams); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiToken); + const securityInput = secConfig == null ? {} : { apiToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "platform-triggers-get", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + isErrorStatusCode: (statusCode: number) => + matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]), + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + components.PlatformTriggerGetResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, components.PlatformTriggerGetResponse$inboundSchema), + M.jsonErr( + [400, 401, 403, 404, 408, 429], + errors.PlatformProblemDetailError$inboundSchema, + { ctype: "application/problem+json" }, + ), + M.jsonErr([500, 503], errors.PlatformProblemDetailError$inboundSchema, { + ctype: "application/problem+json", + }), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/funcs/triggersGetPreset.ts b/src/funcs/triggersGetPreset.ts new file mode 100644 index 000000000..734af10cd --- /dev/null +++ b/src/funcs/triggersGetPreset.ts @@ -0,0 +1,190 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 251d38a4a215 + */ + +import { GleanCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import { matchStatusCode } from "../lib/http.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Get trigger preset + * + * @remarks + * Retrieve a single trigger preset by id. + */ +export function triggersGetPreset( + client: GleanCore, + presetId: string, + options?: RequestOptions, +): APIPromise< + Result< + components.PlatformTriggerPresetGetResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + presetId, + options, + )); +} + +async function $do( + client: GleanCore, + presetId: string, + options?: RequestOptions, +): Promise< + [ + Result< + components.PlatformTriggerPresetGetResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const input: operations.PlatformTriggerPresetsGetRequest = { + preset_id: presetId, + }; + + const parsed = safeParse( + input, + (value) => + operations.PlatformTriggerPresetsGetRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + preset_id: encodeSimple("preset_id", payload.preset_id, { + explode: false, + charEncoding: "percent", + }), + }; + const path = pathToFunc("/api/trigger-presets/{preset_id}")(pathParams); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiToken); + const securityInput = secConfig == null ? {} : { apiToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "platform-trigger-presets-get", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + isErrorStatusCode: (statusCode: number) => + matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]), + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + components.PlatformTriggerPresetGetResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, components.PlatformTriggerPresetGetResponse$inboundSchema), + M.jsonErr( + [400, 401, 403, 404, 408, 429], + errors.PlatformProblemDetailError$inboundSchema, + { ctype: "application/problem+json" }, + ), + M.jsonErr([500, 503], errors.PlatformProblemDetailError$inboundSchema, { + ctype: "application/problem+json", + }), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/funcs/triggersList.ts b/src/funcs/triggersList.ts new file mode 100644 index 000000000..cf51c7813 --- /dev/null +++ b/src/funcs/triggersList.ts @@ -0,0 +1,194 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: a7d1709912e5 + */ + +import { GleanCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import { matchStatusCode } from "../lib/http.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * List triggers + * + * @remarks + * List triggers owned by the authenticated caller. + */ +export function triggersList( + client: GleanCore, + pageSize?: number | undefined, + cursor?: string | undefined, + options?: RequestOptions, +): APIPromise< + Result< + components.PlatformTriggerListResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + pageSize, + cursor, + options, + )); +} + +async function $do( + client: GleanCore, + pageSize?: number | undefined, + cursor?: string | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + components.PlatformTriggerListResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const input: operations.PlatformTriggersListRequest = { + page_size: pageSize, + cursor: cursor, + }; + + const parsed = safeParse( + input, + (value) => + operations.PlatformTriggersListRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/api/triggers")(); + + const query = encodeFormQuery({ + "cursor": payload.cursor, + "page_size": payload.page_size, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiToken); + const securityInput = secConfig == null ? {} : { apiToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "platform-triggers-list", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + isErrorStatusCode: (statusCode: number) => + matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]), + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + components.PlatformTriggerListResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, components.PlatformTriggerListResponse$inboundSchema), + M.jsonErr( + [400, 401, 403, 408, 429], + errors.PlatformProblemDetailError$inboundSchema, + { ctype: "application/problem+json" }, + ), + M.jsonErr([500, 503], errors.PlatformProblemDetailError$inboundSchema, { + ctype: "application/problem+json", + }), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/funcs/triggersListPresetInputValues.ts b/src/funcs/triggersListPresetInputValues.ts new file mode 100644 index 000000000..238a6cf0d --- /dev/null +++ b/src/funcs/triggersListPresetInputValues.ts @@ -0,0 +1,210 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: db402b2c9e73 + */ + +import { GleanCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import { matchStatusCode } from "../lib/http.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Search trigger preset input values + * + * @remarks + * Return up to 300 selectable values for a single picklist input on a preset. Results are intended for typeahead selection and are not cursor-paginated. When `is_truncated` is true, refine `query` to narrow the result set. + */ +export function triggersListPresetInputValues( + client: GleanCore, + presetId: string, + field: string, + query?: string | undefined, + options?: RequestOptions, +): APIPromise< + Result< + components.PlatformTriggerPresetInputValueListResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + presetId, + field, + query, + options, + )); +} + +async function $do( + client: GleanCore, + presetId: string, + field: string, + query?: string | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + components.PlatformTriggerPresetInputValueListResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const input: operations.PlatformTriggerPresetsInputValuesListRequest = { + preset_id: presetId, + field: field, + query: query, + }; + + const parsed = safeParse( + input, + (value) => + operations.PlatformTriggerPresetsInputValuesListRequest$outboundSchema + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + preset_id: encodeSimple("preset_id", payload.preset_id, { + explode: false, + charEncoding: "percent", + }), + }; + const path = pathToFunc("/api/trigger-presets/{preset_id}/input-values")( + pathParams, + ); + + const query$ = encodeFormQuery({ + "field": payload.field, + "query": payload.query, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiToken); + const securityInput = secConfig == null ? {} : { apiToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "platform-trigger-presets-input-values-list", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query$, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + isErrorStatusCode: (statusCode: number) => + matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]), + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + components.PlatformTriggerPresetInputValueListResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json( + 200, + components.PlatformTriggerPresetInputValueListResponse$inboundSchema, + ), + M.jsonErr( + [400, 401, 403, 404, 408, 429], + errors.PlatformProblemDetailError$inboundSchema, + { ctype: "application/problem+json" }, + ), + M.jsonErr([500, 503], errors.PlatformProblemDetailError$inboundSchema, { + ctype: "application/problem+json", + }), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/funcs/triggersListPresets.ts b/src/funcs/triggersListPresets.ts new file mode 100644 index 000000000..4cababbd0 --- /dev/null +++ b/src/funcs/triggersListPresets.ts @@ -0,0 +1,199 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: fca784719d9f + */ + +import { GleanCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import { matchStatusCode } from "../lib/http.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * List trigger presets + * + * @remarks + * List the trigger presets available to the caller. A preset is a curated content-trigger template (e.g. a new Jira ticket) which is passed when creating a trigger. + */ +export function triggersListPresets( + client: GleanCore, + datasource?: string | undefined, + pageSize?: number | undefined, + cursor?: string | undefined, + options?: RequestOptions, +): APIPromise< + Result< + components.PlatformTriggerPresetListResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + datasource, + pageSize, + cursor, + options, + )); +} + +async function $do( + client: GleanCore, + datasource?: string | undefined, + pageSize?: number | undefined, + cursor?: string | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + components.PlatformTriggerPresetListResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const input: operations.PlatformTriggerPresetsListRequest = { + datasource: datasource, + page_size: pageSize, + cursor: cursor, + }; + + const parsed = safeParse( + input, + (value) => + operations.PlatformTriggerPresetsListRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/api/trigger-presets")(); + + const query = encodeFormQuery({ + "cursor": payload.cursor, + "datasource": payload.datasource, + "page_size": payload.page_size, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiToken); + const securityInput = secConfig == null ? {} : { apiToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "platform-trigger-presets-list", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + isErrorStatusCode: (statusCode: number) => + matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]), + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + components.PlatformTriggerPresetListResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, components.PlatformTriggerPresetListResponse$inboundSchema), + M.jsonErr( + [400, 401, 403, 408, 429], + errors.PlatformProblemDetailError$inboundSchema, + { ctype: "application/problem+json" }, + ), + M.jsonErr([500, 503], errors.PlatformProblemDetailError$inboundSchema, { + ctype: "application/problem+json", + }), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/funcs/triggersSearchEvents.ts b/src/funcs/triggersSearchEvents.ts new file mode 100644 index 000000000..4777ec748 --- /dev/null +++ b/src/funcs/triggersSearchEvents.ts @@ -0,0 +1,205 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 5d7e93c8a380 + */ + +import { GleanCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import { matchStatusCode } from "../lib/http.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Search events for a trigger + * + * @remarks + * Search recent content events an existing trigger matches. Read-only — no webhook delivery is made. Covers the last seven days. + */ +export function triggersSearchEvents( + client: GleanCore, + triggerId: string, + platformTriggerEventSearchRequest?: + | components.PlatformTriggerEventSearchRequest + | undefined, + options?: RequestOptions, +): APIPromise< + Result< + components.PlatformTriggerEventSearchResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + triggerId, + platformTriggerEventSearchRequest, + options, + )); +} + +async function $do( + client: GleanCore, + triggerId: string, + platformTriggerEventSearchRequest?: + | components.PlatformTriggerEventSearchRequest + | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + components.PlatformTriggerEventSearchResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const input: operations.PlatformTriggersEventsSearchRequest = { + trigger_id: triggerId, + platformTriggerEventSearchRequest: platformTriggerEventSearchRequest, + }; + + const parsed = safeParse( + input, + (value) => + operations.PlatformTriggersEventsSearchRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.PlatformTriggerEventSearchRequest, { + explode: true, + }); + + const pathParams = { + trigger_id: encodeSimple("trigger_id", payload.trigger_id, { + explode: false, + charEncoding: "percent", + }), + }; + const path = pathToFunc("/api/triggers/{trigger_id}/events/search")( + pathParams, + ); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiToken); + const securityInput = secConfig == null ? {} : { apiToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "platform-triggers-events-search", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + isErrorStatusCode: (statusCode: number) => + matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]), + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + components.PlatformTriggerEventSearchResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, components.PlatformTriggerEventSearchResponse$inboundSchema), + M.jsonErr( + [400, 401, 403, 404, 408, 413, 429], + errors.PlatformProblemDetailError$inboundSchema, + { ctype: "application/problem+json" }, + ), + M.jsonErr([500, 503], errors.PlatformProblemDetailError$inboundSchema, { + ctype: "application/problem+json", + }), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/funcs/triggersSearchPresetEvents.ts b/src/funcs/triggersSearchPresetEvents.ts new file mode 100644 index 000000000..6da96c1e7 --- /dev/null +++ b/src/funcs/triggersSearchPresetEvents.ts @@ -0,0 +1,208 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 1e4353c6d39b + */ + +import { GleanCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import { matchStatusCode } from "../lib/http.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Search events for a trigger preset + * + * @remarks + * Search recent content events an unsaved trigger built from this preset would match, to preview it before creating the trigger. Read-only — no trigger is created and no webhook delivery is made. Covers the last seven days. + */ +export function triggersSearchPresetEvents( + client: GleanCore, + presetId: string, + platformTriggerPresetEventSearchRequest?: + | components.PlatformTriggerPresetEventSearchRequest + | undefined, + options?: RequestOptions, +): APIPromise< + Result< + components.PlatformTriggerEventSearchResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + presetId, + platformTriggerPresetEventSearchRequest, + options, + )); +} + +async function $do( + client: GleanCore, + presetId: string, + platformTriggerPresetEventSearchRequest?: + | components.PlatformTriggerPresetEventSearchRequest + | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + components.PlatformTriggerEventSearchResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const input: operations.PlatformTriggerPresetsEventsSearchRequest = { + preset_id: presetId, + platformTriggerPresetEventSearchRequest: + platformTriggerPresetEventSearchRequest, + }; + + const parsed = safeParse( + input, + (value) => + operations.PlatformTriggerPresetsEventsSearchRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON( + "body", + payload.PlatformTriggerPresetEventSearchRequest, + { explode: true }, + ); + + const pathParams = { + preset_id: encodeSimple("preset_id", payload.preset_id, { + explode: false, + charEncoding: "percent", + }), + }; + const path = pathToFunc("/api/trigger-presets/{preset_id}/events/search")( + pathParams, + ); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiToken); + const securityInput = secConfig == null ? {} : { apiToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "platform-trigger-presets-events-search", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + isErrorStatusCode: (statusCode: number) => + matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]), + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + components.PlatformTriggerEventSearchResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, components.PlatformTriggerEventSearchResponse$inboundSchema), + M.jsonErr( + [400, 401, 403, 404, 408, 413, 429], + errors.PlatformProblemDetailError$inboundSchema, + { ctype: "application/problem+json" }, + ), + M.jsonErr([500, 503], errors.PlatformProblemDetailError$inboundSchema, { + ctype: "application/problem+json", + }), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/funcs/triggersUpdate.ts b/src/funcs/triggersUpdate.ts new file mode 100644 index 000000000..9c6abce4b --- /dev/null +++ b/src/funcs/triggersUpdate.ts @@ -0,0 +1,197 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: a4282abd4ef7 + */ + +import { GleanCore } from "../core.js"; +import { encodeJSON, encodeSimple } from "../lib/encodings.js"; +import { matchStatusCode } from "../lib/http.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Update trigger + * + * @remarks + * Update a trigger. + */ +export function triggersUpdate( + client: GleanCore, + platformTriggerUpdateRequest: components.PlatformTriggerUpdateRequest, + triggerId: string, + options?: RequestOptions, +): APIPromise< + Result< + components.PlatformTriggerGetResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + platformTriggerUpdateRequest, + triggerId, + options, + )); +} + +async function $do( + client: GleanCore, + platformTriggerUpdateRequest: components.PlatformTriggerUpdateRequest, + triggerId: string, + options?: RequestOptions, +): Promise< + [ + Result< + components.PlatformTriggerGetResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const input: operations.PlatformTriggersUpdateRequest = { + platformTriggerUpdateRequest: platformTriggerUpdateRequest, + trigger_id: triggerId, + }; + + const parsed = safeParse( + input, + (value) => + operations.PlatformTriggersUpdateRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.PlatformTriggerUpdateRequest, { + explode: true, + }); + + const pathParams = { + trigger_id: encodeSimple("trigger_id", payload.trigger_id, { + explode: false, + charEncoding: "percent", + }), + }; + const path = pathToFunc("/api/triggers/{trigger_id}")(pathParams); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiToken); + const securityInput = secConfig == null ? {} : { apiToken: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "platform-triggers-update", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiToken, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + baseURL: options?.serverURL, + path: path, + headers: headers, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + isErrorStatusCode: (statusCode: number) => + matchStatusCode({ status: statusCode } as Response, ["4XX", "5XX"]), + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + components.PlatformTriggerGetResponse, + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, components.PlatformTriggerGetResponse$inboundSchema), + M.jsonErr( + [400, 401, 403, 404, 408, 413, 429], + errors.PlatformProblemDetailError$inboundSchema, + { ctype: "application/problem+json" }, + ), + M.jsonErr([500, 503], errors.PlatformProblemDetailError$inboundSchema, { + ctype: "application/problem+json", + }), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/src/lib/config.ts b/src/lib/config.ts index ff7af2e69..3b7db2582 100644 --- a/src/lib/config.ts +++ b/src/lib/config.ts @@ -73,8 +73,8 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "0.9.0", - sdkVersion: "0.18.1", - genVersion: "2.927.0", + sdkVersion: "0.19.0", + genVersion: "2.931.0", userAgent: - "speakeasy-sdk/typescript 0.18.1 2.927.0 0.9.0 @gleanwork/api-client", + "speakeasy-sdk/typescript 0.19.0 2.931.0 0.9.0 @gleanwork/api-client", } as const; diff --git a/src/models/callbacks/index.ts b/src/models/callbacks/index.ts new file mode 100644 index 000000000..ffe86f6a7 --- /dev/null +++ b/src/models/callbacks/index.ts @@ -0,0 +1,6 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 23dfccfaff4e + */ + +export * from "./platformtriggerscreate.js"; diff --git a/src/models/callbacks/platformtriggerscreate.ts b/src/models/callbacks/platformtriggerscreate.ts new file mode 100644 index 000000000..b32e5ba6e --- /dev/null +++ b/src/models/callbacks/platformtriggerscreate.ts @@ -0,0 +1,116 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 14e1d9c7c1f2 + */ + +import * as z from "zod/v3"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import * as components from "../components/index.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type PlatformTriggersCreateTriggerWebhookEventRequest = { + /** + * Opaque delivery ID. It remains stable across retries of the same event and can be used as an idempotency key. + */ + "webhook-id": string; + /** + * Unix time in seconds when this delivery attempt was signed. + */ + "webhook-timestamp": number; + /** + * `v1,` followed by the standard Base64-encoded HMAC-SHA256 digest. To verify it, remove the + * + * @remarks + * `whsec_` prefix from `signing_secret`, standard-Base64-decode the remainder, and use those + * bytes as the HMAC key. Sign the UTF-8 bytes of `webhook-id + "." + webhook-timestamp + "." + * + raw request body`. Verify the signature against the unmodified request body before + * parsing JSON, and use a constant-time comparison. + * + * Fixed test vector (the raw body is one line with no trailing newline): + * + * - decoded signing key bytes (UTF-8; test only): `test_webhook_signing_secret_1234` + * - `webhook-id`: `81e6dc877ac553ef96ecbc939c1e46431159491991ba55cd131fbd0e3746c6bc` + * - `webhook-timestamp`: `1700000000` + * - `raw request body`: `{"version":"1","trigger_id":"trigger_test_123","datasource":"GITHUB","reason":"REVIEW_REQUESTED","doc_type":"pull","event_type":"DOCUMENT_CHANGE","doc_id":"GITHUB_pull_123","view_url":"https://github.com/acme/payments-api/pull/123","title":"Add retry backoff to the crawler","event_time":"2025-04-23T11:00:00Z"}` + * - `webhook-signature`: `v1,JqvHW0dwAOSLndiwQdXLUS/P+2RvOO8x4sOWgA/w0Gs=` + */ + "webhook-signature": string; + platformTriggerWebhookEvent: components.PlatformTriggerWebhookEvent; +}; + +/** @internal */ +export const PlatformTriggersCreateTriggerWebhookEventRequest$inboundSchema: + z.ZodType< + PlatformTriggersCreateTriggerWebhookEventRequest, + z.ZodTypeDef, + unknown + > = z.object({ + "webhook-id": z.string(), + "webhook-timestamp": z.number().int(), + "webhook-signature": z.string(), + PlatformTriggerWebhookEvent: + components.PlatformTriggerWebhookEvent$inboundSchema, + }).transform((v) => { + return remap$(v, { + "webhook-id": "webhook-id", + "webhook-timestamp": "webhook-timestamp", + "webhook-signature": "webhook-signature", + "PlatformTriggerWebhookEvent": "platformTriggerWebhookEvent", + }); + }); +/** @internal */ +export type PlatformTriggersCreateTriggerWebhookEventRequest$Outbound = { + "webhook-id": string; + "webhook-timestamp": number; + "webhook-signature": string; + PlatformTriggerWebhookEvent: components.PlatformTriggerWebhookEvent$Outbound; +}; + +/** @internal */ +export const PlatformTriggersCreateTriggerWebhookEventRequest$outboundSchema: + z.ZodType< + PlatformTriggersCreateTriggerWebhookEventRequest$Outbound, + z.ZodTypeDef, + PlatformTriggersCreateTriggerWebhookEventRequest + > = z.object({ + "webhook-id": z.string(), + "webhook-timestamp": z.number().int(), + "webhook-signature": z.string(), + platformTriggerWebhookEvent: + components.PlatformTriggerWebhookEvent$outboundSchema, + }).transform((v) => { + return remap$(v, { + "webhook-id": "webhook-id", + "webhook-timestamp": "webhook-timestamp", + "webhook-signature": "webhook-signature", + platformTriggerWebhookEvent: "PlatformTriggerWebhookEvent", + }); + }); + +export function platformTriggersCreateTriggerWebhookEventRequestToJSON( + platformTriggersCreateTriggerWebhookEventRequest: + PlatformTriggersCreateTriggerWebhookEventRequest, +): string { + return JSON.stringify( + PlatformTriggersCreateTriggerWebhookEventRequest$outboundSchema.parse( + platformTriggersCreateTriggerWebhookEventRequest, + ), + ); +} +export function platformTriggersCreateTriggerWebhookEventRequestFromJSON( + jsonString: string, +): SafeParseResult< + PlatformTriggersCreateTriggerWebhookEventRequest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + PlatformTriggersCreateTriggerWebhookEventRequest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'PlatformTriggersCreateTriggerWebhookEventRequest' from JSON`, + ); +} diff --git a/src/models/components/calendarevent.ts b/src/models/components/calendarevent.ts index 74e605a4e..8e53c0308 100644 --- a/src/models/components/calendarevent.ts +++ b/src/models/components/calendarevent.ts @@ -13,6 +13,10 @@ import { CalendarAttendees, CalendarAttendees$inboundSchema, } from "./calendarattendees.js"; +import { + CalendarRoomBookingStatus, + CalendarRoomBookingStatus$inboundSchema, +} from "./calendarroombookingstatus.js"; import { ConferenceData, ConferenceData$inboundSchema, @@ -57,6 +61,18 @@ export type CalendarEvent = { */ url: string; attendees?: CalendarAttendees | undefined; + /** + * Whether the requesting user is the organizer of this event. + */ + isOrganizer?: boolean | null | undefined; + /** + * The current booking status of the room resource associated with an event. + */ + roomBookingStatus?: CalendarRoomBookingStatus | undefined; + /** + * The display name of the room resource associated with this event. + */ + roomName?: string | undefined; /** * The location that this event is taking place at. */ @@ -100,6 +116,9 @@ export const CalendarEvent$inboundSchema: z.ZodType< id: z.string(), url: z.string(), attendees: CalendarAttendees$inboundSchema.optional(), + isOrganizer: z.nullable(z.boolean()).optional(), + roomBookingStatus: CalendarRoomBookingStatus$inboundSchema.optional(), + roomName: z.string().optional(), location: z.string().optional(), conferenceData: ConferenceData$inboundSchema.optional(), description: z.string().optional(), diff --git a/src/models/components/calendarroombookingstatus.ts b/src/models/components/calendarroombookingstatus.ts new file mode 100644 index 000000000..bd4d074f5 --- /dev/null +++ b/src/models/components/calendarroombookingstatus.ts @@ -0,0 +1,31 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: cda64adef139 + */ + +import * as z from "zod/v3"; +import * as openEnums from "../../types/enums.js"; +import { OpenEnum } from "../../types/enums.js"; + +/** + * The current booking status of the room resource associated with an event. + */ +export const CalendarRoomBookingStatus = { + None: "NONE", + Accepted: "ACCEPTED", + Declined: "DECLINED", + Pending: "PENDING", +} as const; +/** + * The current booking status of the room resource associated with an event. + */ +export type CalendarRoomBookingStatus = OpenEnum< + typeof CalendarRoomBookingStatus +>; + +/** @internal */ +export const CalendarRoomBookingStatus$inboundSchema: z.ZodType< + CalendarRoomBookingStatus, + z.ZodTypeDef, + unknown +> = openEnums.inboundSchema(CalendarRoomBookingStatus); diff --git a/src/models/components/feedentry.ts b/src/models/components/feedentry.ts index 3ca806ebe..a453bac30 100644 --- a/src/models/components/feedentry.ts +++ b/src/models/components/feedentry.ts @@ -108,6 +108,7 @@ export const JustificationType = { StarterKitOrgChart: "STARTER_KIT_ORG_CHART", StarterKitAddDoc: "STARTER_KIT_ADD_DOC", MeetingRecap: "MEETING_RECAP", + MeetingRoom: "MEETING_ROOM", MeetingPrepAutomation: "MEETING_PREP_AUTOMATION", ActiveDiscussion: "ACTIVE_DISCUSSION", MidDayCatchUp: "MID_DAY_CATCH_UP", @@ -124,6 +125,7 @@ export const JustificationType = { OooPlanner: "OOO_PLANNER", OooCatchUp: "OOO_CATCH_UP", AdminHealthCenter: "ADMIN_HEALTH_CENTER", + KnowledgeGap: "KNOWLEDGE_GAP", } as const; /** * Type of the justification. diff --git a/src/models/components/feedrequest.ts b/src/models/components/feedrequest.ts index a271ecf6a..187318ec6 100644 --- a/src/models/components/feedrequest.ts +++ b/src/models/components/feedrequest.ts @@ -62,6 +62,7 @@ export const FeedRequestCategory = { OooPlanner: "OOO_PLANNER", OooCatchUp: "OOO_CATCH_UP", AdminHealthCenter: "ADMIN_HEALTH_CENTER", + KnowledgeGap: "KNOWLEDGE_GAP", } as const; export type FeedRequestCategory = ClosedEnum; diff --git a/src/models/components/feedresult.ts b/src/models/components/feedresult.ts index 7733310af..f1ee4d4e7 100644 --- a/src/models/components/feedresult.ts +++ b/src/models/components/feedresult.ts @@ -60,6 +60,7 @@ export const FeedResultCategory = { OooPlanner: "OOO_PLANNER", OooCatchUp: "OOO_CATCH_UP", AdminHealthCenter: "ADMIN_HEALTH_CENTER", + KnowledgeGap: "KNOWLEDGE_GAP", } as const; /** * Category of the result, one of the requested categories in incoming request. @@ -67,14 +68,15 @@ export const FeedResultCategory = { export type FeedResultCategory = OpenEnum; /** - * Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. + * Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). */ export const PlacementReason = { Organic: "ORGANIC", Promo: "PROMO", + Pinned: "PINNED", } as const; /** - * Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. + * Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). */ export type PlacementReason = OpenEnum; @@ -93,7 +95,7 @@ export type FeedResult = { */ rank?: number | undefined; /** - * Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. + * Placement source for ranked feed results. ORGANIC means the card was emitted by normal feed ranking. PROMO means the card was inserted by the homepage cards promo framework. PINNED means the card was moved to the head of the ranked stack (e.g. knowledge-gap pilot cards). */ placementReason?: PlacementReason | undefined; }; diff --git a/src/models/components/index.ts b/src/models/components/index.ts index c4bd55887..847ea1517 100644 --- a/src/models/components/index.ts +++ b/src/models/components/index.ts @@ -63,6 +63,7 @@ export * from "./bulkuploadhistoryevent.js"; export * from "./calendarattendee.js"; export * from "./calendarattendees.js"; export * from "./calendarevent.js"; +export * from "./calendarroombookingstatus.js"; export * from "./canonicalizingregextype.js"; export * from "./channelinviteinfo.js"; export * from "./chat.js"; @@ -373,8 +374,10 @@ export * from "./platformchatinputmessage.js"; export * from "./platformchatoutputmessage.js"; export * from "./platformchatoutputtextcontent.js"; export * from "./platformchatpersonsource.js"; +export * from "./platformcontentschedulewebhookevent.js"; export * from "./platformcontenttype.js"; export * from "./platformdatasourcefilterinfo.js"; +export * from "./platformdocumentchangewebhookevent.js"; export * from "./platformfilter.js"; export * from "./platformfilterfieldinfo.js"; export * from "./platformfilteroperator.js"; @@ -420,6 +423,32 @@ export * from "./platformskillversioncreateresponse.js"; export * from "./platformskillversiongetresponse.js"; export * from "./platformskillversionslistresponse.js"; export * from "./platformtimerange.js"; +export * from "./platformtrigger.js"; +export * from "./platformtriggerauthoutput.js"; +export * from "./platformtriggercreaterequest.js"; +export * from "./platformtriggercreateresponse.js"; +export * from "./platformtriggerdelivery.js"; +export * from "./platformtriggerdeliveryoutput.js"; +export * from "./platformtriggerevent.js"; +export * from "./platformtriggereventreason.js"; +export * from "./platformtriggereventsearchrequest.js"; +export * from "./platformtriggereventsearchresponse.js"; +export * from "./platformtriggereventtype.js"; +export * from "./platformtriggergetresponse.js"; +export * from "./platformtriggerlistresponse.js"; +export * from "./platformtriggerpreset.js"; +export * from "./platformtriggerpreseteventsearchrequest.js"; +export * from "./platformtriggerpresetgetresponse.js"; +export * from "./platformtriggerpresetinput.js"; +export * from "./platformtriggerpresetinputtype.js"; +export * from "./platformtriggerpresetinputvalue.js"; +export * from "./platformtriggerpresetinputvaluelistresponse.js"; +export * from "./platformtriggerpresetlistresponse.js"; +export * from "./platformtriggerpresetsummary.js"; +export * from "./platformtriggerstatus.js"; +export * from "./platformtriggerupdaterequest.js"; +export * from "./platformtriggerwebhookevent.js"; +export * from "./platformtriggerwithsecret.js"; export * from "./platformwarning.js"; export * from "./possiblevalue.js"; export * from "./processalldocumentsrequest.js"; diff --git a/src/models/components/platformchatcitationannotation.ts b/src/models/components/platformchatcitationannotation.ts index b8211fba2..a9f2614a6 100644 --- a/src/models/components/platformchatcitationannotation.ts +++ b/src/models/components/platformchatcitationannotation.ts @@ -18,7 +18,7 @@ import { } from "./platformchatcitationsource.js"; export const PlatformChatCitationAnnotationType = { - Citation: "citation", + Citation: "CITATION", } as const; export type PlatformChatCitationAnnotationType = ClosedEnum< typeof PlatformChatCitationAnnotationType diff --git a/src/models/components/platformchatcompletedresponse.ts b/src/models/components/platformchatcompletedresponse.ts index 5dd8d1276..4bed5c1c3 100644 --- a/src/models/components/platformchatcompletedresponse.ts +++ b/src/models/components/platformchatcompletedresponse.ts @@ -14,12 +14,12 @@ import { } from "./platformchatoutputmessage.js"; export const ObjectT = { - Response: "response", + Response: "RESPONSE", } as const; export type ObjectT = ClosedEnum; export const PlatformChatCompletedResponseStatus = { - Completed: "completed", + Completed: "COMPLETED", } as const; export type PlatformChatCompletedResponseStatus = ClosedEnum< typeof PlatformChatCompletedResponseStatus diff --git a/src/models/components/platformchatcreaterequest.ts b/src/models/components/platformchatcreaterequest.ts index fbf81ebd4..05d89c055 100644 --- a/src/models/components/platformchatcreaterequest.ts +++ b/src/models/components/platformchatcreaterequest.ts @@ -11,7 +11,7 @@ import { } from "./platformchatinputmessage.js"; /** - * Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. + * Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. * * @remarks */ @@ -19,7 +19,7 @@ export type Input = string | Array; export type PlatformChatCreateRequest = { /** - * Either a plain string (single user turn) or a chronological array of `user`/`assistant` messages. The final array message must be `user`. + * Either a plain string (single user turn) or a chronological array of `USER`/`ASSISTANT` messages. The final array message must be `USER`. * * @remarks */ diff --git a/src/models/components/platformchatcustomentitysource.ts b/src/models/components/platformchatcustomentitysource.ts index f06bfe960..ae0d393f4 100644 --- a/src/models/components/platformchatcustomentitysource.ts +++ b/src/models/components/platformchatcustomentitysource.ts @@ -10,7 +10,7 @@ import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const PlatformChatCustomEntitySourceType = { - CustomEntity: "custom_entity", + CustomEntity: "CUSTOM_ENTITY", } as const; export type PlatformChatCustomEntitySourceType = ClosedEnum< typeof PlatformChatCustomEntitySourceType diff --git a/src/models/components/platformchatdocumentsource.ts b/src/models/components/platformchatdocumentsource.ts index 747b11f97..7de88e0ab 100644 --- a/src/models/components/platformchatdocumentsource.ts +++ b/src/models/components/platformchatdocumentsource.ts @@ -10,7 +10,7 @@ import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const PlatformChatDocumentSourceType2 = { - Document: "document", + Document: "DOCUMENT", } as const; export type PlatformChatDocumentSourceType2 = ClosedEnum< typeof PlatformChatDocumentSourceType2 @@ -25,7 +25,7 @@ export type PlatformChatDocumentSourceDocument2 = { }; export const PlatformChatDocumentSourceType1 = { - Document: "document", + Document: "DOCUMENT", } as const; export type PlatformChatDocumentSourceType1 = ClosedEnum< typeof PlatformChatDocumentSourceType1 diff --git a/src/models/components/platformchatfilesource.ts b/src/models/components/platformchatfilesource.ts index c38b0f471..1a6e88586 100644 --- a/src/models/components/platformchatfilesource.ts +++ b/src/models/components/platformchatfilesource.ts @@ -10,7 +10,7 @@ import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const PlatformChatFileSourceType = { - File: "file", + File: "FILE", } as const; export type PlatformChatFileSourceType = ClosedEnum< typeof PlatformChatFileSourceType diff --git a/src/models/components/platformchatinputmessage.ts b/src/models/components/platformchatinputmessage.ts index da49aa315..1705d9659 100644 --- a/src/models/components/platformchatinputmessage.ts +++ b/src/models/components/platformchatinputmessage.ts @@ -7,8 +7,8 @@ import * as z from "zod/v3"; import { ClosedEnum } from "../../types/enums.js"; export const PlatformChatInputMessageRole = { - User: "user", - Assistant: "assistant", + User: "USER", + Assistant: "ASSISTANT", } as const; export type PlatformChatInputMessageRole = ClosedEnum< typeof PlatformChatInputMessageRole diff --git a/src/models/components/platformchatoutputmessage.ts b/src/models/components/platformchatoutputmessage.ts index e41dd6cc2..ee68330ac 100644 --- a/src/models/components/platformchatoutputmessage.ts +++ b/src/models/components/platformchatoutputmessage.ts @@ -14,14 +14,14 @@ import { } from "./platformchatoutputtextcontent.js"; export const PlatformChatOutputMessageType = { - Message: "message", + Message: "MESSAGE", } as const; export type PlatformChatOutputMessageType = ClosedEnum< typeof PlatformChatOutputMessageType >; export const PlatformChatOutputMessageRole = { - Assistant: "assistant", + Assistant: "ASSISTANT", } as const; export type PlatformChatOutputMessageRole = ClosedEnum< typeof PlatformChatOutputMessageRole diff --git a/src/models/components/platformchatoutputtextcontent.ts b/src/models/components/platformchatoutputtextcontent.ts index bb581df8f..fef0736f1 100644 --- a/src/models/components/platformchatoutputtextcontent.ts +++ b/src/models/components/platformchatoutputtextcontent.ts @@ -14,7 +14,7 @@ import { } from "./platformchatcitationannotation.js"; export const PlatformChatOutputTextContentType = { - OutputText: "output_text", + OutputText: "OUTPUT_TEXT", } as const; export type PlatformChatOutputTextContentType = ClosedEnum< typeof PlatformChatOutputTextContentType diff --git a/src/models/components/platformchatpersonsource.ts b/src/models/components/platformchatpersonsource.ts index e66acd0b6..c511516f1 100644 --- a/src/models/components/platformchatpersonsource.ts +++ b/src/models/components/platformchatpersonsource.ts @@ -10,7 +10,7 @@ import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; export const PlatformChatPersonSourceType = { - Person: "person", + Person: "PERSON", } as const; export type PlatformChatPersonSourceType = ClosedEnum< typeof PlatformChatPersonSourceType diff --git a/src/models/components/platformcontentschedulewebhookevent.ts b/src/models/components/platformcontentschedulewebhookevent.ts new file mode 100644 index 000000000..2bb0ba040 --- /dev/null +++ b/src/models/components/platformcontentschedulewebhookevent.ts @@ -0,0 +1,126 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 09ece847f0e0 + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type PlatformContentScheduleWebhookEvent = { + /** + * Webhook payload schema version. + */ + version: string; + /** + * ID of the Platform trigger that produced the event. + */ + trigger_id: string; + event_type: string; + /** + * Datasource the event originated from. + */ + datasource: string; + /** + * Why the event fired. + */ + reason: string; + /** + * Datasource-specific object type. + */ + doc_type: string; + /** + * Identifier of the document the event is about. + */ + doc_id: string; + /** + * Link to the document in its source system. + */ + view_url: string; + /** + * Title of the document, or the subject for email. + */ + title: string; + /** + * Relevant event time. Document changes use the source-observed time when available and otherwise the document ingestion time; content schedules use the scheduled time. Omitted when no timestamp is available. + */ + event_time?: Date | undefined; + /** + * Offset in seconds from the scheduled time at which the trigger fired. + */ + time_offset_seconds: number; +}; + +/** @internal */ +export const PlatformContentScheduleWebhookEvent$inboundSchema: z.ZodType< + PlatformContentScheduleWebhookEvent, + z.ZodTypeDef, + unknown +> = z.object({ + version: z.string(), + trigger_id: z.string(), + event_type: z.string(), + datasource: z.string(), + reason: z.string(), + doc_type: z.string(), + doc_id: z.string(), + view_url: z.string(), + title: z.string(), + event_time: z.string().datetime({ offset: true }).transform(v => new Date(v)) + .optional(), + time_offset_seconds: z.number().int(), +}); +/** @internal */ +export type PlatformContentScheduleWebhookEvent$Outbound = { + version: string; + trigger_id: string; + event_type: string; + datasource: string; + reason: string; + doc_type: string; + doc_id: string; + view_url: string; + title: string; + event_time?: string | undefined; + time_offset_seconds: number; +}; + +/** @internal */ +export const PlatformContentScheduleWebhookEvent$outboundSchema: z.ZodType< + PlatformContentScheduleWebhookEvent$Outbound, + z.ZodTypeDef, + PlatformContentScheduleWebhookEvent +> = z.object({ + version: z.string(), + trigger_id: z.string(), + event_type: z.string(), + datasource: z.string(), + reason: z.string(), + doc_type: z.string(), + doc_id: z.string(), + view_url: z.string(), + title: z.string(), + event_time: z.date().transform(v => v.toISOString()).optional(), + time_offset_seconds: z.number().int(), +}); + +export function platformContentScheduleWebhookEventToJSON( + platformContentScheduleWebhookEvent: PlatformContentScheduleWebhookEvent, +): string { + return JSON.stringify( + PlatformContentScheduleWebhookEvent$outboundSchema.parse( + platformContentScheduleWebhookEvent, + ), + ); +} +export function platformContentScheduleWebhookEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + PlatformContentScheduleWebhookEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformContentScheduleWebhookEvent' from JSON`, + ); +} diff --git a/src/models/components/platformdocumentchangewebhookevent.ts b/src/models/components/platformdocumentchangewebhookevent.ts new file mode 100644 index 000000000..7414099e9 --- /dev/null +++ b/src/models/components/platformdocumentchangewebhookevent.ts @@ -0,0 +1,133 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 0aee86e6607b + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type PlatformDocumentChangeWebhookEvent = { + /** + * Webhook payload schema version. + */ + version: string; + /** + * ID of the Platform trigger that produced the event. + */ + trigger_id: string; + event_type: string; + /** + * Datasource the event originated from. + */ + datasource: string; + /** + * Why the event fired. + */ + reason: string; + /** + * Datasource-specific object type. + */ + doc_type: string; + /** + * Identifier of the document the event is about. + */ + doc_id: string; + /** + * Link to the document in its source system. + */ + view_url: string; + /** + * Title of the document, or the subject for email. + */ + title: string; + /** + * Relevant event time. Document changes use the source-observed time when available and otherwise the document ingestion time; content schedules use the scheduled time. Omitted when no timestamp is available. + */ + event_time?: Date | undefined; + /** + * Email body content when the event is for an email document. + */ + content?: string | undefined; + /** + * Present and true when source content exceeded the delivery size limit. + */ + content_truncated?: boolean | undefined; +}; + +/** @internal */ +export const PlatformDocumentChangeWebhookEvent$inboundSchema: z.ZodType< + PlatformDocumentChangeWebhookEvent, + z.ZodTypeDef, + unknown +> = z.object({ + version: z.string(), + trigger_id: z.string(), + event_type: z.string(), + datasource: z.string(), + reason: z.string(), + doc_type: z.string(), + doc_id: z.string(), + view_url: z.string(), + title: z.string(), + event_time: z.string().datetime({ offset: true }).transform(v => new Date(v)) + .optional(), + content: z.string().optional(), + content_truncated: z.boolean().optional(), +}); +/** @internal */ +export type PlatformDocumentChangeWebhookEvent$Outbound = { + version: string; + trigger_id: string; + event_type: string; + datasource: string; + reason: string; + doc_type: string; + doc_id: string; + view_url: string; + title: string; + event_time?: string | undefined; + content?: string | undefined; + content_truncated?: boolean | undefined; +}; + +/** @internal */ +export const PlatformDocumentChangeWebhookEvent$outboundSchema: z.ZodType< + PlatformDocumentChangeWebhookEvent$Outbound, + z.ZodTypeDef, + PlatformDocumentChangeWebhookEvent +> = z.object({ + version: z.string(), + trigger_id: z.string(), + event_type: z.string(), + datasource: z.string(), + reason: z.string(), + doc_type: z.string(), + doc_id: z.string(), + view_url: z.string(), + title: z.string(), + event_time: z.date().transform(v => v.toISOString()).optional(), + content: z.string().optional(), + content_truncated: z.boolean().optional(), +}); + +export function platformDocumentChangeWebhookEventToJSON( + platformDocumentChangeWebhookEvent: PlatformDocumentChangeWebhookEvent, +): string { + return JSON.stringify( + PlatformDocumentChangeWebhookEvent$outboundSchema.parse( + platformDocumentChangeWebhookEvent, + ), + ); +} +export function platformDocumentChangeWebhookEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + PlatformDocumentChangeWebhookEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformDocumentChangeWebhookEvent' from JSON`, + ); +} diff --git a/src/models/components/platformtrigger.ts b/src/models/components/platformtrigger.ts new file mode 100644 index 000000000..174fe6ce0 --- /dev/null +++ b/src/models/components/platformtrigger.ts @@ -0,0 +1,75 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: dd8355f80c8b + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTriggerDeliveryOutput, + PlatformTriggerDeliveryOutput$inboundSchema, +} from "./platformtriggerdeliveryoutput.js"; +import { + PlatformTriggerStatus, + PlatformTriggerStatus$inboundSchema, +} from "./platformtriggerstatus.js"; + +export type PlatformTrigger = { + /** + * ID of the trigger. + */ + trigger_id: string; + /** + * ID of the preset this trigger was created from. + */ + preset_id: string; + /** + * Optional caller-supplied note describing this trigger. + */ + description?: string | undefined; + /** + * Current trigger lifecycle state. + */ + status: PlatformTriggerStatus; + /** + * Values supplied for the preset's inputs. + */ + inputs?: { [k: string]: any } | undefined; + delivery: PlatformTriggerDeliveryOutput; + /** + * Time the trigger was created. + */ + created_at: Date; + /** + * Time the trigger was last updated. + */ + updated_at: Date; +}; + +/** @internal */ +export const PlatformTrigger$inboundSchema: z.ZodType< + PlatformTrigger, + z.ZodTypeDef, + unknown +> = z.object({ + trigger_id: z.string(), + preset_id: z.string(), + description: z.string().optional(), + status: PlatformTriggerStatus$inboundSchema, + inputs: z.record(z.any()).optional(), + delivery: PlatformTriggerDeliveryOutput$inboundSchema, + created_at: z.string().datetime({ offset: true }).transform(v => new Date(v)), + updated_at: z.string().datetime({ offset: true }).transform(v => new Date(v)), +}); + +export function platformTriggerFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTrigger$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTrigger' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerauthoutput.ts b/src/models/components/platformtriggerauthoutput.ts new file mode 100644 index 000000000..3a40d4f2e --- /dev/null +++ b/src/models/components/platformtriggerauthoutput.ts @@ -0,0 +1,99 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: df4f84046d5c + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +/** + * Credential scheme. + */ +export const PlatformTriggerAuthType = { + Bearer: "BEARER", +} as const; +/** + * Credential scheme. + */ +export type PlatformTriggerAuthType = ClosedEnum< + typeof PlatformTriggerAuthType +>; + +/** + * Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. + */ +export type PlatformTriggerAuthOutput = { + /** + * Credential scheme. + */ + type: PlatformTriggerAuthType; +}; + +/** + * Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. + */ +export type PlatformTriggerAuth = { + /** + * Credential scheme. + */ + type: PlatformTriggerAuthType; + /** + * Secret credential value. Write-only; never returned on reads. + */ + secret: string; +}; + +/** @internal */ +export const PlatformTriggerAuthType$inboundSchema: z.ZodNativeEnum< + typeof PlatformTriggerAuthType +> = z.nativeEnum(PlatformTriggerAuthType); +/** @internal */ +export const PlatformTriggerAuthType$outboundSchema: z.ZodNativeEnum< + typeof PlatformTriggerAuthType +> = PlatformTriggerAuthType$inboundSchema; + +/** @internal */ +export const PlatformTriggerAuthOutput$inboundSchema: z.ZodType< + PlatformTriggerAuthOutput, + z.ZodTypeDef, + unknown +> = z.object({ + type: PlatformTriggerAuthType$inboundSchema, +}); + +export function platformTriggerAuthOutputFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerAuthOutput$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerAuthOutput' from JSON`, + ); +} + +/** @internal */ +export type PlatformTriggerAuth$Outbound = { + type: string; + secret: string; +}; + +/** @internal */ +export const PlatformTriggerAuth$outboundSchema: z.ZodType< + PlatformTriggerAuth$Outbound, + z.ZodTypeDef, + PlatformTriggerAuth +> = z.object({ + type: PlatformTriggerAuthType$outboundSchema, + secret: z.string(), +}); + +export function platformTriggerAuthToJSON( + platformTriggerAuth: PlatformTriggerAuth, +): string { + return JSON.stringify( + PlatformTriggerAuth$outboundSchema.parse(platformTriggerAuth), + ); +} diff --git a/src/models/components/platformtriggercreaterequest.ts b/src/models/components/platformtriggercreaterequest.ts new file mode 100644 index 000000000..121bea8f4 --- /dev/null +++ b/src/models/components/platformtriggercreaterequest.ts @@ -0,0 +1,57 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 5ee73a28eef8 + */ + +import * as z from "zod/v3"; +import { + PlatformTriggerDelivery, + PlatformTriggerDelivery$Outbound, + PlatformTriggerDelivery$outboundSchema, +} from "./platformtriggerdelivery.js"; + +export type PlatformTriggerCreateRequest = { + /** + * ID of the preset to instantiate. + */ + preset_id: string; + /** + * Optional note describing this trigger. + */ + description?: string | undefined; + /** + * Values for the preset's inputs. + */ + inputs?: { [k: string]: any } | undefined; + delivery: PlatformTriggerDelivery; +}; + +/** @internal */ +export type PlatformTriggerCreateRequest$Outbound = { + preset_id: string; + description?: string | undefined; + inputs?: { [k: string]: any } | undefined; + delivery: PlatformTriggerDelivery$Outbound; +}; + +/** @internal */ +export const PlatformTriggerCreateRequest$outboundSchema: z.ZodType< + PlatformTriggerCreateRequest$Outbound, + z.ZodTypeDef, + PlatformTriggerCreateRequest +> = z.object({ + preset_id: z.string(), + description: z.string().optional(), + inputs: z.record(z.any()).optional(), + delivery: PlatformTriggerDelivery$outboundSchema, +}); + +export function platformTriggerCreateRequestToJSON( + platformTriggerCreateRequest: PlatformTriggerCreateRequest, +): string { + return JSON.stringify( + PlatformTriggerCreateRequest$outboundSchema.parse( + platformTriggerCreateRequest, + ), + ); +} diff --git a/src/models/components/platformtriggercreateresponse.ts b/src/models/components/platformtriggercreateresponse.ts new file mode 100644 index 000000000..f1f8bf0fb --- /dev/null +++ b/src/models/components/platformtriggercreateresponse.ts @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 364d4d3240e3 + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTriggerWithSecret, + PlatformTriggerWithSecret$inboundSchema, +} from "./platformtriggerwithsecret.js"; + +export type PlatformTriggerCreateResponse = { + trigger: PlatformTriggerWithSecret; + /** + * Platform-generated request ID for support correlation. + */ + request_id: string; +}; + +/** @internal */ +export const PlatformTriggerCreateResponse$inboundSchema: z.ZodType< + PlatformTriggerCreateResponse, + z.ZodTypeDef, + unknown +> = z.object({ + trigger: PlatformTriggerWithSecret$inboundSchema, + request_id: z.string(), +}); + +export function platformTriggerCreateResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerCreateResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerCreateResponse' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerdelivery.ts b/src/models/components/platformtriggerdelivery.ts new file mode 100644 index 000000000..0628f22b1 --- /dev/null +++ b/src/models/components/platformtriggerdelivery.ts @@ -0,0 +1,46 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 5ff59c50e574 + */ + +import * as z from "zod/v3"; +import { + PlatformTriggerAuth, + PlatformTriggerAuth$Outbound, + PlatformTriggerAuth$outboundSchema, +} from "./platformtriggerauthoutput.js"; + +export type PlatformTriggerDelivery = { + /** + * HTTPS URL that signed events are delivered to. + */ + webhook_url: string; + /** + * Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. + */ + auth?: PlatformTriggerAuth | undefined; +}; + +/** @internal */ +export type PlatformTriggerDelivery$Outbound = { + webhook_url: string; + auth?: PlatformTriggerAuth$Outbound | undefined; +}; + +/** @internal */ +export const PlatformTriggerDelivery$outboundSchema: z.ZodType< + PlatformTriggerDelivery$Outbound, + z.ZodTypeDef, + PlatformTriggerDelivery +> = z.object({ + webhook_url: z.string(), + auth: PlatformTriggerAuth$outboundSchema.optional(), +}); + +export function platformTriggerDeliveryToJSON( + platformTriggerDelivery: PlatformTriggerDelivery, +): string { + return JSON.stringify( + PlatformTriggerDelivery$outboundSchema.parse(platformTriggerDelivery), + ); +} diff --git a/src/models/components/platformtriggerdeliveryoutput.ts b/src/models/components/platformtriggerdeliveryoutput.ts new file mode 100644 index 000000000..a7e374f13 --- /dev/null +++ b/src/models/components/platformtriggerdeliveryoutput.ts @@ -0,0 +1,44 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 039d513704e1 + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTriggerAuthOutput, + PlatformTriggerAuthOutput$inboundSchema, +} from "./platformtriggerauthoutput.js"; + +export type PlatformTriggerDeliveryOutput = { + /** + * HTTPS URL that signed events are delivered to. + */ + webhook_url: string; + /** + * Optional caller credential sent as an HTTP auth header on each delivery, in addition to the HMAC signature. Lets the receiving endpoint authenticate the request. On update, omit `auth` to preserve the existing credential; there is no in-place removal — recreate the trigger to remove auth. + */ + auth?: PlatformTriggerAuthOutput | undefined; +}; + +/** @internal */ +export const PlatformTriggerDeliveryOutput$inboundSchema: z.ZodType< + PlatformTriggerDeliveryOutput, + z.ZodTypeDef, + unknown +> = z.object({ + webhook_url: z.string(), + auth: PlatformTriggerAuthOutput$inboundSchema.optional(), +}); + +export function platformTriggerDeliveryOutputFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerDeliveryOutput$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerDeliveryOutput' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerevent.ts b/src/models/components/platformtriggerevent.ts new file mode 100644 index 000000000..75d54421f --- /dev/null +++ b/src/models/components/platformtriggerevent.ts @@ -0,0 +1,81 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 65504019ad77 + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTriggerEventReason, + PlatformTriggerEventReason$inboundSchema, +} from "./platformtriggereventreason.js"; +import { + PlatformTriggerEventType, + PlatformTriggerEventType$inboundSchema, +} from "./platformtriggereventtype.js"; + +/** + * A content event a trigger can fire on. + */ +export type PlatformTriggerEvent = { + /** + * The kind of event. + */ + event_type: PlatformTriggerEventType; + /** + * Datasource the event originated from. + */ + datasource: string; + /** + * Why the event fired. + */ + reason: PlatformTriggerEventReason; + /** + * Datasource-specific object type. + */ + doc_type: string; + /** + * Identifier of the document the event is about. + */ + doc_id: string; + /** + * Link to the document in its source system. + */ + view_url: string; + /** + * Title of the document, or the subject for email. + */ + title: string; + /** + * When the event happened at the source: the document's own change timestamp for a document change, and the scheduled time for a content schedule. Omitted when the source did not supply one. + */ + event_time: Date; +}; + +/** @internal */ +export const PlatformTriggerEvent$inboundSchema: z.ZodType< + PlatformTriggerEvent, + z.ZodTypeDef, + unknown +> = z.object({ + event_type: PlatformTriggerEventType$inboundSchema, + datasource: z.string(), + reason: PlatformTriggerEventReason$inboundSchema, + doc_type: z.string(), + doc_id: z.string(), + view_url: z.string(), + title: z.string(), + event_time: z.string().datetime({ offset: true }).transform(v => new Date(v)), +}); + +export function platformTriggerEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerEvent' from JSON`, + ); +} diff --git a/src/models/components/platformtriggereventreason.ts b/src/models/components/platformtriggereventreason.ts new file mode 100644 index 000000000..fdf706302 --- /dev/null +++ b/src/models/components/platformtriggereventreason.ts @@ -0,0 +1,79 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 3e21a733137e + */ + +import * as z from "zod/v3"; +import * as openEnums from "../../types/enums.js"; +import { OpenEnum } from "../../types/enums.js"; + +/** + * Why the event fired. + */ +export const PlatformTriggerEventReason = { + /** + * The document was created. + */ + Created: "CREATED", + /** + * The document was updated. + */ + Updated: "UPDATED", + /** + * The document was deleted. + */ + Deleted: "DELETED", + /** + * The document started matching the trigger's conditions. + */ + MeetsCondition: "MEETS_CONDITION", + /** + * The item was assigned to someone. + */ + Assigned: "ASSIGNED", + /** + * The item was unassigned. + */ + Unassigned: "UNASSIGNED", + /** + * A label was added. + */ + Labeled: "LABELED", + /** + * A label was removed. + */ + Unlabeled: "UNLABELED", + /** + * A review was requested. + */ + ReviewRequested: "REVIEW_REQUESTED", + /** + * A review request was withdrawn. + */ + ReviewRequestRemoved: "REVIEW_REQUEST_REMOVED", + /** + * A draft was marked ready for review. + */ + ReadyForReview: "READY_FOR_REVIEW", + /** + * The item was converted back to a draft. + */ + ConvertedToDraft: "CONVERTED_TO_DRAFT", + /** + * The source system sent a webhook update. + */ + WebhookUpdated: "WEBHOOK_UPDATED", +} as const; +/** + * Why the event fired. + */ +export type PlatformTriggerEventReason = OpenEnum< + typeof PlatformTriggerEventReason +>; + +/** @internal */ +export const PlatformTriggerEventReason$inboundSchema: z.ZodType< + PlatformTriggerEventReason, + z.ZodTypeDef, + unknown +> = openEnums.inboundSchema(PlatformTriggerEventReason); diff --git a/src/models/components/platformtriggereventsearchrequest.ts b/src/models/components/platformtriggereventsearchrequest.ts new file mode 100644 index 000000000..b762e5008 --- /dev/null +++ b/src/models/components/platformtriggereventsearchrequest.ts @@ -0,0 +1,37 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 65684ccd7f59 + */ + +import * as z from "zod/v3"; + +export type PlatformTriggerEventSearchRequest = { + /** + * Maximum number of events to return. + */ + page_size?: number | undefined; +}; + +/** @internal */ +export type PlatformTriggerEventSearchRequest$Outbound = { + page_size: number; +}; + +/** @internal */ +export const PlatformTriggerEventSearchRequest$outboundSchema: z.ZodType< + PlatformTriggerEventSearchRequest$Outbound, + z.ZodTypeDef, + PlatformTriggerEventSearchRequest +> = z.object({ + page_size: z.number().int().default(10), +}); + +export function platformTriggerEventSearchRequestToJSON( + platformTriggerEventSearchRequest: PlatformTriggerEventSearchRequest, +): string { + return JSON.stringify( + PlatformTriggerEventSearchRequest$outboundSchema.parse( + platformTriggerEventSearchRequest, + ), + ); +} diff --git a/src/models/components/platformtriggereventsearchresponse.ts b/src/models/components/platformtriggereventsearchresponse.ts new file mode 100644 index 000000000..b84bf9ad6 --- /dev/null +++ b/src/models/components/platformtriggereventsearchresponse.ts @@ -0,0 +1,52 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: b64d9d75e048 + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTriggerEvent, + PlatformTriggerEvent$inboundSchema, +} from "./platformtriggerevent.js"; + +export type PlatformTriggerEventSearchResponse = { + /** + * Matching events, most recent first. + */ + results: Array; + /** + * Whether more events matched than were returned. Raise `page_size` to see more; cursor-based paging is not offered yet. + * + * @remarks + */ + has_more: boolean; + /** + * Unique identifier for this request, for support and debugging. + */ + request_id: string; +}; + +/** @internal */ +export const PlatformTriggerEventSearchResponse$inboundSchema: z.ZodType< + PlatformTriggerEventSearchResponse, + z.ZodTypeDef, + unknown +> = z.object({ + results: z.array(PlatformTriggerEvent$inboundSchema), + has_more: z.boolean(), + request_id: z.string(), +}); + +export function platformTriggerEventSearchResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + PlatformTriggerEventSearchResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerEventSearchResponse' from JSON`, + ); +} diff --git a/src/models/components/platformtriggereventtype.ts b/src/models/components/platformtriggereventtype.ts new file mode 100644 index 000000000..769c5cedf --- /dev/null +++ b/src/models/components/platformtriggereventtype.ts @@ -0,0 +1,28 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: d4161262b77b + */ + +import * as z from "zod/v3"; +import { ClosedEnum } from "../../types/enums.js"; + +/** + * The kind of event. + */ +export const PlatformTriggerEventType = { + /** + * A document was created, updated, or deleted. + */ + DocumentChange: "DOCUMENT_CHANGE", +} as const; +/** + * The kind of event. + */ +export type PlatformTriggerEventType = ClosedEnum< + typeof PlatformTriggerEventType +>; + +/** @internal */ +export const PlatformTriggerEventType$inboundSchema: z.ZodNativeEnum< + typeof PlatformTriggerEventType +> = z.nativeEnum(PlatformTriggerEventType); diff --git a/src/models/components/platformtriggergetresponse.ts b/src/models/components/platformtriggergetresponse.ts new file mode 100644 index 000000000..30188c7d4 --- /dev/null +++ b/src/models/components/platformtriggergetresponse.ts @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 833e1cd130ea + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTrigger, + PlatformTrigger$inboundSchema, +} from "./platformtrigger.js"; + +export type PlatformTriggerGetResponse = { + trigger: PlatformTrigger; + /** + * Platform-generated request ID for support correlation. + */ + request_id: string; +}; + +/** @internal */ +export const PlatformTriggerGetResponse$inboundSchema: z.ZodType< + PlatformTriggerGetResponse, + z.ZodTypeDef, + unknown +> = z.object({ + trigger: PlatformTrigger$inboundSchema, + request_id: z.string(), +}); + +export function platformTriggerGetResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerGetResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerGetResponse' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerlistresponse.ts b/src/models/components/platformtriggerlistresponse.ts new file mode 100644 index 000000000..d1bf800d8 --- /dev/null +++ b/src/models/components/platformtriggerlistresponse.ts @@ -0,0 +1,54 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: a86bc5bc05bc + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTrigger, + PlatformTrigger$inboundSchema, +} from "./platformtrigger.js"; + +export type PlatformTriggerListResponse = { + /** + * Triggers owned by the caller. + */ + results: Array; + /** + * Whether additional results are available. + */ + has_more: boolean; + /** + * Cursor for the next page, or null when no more results are available. + */ + next_cursor: string | null; + /** + * Platform-generated request ID for support correlation. + */ + request_id: string; +}; + +/** @internal */ +export const PlatformTriggerListResponse$inboundSchema: z.ZodType< + PlatformTriggerListResponse, + z.ZodTypeDef, + unknown +> = z.object({ + results: z.array(PlatformTrigger$inboundSchema), + has_more: z.boolean(), + next_cursor: z.nullable(z.string()), + request_id: z.string(), +}); + +export function platformTriggerListResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerListResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerListResponse' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerpreset.ts b/src/models/components/platformtriggerpreset.ts new file mode 100644 index 000000000..d75ade557 --- /dev/null +++ b/src/models/components/platformtriggerpreset.ts @@ -0,0 +1,59 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: f89c600b3e5e + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTriggerPresetInput, + PlatformTriggerPresetInput$inboundSchema, +} from "./platformtriggerpresetinput.js"; + +export type PlatformTriggerPreset = { + /** + * ID of the preset. Pass this when creating a trigger. + */ + preset_id: string; + /** + * Datasource the preset fires on. + */ + datasource: string; + /** + * Human-readable preset name. + */ + display_name: string; + /** + * Human-readable description of when the preset fires. + */ + description?: string | undefined; + /** + * Inputs the caller may supply when creating a trigger from this preset. + */ + inputs: Array; +}; + +/** @internal */ +export const PlatformTriggerPreset$inboundSchema: z.ZodType< + PlatformTriggerPreset, + z.ZodTypeDef, + unknown +> = z.object({ + preset_id: z.string(), + datasource: z.string(), + display_name: z.string(), + description: z.string().optional(), + inputs: z.array(PlatformTriggerPresetInput$inboundSchema), +}); + +export function platformTriggerPresetFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerPreset$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerPreset' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerpreseteventsearchrequest.ts b/src/models/components/platformtriggerpreseteventsearchrequest.ts new file mode 100644 index 000000000..bc326cad3 --- /dev/null +++ b/src/models/components/platformtriggerpreseteventsearchrequest.ts @@ -0,0 +1,46 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 29798b980810 + */ + +import * as z from "zod/v3"; + +export type PlatformTriggerPresetEventSearchRequest = { + /** + * Values for the preset's input fields, keyed by field name. + * + * @remarks + */ + inputs?: { [k: string]: string } | undefined; + /** + * Maximum number of events to return. + */ + page_size?: number | undefined; +}; + +/** @internal */ +export type PlatformTriggerPresetEventSearchRequest$Outbound = { + inputs?: { [k: string]: string } | undefined; + page_size: number; +}; + +/** @internal */ +export const PlatformTriggerPresetEventSearchRequest$outboundSchema: z.ZodType< + PlatformTriggerPresetEventSearchRequest$Outbound, + z.ZodTypeDef, + PlatformTriggerPresetEventSearchRequest +> = z.object({ + inputs: z.record(z.string()).optional(), + page_size: z.number().int().default(10), +}); + +export function platformTriggerPresetEventSearchRequestToJSON( + platformTriggerPresetEventSearchRequest: + PlatformTriggerPresetEventSearchRequest, +): string { + return JSON.stringify( + PlatformTriggerPresetEventSearchRequest$outboundSchema.parse( + platformTriggerPresetEventSearchRequest, + ), + ); +} diff --git a/src/models/components/platformtriggerpresetgetresponse.ts b/src/models/components/platformtriggerpresetgetresponse.ts new file mode 100644 index 000000000..da5acd512 --- /dev/null +++ b/src/models/components/platformtriggerpresetgetresponse.ts @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 944dd01b7642 + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTriggerPreset, + PlatformTriggerPreset$inboundSchema, +} from "./platformtriggerpreset.js"; + +export type PlatformTriggerPresetGetResponse = { + trigger_preset: PlatformTriggerPreset; + /** + * Platform-generated request ID for support correlation. + */ + request_id: string; +}; + +/** @internal */ +export const PlatformTriggerPresetGetResponse$inboundSchema: z.ZodType< + PlatformTriggerPresetGetResponse, + z.ZodTypeDef, + unknown +> = z.object({ + trigger_preset: PlatformTriggerPreset$inboundSchema, + request_id: z.string(), +}); + +export function platformTriggerPresetGetResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerPresetGetResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerPresetGetResponse' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerpresetinput.ts b/src/models/components/platformtriggerpresetinput.ts new file mode 100644 index 000000000..32f03e5a0 --- /dev/null +++ b/src/models/components/platformtriggerpresetinput.ts @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 2c279b6efb4d + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTriggerPresetInputType, + PlatformTriggerPresetInputType$inboundSchema, +} from "./platformtriggerpresetinputtype.js"; +import { + PlatformTriggerPresetInputValue, + PlatformTriggerPresetInputValue$inboundSchema, +} from "./platformtriggerpresetinputvalue.js"; + +export type PlatformTriggerPresetInput = { + /** + * Identifier of the input, supplied as a key in the trigger's `inputs`. + */ + field: string; + /** + * Type of a preset input. + */ + type: PlatformTriggerPresetInputType; + /** + * Human-readable name for the input. + */ + display_name: string; + /** + * Whether the caller must supply a value for this input. + */ + is_required: boolean; + /** + * Bounded initial set of selectable values for a picklist input. Omitted entirely for free-text inputs. + * + * @remarks + */ + values?: Array | undefined; + /** + * Whether additional selectable values were omitted from `values`. When true, use GET /trigger-presets/{preset_id}/input-values with a query to narrow the result set. + * + * @remarks + */ + is_truncated?: boolean | undefined; +}; + +/** @internal */ +export const PlatformTriggerPresetInput$inboundSchema: z.ZodType< + PlatformTriggerPresetInput, + z.ZodTypeDef, + unknown +> = z.object({ + field: z.string(), + type: PlatformTriggerPresetInputType$inboundSchema, + display_name: z.string(), + is_required: z.boolean(), + values: z.array(PlatformTriggerPresetInputValue$inboundSchema).optional(), + is_truncated: z.boolean().optional(), +}); + +export function platformTriggerPresetInputFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerPresetInput$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerPresetInput' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerpresetinputtype.ts b/src/models/components/platformtriggerpresetinputtype.ts new file mode 100644 index 000000000..baf9ed4a7 --- /dev/null +++ b/src/models/components/platformtriggerpresetinputtype.ts @@ -0,0 +1,30 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 11af54e249ad + */ + +import * as z from "zod/v3"; +import * as openEnums from "../../types/enums.js"; +import { OpenEnum } from "../../types/enums.js"; + +/** + * Type of a preset input. + */ +export const PlatformTriggerPresetInputType = { + Picklist: "PICKLIST", + Text: "TEXT", + User: "USER", +} as const; +/** + * Type of a preset input. + */ +export type PlatformTriggerPresetInputType = OpenEnum< + typeof PlatformTriggerPresetInputType +>; + +/** @internal */ +export const PlatformTriggerPresetInputType$inboundSchema: z.ZodType< + PlatformTriggerPresetInputType, + z.ZodTypeDef, + unknown +> = openEnums.inboundSchema(PlatformTriggerPresetInputType); diff --git a/src/models/components/platformtriggerpresetinputvalue.ts b/src/models/components/platformtriggerpresetinputvalue.ts new file mode 100644 index 000000000..5dfb13719 --- /dev/null +++ b/src/models/components/platformtriggerpresetinputvalue.ts @@ -0,0 +1,42 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 270a25c9c60e + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type PlatformTriggerPresetInputValue = { + /** + * The exact value to send in the trigger's `inputs` for this choice (e.g. a channel name, a user's email, etc). + * + * @remarks + */ + value: string; + /** + * Human-readable name for this value. + */ + display_name: string; +}; + +/** @internal */ +export const PlatformTriggerPresetInputValue$inboundSchema: z.ZodType< + PlatformTriggerPresetInputValue, + z.ZodTypeDef, + unknown +> = z.object({ + value: z.string(), + display_name: z.string(), +}); + +export function platformTriggerPresetInputValueFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerPresetInputValue$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerPresetInputValue' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerpresetinputvaluelistresponse.ts b/src/models/components/platformtriggerpresetinputvaluelistresponse.ts new file mode 100644 index 000000000..5b817c099 --- /dev/null +++ b/src/models/components/platformtriggerpresetinputvaluelistresponse.ts @@ -0,0 +1,58 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 9aabb071698b + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTriggerPresetInputValue, + PlatformTriggerPresetInputValue$inboundSchema, +} from "./platformtriggerpresetinputvalue.js"; + +export type PlatformTriggerPresetInputValueListResponse = { + /** + * The bounded set of selectable values matching the query. + */ + results: Array; + /** + * Whether additional matches were omitted. When true, refine `query` to narrow the result set. + * + * @remarks + */ + is_truncated: boolean; + /** + * Platform-generated request ID for support correlation. + */ + request_id: string; +}; + +/** @internal */ +export const PlatformTriggerPresetInputValueListResponse$inboundSchema: + z.ZodType< + PlatformTriggerPresetInputValueListResponse, + z.ZodTypeDef, + unknown + > = z.object({ + results: z.array(PlatformTriggerPresetInputValue$inboundSchema), + is_truncated: z.boolean(), + request_id: z.string(), + }); + +export function platformTriggerPresetInputValueListResponseFromJSON( + jsonString: string, +): SafeParseResult< + PlatformTriggerPresetInputValueListResponse, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + PlatformTriggerPresetInputValueListResponse$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'PlatformTriggerPresetInputValueListResponse' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerpresetlistresponse.ts b/src/models/components/platformtriggerpresetlistresponse.ts new file mode 100644 index 000000000..552c936b7 --- /dev/null +++ b/src/models/components/platformtriggerpresetlistresponse.ts @@ -0,0 +1,54 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 23286666d186 + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTriggerPresetSummary, + PlatformTriggerPresetSummary$inboundSchema, +} from "./platformtriggerpresetsummary.js"; + +export type PlatformTriggerPresetListResponse = { + /** + * Trigger presets available to the caller. + */ + results: Array; + /** + * Whether additional results are available. + */ + has_more: boolean; + /** + * Cursor for the next page, or null when no more results are available. + */ + next_cursor: string | null; + /** + * Platform-generated request ID for support correlation. + */ + request_id: string; +}; + +/** @internal */ +export const PlatformTriggerPresetListResponse$inboundSchema: z.ZodType< + PlatformTriggerPresetListResponse, + z.ZodTypeDef, + unknown +> = z.object({ + results: z.array(PlatformTriggerPresetSummary$inboundSchema), + has_more: z.boolean(), + next_cursor: z.nullable(z.string()), + request_id: z.string(), +}); + +export function platformTriggerPresetListResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerPresetListResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerPresetListResponse' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerpresetsummary.ts b/src/models/components/platformtriggerpresetsummary.ts new file mode 100644 index 000000000..eb347b9cd --- /dev/null +++ b/src/models/components/platformtriggerpresetsummary.ts @@ -0,0 +1,50 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: ca7665edf3ac + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; + +export type PlatformTriggerPresetSummary = { + /** + * ID of the preset. Pass this when creating a trigger. + */ + preset_id: string; + /** + * Datasource the preset fires on. + */ + datasource: string; + /** + * Human-readable preset name. + */ + display_name: string; + /** + * Human-readable description of when the preset fires. + */ + description?: string | undefined; +}; + +/** @internal */ +export const PlatformTriggerPresetSummary$inboundSchema: z.ZodType< + PlatformTriggerPresetSummary, + z.ZodTypeDef, + unknown +> = z.object({ + preset_id: z.string(), + datasource: z.string(), + display_name: z.string(), + description: z.string().optional(), +}); + +export function platformTriggerPresetSummaryFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerPresetSummary$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerPresetSummary' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerstatus.ts b/src/models/components/platformtriggerstatus.ts new file mode 100644 index 000000000..4c55f88d5 --- /dev/null +++ b/src/models/components/platformtriggerstatus.ts @@ -0,0 +1,33 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: a841ee0d06d7 + */ + +import * as z from "zod/v3"; +import * as openEnums from "../../types/enums.js"; +import { OpenEnum } from "../../types/enums.js"; + +/** + * Current trigger lifecycle state. + */ +export const PlatformTriggerStatus = { + Enabled: "ENABLED", + Disabled: "DISABLED", +} as const; +/** + * Current trigger lifecycle state. + */ +export type PlatformTriggerStatus = OpenEnum; + +/** @internal */ +export const PlatformTriggerStatus$inboundSchema: z.ZodType< + PlatformTriggerStatus, + z.ZodTypeDef, + unknown +> = openEnums.inboundSchema(PlatformTriggerStatus); +/** @internal */ +export const PlatformTriggerStatus$outboundSchema: z.ZodType< + string, + z.ZodTypeDef, + PlatformTriggerStatus +> = openEnums.outboundSchema(PlatformTriggerStatus); diff --git a/src/models/components/platformtriggerupdaterequest.ts b/src/models/components/platformtriggerupdaterequest.ts new file mode 100644 index 000000000..322a65d4c --- /dev/null +++ b/src/models/components/platformtriggerupdaterequest.ts @@ -0,0 +1,64 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 4e3008c8e562 + */ + +import * as z from "zod/v3"; +import { + PlatformTriggerDelivery, + PlatformTriggerDelivery$Outbound, + PlatformTriggerDelivery$outboundSchema, +} from "./platformtriggerdelivery.js"; +import { + PlatformTriggerStatus, + PlatformTriggerStatus$outboundSchema, +} from "./platformtriggerstatus.js"; + +/** + * Partial update. Only the supplied fields are changed. + */ +export type PlatformTriggerUpdateRequest = { + /** + * Current trigger lifecycle state. + */ + status?: PlatformTriggerStatus | undefined; + /** + * Optional note describing this trigger. + */ + description?: string | undefined; + /** + * Values for the preset's inputs. + */ + inputs?: { [k: string]: any } | undefined; + delivery?: PlatformTriggerDelivery | undefined; +}; + +/** @internal */ +export type PlatformTriggerUpdateRequest$Outbound = { + status?: string | undefined; + description?: string | undefined; + inputs?: { [k: string]: any } | undefined; + delivery?: PlatformTriggerDelivery$Outbound | undefined; +}; + +/** @internal */ +export const PlatformTriggerUpdateRequest$outboundSchema: z.ZodType< + PlatformTriggerUpdateRequest$Outbound, + z.ZodTypeDef, + PlatformTriggerUpdateRequest +> = z.object({ + status: PlatformTriggerStatus$outboundSchema.optional(), + description: z.string().optional(), + inputs: z.record(z.any()).optional(), + delivery: PlatformTriggerDelivery$outboundSchema.optional(), +}); + +export function platformTriggerUpdateRequestToJSON( + platformTriggerUpdateRequest: PlatformTriggerUpdateRequest, +): string { + return JSON.stringify( + PlatformTriggerUpdateRequest$outboundSchema.parse( + platformTriggerUpdateRequest, + ), + ); +} diff --git a/src/models/components/platformtriggerwebhookevent.ts b/src/models/components/platformtriggerwebhookevent.ts new file mode 100644 index 000000000..b85619326 --- /dev/null +++ b/src/models/components/platformtriggerwebhookevent.ts @@ -0,0 +1,71 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 2824d82a6b5e + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformContentScheduleWebhookEvent, + PlatformContentScheduleWebhookEvent$inboundSchema, + PlatformContentScheduleWebhookEvent$Outbound, + PlatformContentScheduleWebhookEvent$outboundSchema, +} from "./platformcontentschedulewebhookevent.js"; +import { + PlatformDocumentChangeWebhookEvent, + PlatformDocumentChangeWebhookEvent$inboundSchema, + PlatformDocumentChangeWebhookEvent$Outbound, + PlatformDocumentChangeWebhookEvent$outboundSchema, +} from "./platformdocumentchangewebhookevent.js"; + +/** + * Every delivered webhook is one of these two variants. A trigger with a cron schedule carries no document and so cannot be delivered over a webhook. + */ +export type PlatformTriggerWebhookEvent = + | PlatformContentScheduleWebhookEvent + | PlatformDocumentChangeWebhookEvent; + +/** @internal */ +export const PlatformTriggerWebhookEvent$inboundSchema: z.ZodType< + PlatformTriggerWebhookEvent, + z.ZodTypeDef, + unknown +> = z.union([ + PlatformContentScheduleWebhookEvent$inboundSchema, + PlatformDocumentChangeWebhookEvent$inboundSchema, +]); +/** @internal */ +export type PlatformTriggerWebhookEvent$Outbound = + | PlatformContentScheduleWebhookEvent$Outbound + | PlatformDocumentChangeWebhookEvent$Outbound; + +/** @internal */ +export const PlatformTriggerWebhookEvent$outboundSchema: z.ZodType< + PlatformTriggerWebhookEvent$Outbound, + z.ZodTypeDef, + PlatformTriggerWebhookEvent +> = z.union([ + PlatformContentScheduleWebhookEvent$outboundSchema, + PlatformDocumentChangeWebhookEvent$outboundSchema, +]); + +export function platformTriggerWebhookEventToJSON( + platformTriggerWebhookEvent: PlatformTriggerWebhookEvent, +): string { + return JSON.stringify( + PlatformTriggerWebhookEvent$outboundSchema.parse( + platformTriggerWebhookEvent, + ), + ); +} +export function platformTriggerWebhookEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerWebhookEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerWebhookEvent' from JSON`, + ); +} diff --git a/src/models/components/platformtriggerwithsecret.ts b/src/models/components/platformtriggerwithsecret.ts new file mode 100644 index 000000000..993934b55 --- /dev/null +++ b/src/models/components/platformtriggerwithsecret.ts @@ -0,0 +1,80 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 740e30c53656 + */ + +import * as z from "zod/v3"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import { + PlatformTriggerDeliveryOutput, + PlatformTriggerDeliveryOutput$inboundSchema, +} from "./platformtriggerdeliveryoutput.js"; +import { + PlatformTriggerStatus, + PlatformTriggerStatus$inboundSchema, +} from "./platformtriggerstatus.js"; + +export type PlatformTriggerWithSecret = { + /** + * ID of the trigger. + */ + trigger_id: string; + /** + * ID of the preset this trigger was created from. + */ + preset_id: string; + /** + * Optional caller-supplied note describing this trigger. + */ + description?: string | undefined; + /** + * Current trigger lifecycle state. + */ + status: PlatformTriggerStatus; + /** + * Values supplied for the preset's inputs. + */ + inputs?: { [k: string]: any } | undefined; + delivery: PlatformTriggerDeliveryOutput; + /** + * Time the trigger was created. + */ + created_at: Date; + /** + * Time the trigger was last updated. + */ + updated_at: Date; + /** + * Secret for verifying webhook signatures, serialized as `whsec_` following Standard Webhooks. Returned only when the trigger is created and cannot be retrieved later. Store it securely. + */ + signing_secret: string; +}; + +/** @internal */ +export const PlatformTriggerWithSecret$inboundSchema: z.ZodType< + PlatformTriggerWithSecret, + z.ZodTypeDef, + unknown +> = z.object({ + trigger_id: z.string(), + preset_id: z.string(), + description: z.string().optional(), + status: PlatformTriggerStatus$inboundSchema, + inputs: z.record(z.any()).optional(), + delivery: PlatformTriggerDeliveryOutput$inboundSchema, + created_at: z.string().datetime({ offset: true }).transform(v => new Date(v)), + updated_at: z.string().datetime({ offset: true }).transform(v => new Date(v)), + signing_secret: z.string(), +}); + +export function platformTriggerWithSecretFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PlatformTriggerWithSecret$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PlatformTriggerWithSecret' from JSON`, + ); +} diff --git a/src/models/operations/index.ts b/src/models/operations/index.ts index 7da932b64..bd423ce02 100644 --- a/src/models/operations/index.ts +++ b/src/models/operations/index.ts @@ -90,6 +90,15 @@ export * from "./platformskillslistversions.js"; export * from "./platformskillspreviewsource.js"; export * from "./platformskillssync.js"; export * from "./platformskillsupdate.js"; +export * from "./platformtriggerpresetseventssearch.js"; +export * from "./platformtriggerpresetsget.js"; +export * from "./platformtriggerpresetsinputvalueslist.js"; +export * from "./platformtriggerpresetslist.js"; +export * from "./platformtriggersdelete.js"; +export * from "./platformtriggerseventssearch.js"; +export * from "./platformtriggersget.js"; +export * from "./platformtriggerslist.js"; +export * from "./platformtriggersupdate.js"; export * from "./postapiindexv1debugdatasourcedocument.js"; export * from "./postapiindexv1debugdatasourcedocumentevents.js"; export * from "./postapiindexv1debugdatasourcedocuments.js"; diff --git a/src/models/operations/platformtriggerpresetseventssearch.ts b/src/models/operations/platformtriggerpresetseventssearch.ts new file mode 100644 index 000000000..4c3e8abac --- /dev/null +++ b/src/models/operations/platformtriggerpresetseventssearch.ts @@ -0,0 +1,54 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 815ee5e068db + */ + +import * as z from "zod/v3"; +import { remap as remap$ } from "../../lib/primitives.js"; +import * as components from "../components/index.js"; + +export type PlatformTriggerPresetsEventsSearchRequest = { + /** + * ID of the preset to preview. + */ + preset_id: string; + platformTriggerPresetEventSearchRequest?: + | components.PlatformTriggerPresetEventSearchRequest + | undefined; +}; + +/** @internal */ +export type PlatformTriggerPresetsEventsSearchRequest$Outbound = { + preset_id: string; + PlatformTriggerPresetEventSearchRequest?: + | components.PlatformTriggerPresetEventSearchRequest$Outbound + | undefined; +}; + +/** @internal */ +export const PlatformTriggerPresetsEventsSearchRequest$outboundSchema: + z.ZodType< + PlatformTriggerPresetsEventsSearchRequest$Outbound, + z.ZodTypeDef, + PlatformTriggerPresetsEventsSearchRequest + > = z.object({ + preset_id: z.string(), + platformTriggerPresetEventSearchRequest: components + .PlatformTriggerPresetEventSearchRequest$outboundSchema.optional(), + }).transform((v) => { + return remap$(v, { + platformTriggerPresetEventSearchRequest: + "PlatformTriggerPresetEventSearchRequest", + }); + }); + +export function platformTriggerPresetsEventsSearchRequestToJSON( + platformTriggerPresetsEventsSearchRequest: + PlatformTriggerPresetsEventsSearchRequest, +): string { + return JSON.stringify( + PlatformTriggerPresetsEventsSearchRequest$outboundSchema.parse( + platformTriggerPresetsEventsSearchRequest, + ), + ); +} diff --git a/src/models/operations/platformtriggerpresetsget.ts b/src/models/operations/platformtriggerpresetsget.ts new file mode 100644 index 000000000..c5fbcfab8 --- /dev/null +++ b/src/models/operations/platformtriggerpresetsget.ts @@ -0,0 +1,37 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: fa69fa99c2eb + */ + +import * as z from "zod/v3"; + +export type PlatformTriggerPresetsGetRequest = { + /** + * ID of the preset to retrieve. + */ + preset_id: string; +}; + +/** @internal */ +export type PlatformTriggerPresetsGetRequest$Outbound = { + preset_id: string; +}; + +/** @internal */ +export const PlatformTriggerPresetsGetRequest$outboundSchema: z.ZodType< + PlatformTriggerPresetsGetRequest$Outbound, + z.ZodTypeDef, + PlatformTriggerPresetsGetRequest +> = z.object({ + preset_id: z.string(), +}); + +export function platformTriggerPresetsGetRequestToJSON( + platformTriggerPresetsGetRequest: PlatformTriggerPresetsGetRequest, +): string { + return JSON.stringify( + PlatformTriggerPresetsGetRequest$outboundSchema.parse( + platformTriggerPresetsGetRequest, + ), + ); +} diff --git a/src/models/operations/platformtriggerpresetsinputvalueslist.ts b/src/models/operations/platformtriggerpresetsinputvalueslist.ts new file mode 100644 index 000000000..173bd4ad3 --- /dev/null +++ b/src/models/operations/platformtriggerpresetsinputvalueslist.ts @@ -0,0 +1,53 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 37596aaba8e9 + */ + +import * as z from "zod/v3"; + +export type PlatformTriggerPresetsInputValuesListRequest = { + /** + * ID of the preset the input belongs to. + */ + preset_id: string; + /** + * Field identifier of the input whose values to list. + */ + field: string; + /** + * Prefix filter over the input's option values, for typeahead. Matching is on the option value, not its display name. + * + * @remarks + */ + query?: string | undefined; +}; + +/** @internal */ +export type PlatformTriggerPresetsInputValuesListRequest$Outbound = { + preset_id: string; + field: string; + query?: string | undefined; +}; + +/** @internal */ +export const PlatformTriggerPresetsInputValuesListRequest$outboundSchema: + z.ZodType< + PlatformTriggerPresetsInputValuesListRequest$Outbound, + z.ZodTypeDef, + PlatformTriggerPresetsInputValuesListRequest + > = z.object({ + preset_id: z.string(), + field: z.string(), + query: z.string().optional(), + }); + +export function platformTriggerPresetsInputValuesListRequestToJSON( + platformTriggerPresetsInputValuesListRequest: + PlatformTriggerPresetsInputValuesListRequest, +): string { + return JSON.stringify( + PlatformTriggerPresetsInputValuesListRequest$outboundSchema.parse( + platformTriggerPresetsInputValuesListRequest, + ), + ); +} diff --git a/src/models/operations/platformtriggerpresetslist.ts b/src/models/operations/platformtriggerpresetslist.ts new file mode 100644 index 000000000..b4f8ecf91 --- /dev/null +++ b/src/models/operations/platformtriggerpresetslist.ts @@ -0,0 +1,49 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 9c9a79861d1a + */ + +import * as z from "zod/v3"; + +export type PlatformTriggerPresetsListRequest = { + /** + * Restrict results to presets for a single datasource (e.g. github). + */ + datasource?: string | undefined; + /** + * Maximum number of presets to return. + */ + page_size?: number | undefined; + /** + * Opaque pagination cursor from a previous response. + */ + cursor?: string | undefined; +}; + +/** @internal */ +export type PlatformTriggerPresetsListRequest$Outbound = { + datasource?: string | undefined; + page_size: number; + cursor?: string | undefined; +}; + +/** @internal */ +export const PlatformTriggerPresetsListRequest$outboundSchema: z.ZodType< + PlatformTriggerPresetsListRequest$Outbound, + z.ZodTypeDef, + PlatformTriggerPresetsListRequest +> = z.object({ + datasource: z.string().optional(), + page_size: z.number().int().default(50), + cursor: z.string().optional(), +}); + +export function platformTriggerPresetsListRequestToJSON( + platformTriggerPresetsListRequest: PlatformTriggerPresetsListRequest, +): string { + return JSON.stringify( + PlatformTriggerPresetsListRequest$outboundSchema.parse( + platformTriggerPresetsListRequest, + ), + ); +} diff --git a/src/models/operations/platformtriggersdelete.ts b/src/models/operations/platformtriggersdelete.ts new file mode 100644 index 000000000..164f79ed9 --- /dev/null +++ b/src/models/operations/platformtriggersdelete.ts @@ -0,0 +1,37 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 5689f4ee466e + */ + +import * as z from "zod/v3"; + +export type PlatformTriggersDeleteRequest = { + /** + * ID of the trigger to delete. + */ + trigger_id: string; +}; + +/** @internal */ +export type PlatformTriggersDeleteRequest$Outbound = { + trigger_id: string; +}; + +/** @internal */ +export const PlatformTriggersDeleteRequest$outboundSchema: z.ZodType< + PlatformTriggersDeleteRequest$Outbound, + z.ZodTypeDef, + PlatformTriggersDeleteRequest +> = z.object({ + trigger_id: z.string(), +}); + +export function platformTriggersDeleteRequestToJSON( + platformTriggersDeleteRequest: PlatformTriggersDeleteRequest, +): string { + return JSON.stringify( + PlatformTriggersDeleteRequest$outboundSchema.parse( + platformTriggersDeleteRequest, + ), + ); +} diff --git a/src/models/operations/platformtriggerseventssearch.ts b/src/models/operations/platformtriggerseventssearch.ts new file mode 100644 index 000000000..404d20300 --- /dev/null +++ b/src/models/operations/platformtriggerseventssearch.ts @@ -0,0 +1,51 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 25e9deb273d0 + */ + +import * as z from "zod/v3"; +import { remap as remap$ } from "../../lib/primitives.js"; +import * as components from "../components/index.js"; + +export type PlatformTriggersEventsSearchRequest = { + /** + * ID of the trigger whose events to search. + */ + trigger_id: string; + platformTriggerEventSearchRequest?: + | components.PlatformTriggerEventSearchRequest + | undefined; +}; + +/** @internal */ +export type PlatformTriggersEventsSearchRequest$Outbound = { + trigger_id: string; + PlatformTriggerEventSearchRequest?: + | components.PlatformTriggerEventSearchRequest$Outbound + | undefined; +}; + +/** @internal */ +export const PlatformTriggersEventsSearchRequest$outboundSchema: z.ZodType< + PlatformTriggersEventsSearchRequest$Outbound, + z.ZodTypeDef, + PlatformTriggersEventsSearchRequest +> = z.object({ + trigger_id: z.string(), + platformTriggerEventSearchRequest: components + .PlatformTriggerEventSearchRequest$outboundSchema.optional(), +}).transform((v) => { + return remap$(v, { + platformTriggerEventSearchRequest: "PlatformTriggerEventSearchRequest", + }); +}); + +export function platformTriggersEventsSearchRequestToJSON( + platformTriggersEventsSearchRequest: PlatformTriggersEventsSearchRequest, +): string { + return JSON.stringify( + PlatformTriggersEventsSearchRequest$outboundSchema.parse( + platformTriggersEventsSearchRequest, + ), + ); +} diff --git a/src/models/operations/platformtriggersget.ts b/src/models/operations/platformtriggersget.ts new file mode 100644 index 000000000..a2be17a6d --- /dev/null +++ b/src/models/operations/platformtriggersget.ts @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 24d3dcb9434c + */ + +import * as z from "zod/v3"; + +export type PlatformTriggersGetRequest = { + /** + * ID of the trigger to retrieve. + */ + trigger_id: string; +}; + +/** @internal */ +export type PlatformTriggersGetRequest$Outbound = { + trigger_id: string; +}; + +/** @internal */ +export const PlatformTriggersGetRequest$outboundSchema: z.ZodType< + PlatformTriggersGetRequest$Outbound, + z.ZodTypeDef, + PlatformTriggersGetRequest +> = z.object({ + trigger_id: z.string(), +}); + +export function platformTriggersGetRequestToJSON( + platformTriggersGetRequest: PlatformTriggersGetRequest, +): string { + return JSON.stringify( + PlatformTriggersGetRequest$outboundSchema.parse(platformTriggersGetRequest), + ); +} diff --git a/src/models/operations/platformtriggerslist.ts b/src/models/operations/platformtriggerslist.ts new file mode 100644 index 000000000..a103fe0fd --- /dev/null +++ b/src/models/operations/platformtriggerslist.ts @@ -0,0 +1,43 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 3fc3b19e68e9 + */ + +import * as z from "zod/v3"; + +export type PlatformTriggersListRequest = { + /** + * Maximum number of triggers to return. + */ + page_size?: number | undefined; + /** + * Opaque pagination cursor from a previous response. + */ + cursor?: string | undefined; +}; + +/** @internal */ +export type PlatformTriggersListRequest$Outbound = { + page_size: number; + cursor?: string | undefined; +}; + +/** @internal */ +export const PlatformTriggersListRequest$outboundSchema: z.ZodType< + PlatformTriggersListRequest$Outbound, + z.ZodTypeDef, + PlatformTriggersListRequest +> = z.object({ + page_size: z.number().int().default(50), + cursor: z.string().optional(), +}); + +export function platformTriggersListRequestToJSON( + platformTriggersListRequest: PlatformTriggersListRequest, +): string { + return JSON.stringify( + PlatformTriggersListRequest$outboundSchema.parse( + platformTriggersListRequest, + ), + ); +} diff --git a/src/models/operations/platformtriggersupdate.ts b/src/models/operations/platformtriggersupdate.ts new file mode 100644 index 000000000..9e573a866 --- /dev/null +++ b/src/models/operations/platformtriggersupdate.ts @@ -0,0 +1,48 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: fa9a15df40e7 + */ + +import * as z from "zod/v3"; +import { remap as remap$ } from "../../lib/primitives.js"; +import * as components from "../components/index.js"; + +export type PlatformTriggersUpdateRequest = { + /** + * ID of the trigger to update. + */ + trigger_id: string; + platformTriggerUpdateRequest: components.PlatformTriggerUpdateRequest; +}; + +/** @internal */ +export type PlatformTriggersUpdateRequest$Outbound = { + trigger_id: string; + PlatformTriggerUpdateRequest: + components.PlatformTriggerUpdateRequest$Outbound; +}; + +/** @internal */ +export const PlatformTriggersUpdateRequest$outboundSchema: z.ZodType< + PlatformTriggersUpdateRequest$Outbound, + z.ZodTypeDef, + PlatformTriggersUpdateRequest +> = z.object({ + trigger_id: z.string(), + platformTriggerUpdateRequest: + components.PlatformTriggerUpdateRequest$outboundSchema, +}).transform((v) => { + return remap$(v, { + platformTriggerUpdateRequest: "PlatformTriggerUpdateRequest", + }); +}); + +export function platformTriggersUpdateRequestToJSON( + platformTriggersUpdateRequest: PlatformTriggersUpdateRequest, +): string { + return JSON.stringify( + PlatformTriggersUpdateRequest$outboundSchema.parse( + platformTriggersUpdateRequest, + ), + ); +} diff --git a/src/react-query/clientToolsGetToolServerTools.ts b/src/react-query/clientToolsGetToolServerTools.ts index 11ba5bb3b..773690b4a 100644 --- a/src/react-query/clientToolsGetToolServerTools.ts +++ b/src/react-query/clientToolsGetToolServerTools.ts @@ -55,14 +55,15 @@ export type ClientToolsGetToolServerToolsQueryError = * * @remarks * Returns the name, description and JSON input schema for the named tools on the - * specified tool server. Works for both action packs and MCP servers. + * specified tool server. Works for Glean's built-in tools, tool packs and MCP + * servers. * * `toolNames` is required. Names that do not exist on the server are returned in * `notFound` rather than failing the request, so a single bad name does not force * callers into one-at-a-time retries. Matching is case-insensitive and treats `-` * and `_` as equivalent. * - * Native tools are not served; `serverId=native` returns 404. + * Use `serverId=native` for Glean's built-in tools. */ export function useClientToolsGetToolServerTools( serverId: string, @@ -92,14 +93,15 @@ export function useClientToolsGetToolServerTools( * * @remarks * Returns the name, description and JSON input schema for the named tools on the - * specified tool server. Works for both action packs and MCP servers. + * specified tool server. Works for Glean's built-in tools, tool packs and MCP + * servers. * * `toolNames` is required. Names that do not exist on the server are returned in * `notFound` rather than failing the request, so a single bad name does not force * callers into one-at-a-time retries. Matching is case-insensitive and treats `-` * and `_` as equivalent. * - * Native tools are not served; `serverId=native` returns 404. + * Use `serverId=native` for Glean's built-in tools. */ export function useClientToolsGetToolServerToolsSuspense( serverId: string, diff --git a/src/react-query/index.ts b/src/react-query/index.ts index b1d453d13..10c108476 100644 --- a/src/react-query/index.ts +++ b/src/react-query/index.ts @@ -162,3 +162,13 @@ export * from "./skillsRetrieveVersionContent.js"; export * from "./skillsSync.js"; export * from "./skillsUpdate.js"; export * from "./skillsValidate.js"; +export * from "./triggersCreate.js"; +export * from "./triggersDelete.js"; +export * from "./triggersGet.js"; +export * from "./triggersGetPreset.js"; +export * from "./triggersList.js"; +export * from "./triggersListPresetInputValues.js"; +export * from "./triggersListPresets.js"; +export * from "./triggersSearchEvents.js"; +export * from "./triggersSearchPresetEvents.js"; +export * from "./triggersUpdate.js"; diff --git a/src/react-query/triggersCreate.ts b/src/react-query/triggersCreate.ts new file mode 100644 index 000000000..bd1461bd8 --- /dev/null +++ b/src/react-query/triggersCreate.ts @@ -0,0 +1,112 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: cbefb416f1d3 + */ + +import { + MutationKey, + useMutation, + UseMutationResult, +} from "@tanstack/react-query"; +import { GleanCore } from "../core.js"; +import { triggersCreate } from "../funcs/triggersCreate.js"; +import { combineSignals } from "../lib/primitives.js"; +import { RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { unwrapAsync } from "../types/fp.js"; +import { useGleanContext } from "./_context.js"; +import { MutationHookOptions } from "./_types.js"; + +export type TriggersCreateMutationVariables = { + request: components.PlatformTriggerCreateRequest; + options?: RequestOptions; +}; + +export type TriggersCreateMutationData = + components.PlatformTriggerCreateResponse; + +export type TriggersCreateMutationError = + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + +/** + * Create trigger + * + * @remarks + * Create a trigger from a preset and return it with its signing secret. + */ +export function useTriggersCreateMutation( + options?: MutationHookOptions< + TriggersCreateMutationData, + TriggersCreateMutationError, + TriggersCreateMutationVariables + >, +): UseMutationResult< + TriggersCreateMutationData, + TriggersCreateMutationError, + TriggersCreateMutationVariables +> { + const client = useGleanContext(); + return useMutation({ + ...buildTriggersCreateMutation(client, options), + ...options, + }); +} + +export function mutationKeyTriggersCreate(): MutationKey { + return ["@gleanwork/api-client", "triggers", "create"]; +} + +export function buildTriggersCreateMutation( + client$: GleanCore, + hookOptions?: RequestOptions, +): { + mutationKey: MutationKey; + mutationFn: ( + variables: TriggersCreateMutationVariables, + ) => Promise; +} { + return { + mutationKey: mutationKeyTriggersCreate(), + mutationFn: function triggersCreateMutationFn({ + request, + options, + }): Promise { + const mergedOptions = { + ...hookOptions, + ...options, + fetchOptions: { + ...hookOptions?.fetchOptions, + ...options?.fetchOptions, + signal: combineSignals( + hookOptions?.fetchOptions?.signal, + options?.fetchOptions?.signal, + ), + }, + }; + return unwrapAsync(triggersCreate( + client$, + request, + mergedOptions, + )); + }, + }; +} diff --git a/src/react-query/triggersDelete.ts b/src/react-query/triggersDelete.ts new file mode 100644 index 000000000..57211af4d --- /dev/null +++ b/src/react-query/triggersDelete.ts @@ -0,0 +1,110 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 2201eee86f69 + */ + +import { + MutationKey, + useMutation, + UseMutationResult, +} from "@tanstack/react-query"; +import { GleanCore } from "../core.js"; +import { triggersDelete } from "../funcs/triggersDelete.js"; +import { combineSignals } from "../lib/primitives.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { unwrapAsync } from "../types/fp.js"; +import { useGleanContext } from "./_context.js"; +import { MutationHookOptions } from "./_types.js"; + +export type TriggersDeleteMutationVariables = { + triggerId: string; + options?: RequestOptions; +}; + +export type TriggersDeleteMutationData = void; + +export type TriggersDeleteMutationError = + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + +/** + * Delete trigger + * + * @remarks + * Delete a trigger. + */ +export function useTriggersDeleteMutation( + options?: MutationHookOptions< + TriggersDeleteMutationData, + TriggersDeleteMutationError, + TriggersDeleteMutationVariables + >, +): UseMutationResult< + TriggersDeleteMutationData, + TriggersDeleteMutationError, + TriggersDeleteMutationVariables +> { + const client = useGleanContext(); + return useMutation({ + ...buildTriggersDeleteMutation(client, options), + ...options, + }); +} + +export function mutationKeyTriggersDelete(): MutationKey { + return ["@gleanwork/api-client", "triggers", "delete"]; +} + +export function buildTriggersDeleteMutation( + client$: GleanCore, + hookOptions?: RequestOptions, +): { + mutationKey: MutationKey; + mutationFn: ( + variables: TriggersDeleteMutationVariables, + ) => Promise; +} { + return { + mutationKey: mutationKeyTriggersDelete(), + mutationFn: function triggersDeleteMutationFn({ + triggerId, + options, + }): Promise { + const mergedOptions = { + ...hookOptions, + ...options, + fetchOptions: { + ...hookOptions?.fetchOptions, + ...options?.fetchOptions, + signal: combineSignals( + hookOptions?.fetchOptions?.signal, + options?.fetchOptions?.signal, + ), + }, + }; + return unwrapAsync(triggersDelete( + client$, + triggerId, + mergedOptions, + )); + }, + }; +} diff --git a/src/react-query/triggersGet.core.ts b/src/react-query/triggersGet.core.ts new file mode 100644 index 000000000..05cb7dd15 --- /dev/null +++ b/src/react-query/triggersGet.core.ts @@ -0,0 +1,69 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 86bc9840e105 + */ + +import { + QueryClient, + QueryFunctionContext, + QueryKey, +} from "@tanstack/react-query"; +import { GleanCore } from "../core.js"; +import { triggersGet } from "../funcs/triggersGet.js"; +import { combineSignals } from "../lib/primitives.js"; +import { RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { unwrapAsync } from "../types/fp.js"; +export type TriggersGetQueryData = components.PlatformTriggerGetResponse; + +export function prefetchTriggersGet( + queryClient: QueryClient, + client$: GleanCore, + triggerId: string, + options?: RequestOptions, +): Promise { + return queryClient.prefetchQuery({ + ...buildTriggersGetQuery( + client$, + triggerId, + options, + ), + }); +} + +export function buildTriggersGetQuery( + client$: GleanCore, + triggerId: string, + options?: RequestOptions, +): { + queryKey: QueryKey; + queryFn: (context: QueryFunctionContext) => Promise; +} { + return { + queryKey: queryKeyTriggersGet(triggerId), + queryFn: async function triggersGetQueryFn( + ctx, + ): Promise { + const sig = combineSignals( + ctx.signal, + options?.signal, + options?.fetchOptions?.signal, + ); + const mergedOptions = { + ...options?.fetchOptions, + ...options, + signal: sig, + }; + + return unwrapAsync(triggersGet( + client$, + triggerId, + mergedOptions, + )); + }, + }; +} + +export function queryKeyTriggersGet(triggerId: string): QueryKey { + return ["@gleanwork/api-client", "triggers", "get", triggerId]; +} diff --git a/src/react-query/triggersGet.ts b/src/react-query/triggersGet.ts new file mode 100644 index 000000000..d422e38ab --- /dev/null +++ b/src/react-query/triggersGet.ts @@ -0,0 +1,129 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 4257b148bb52 + */ + +import { + InvalidateQueryFilters, + QueryClient, + useQuery, + UseQueryResult, + useSuspenseQuery, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { useGleanContext } from "./_context.js"; +import { + QueryHookOptions, + SuspenseQueryHookOptions, + TupleToPrefixes, +} from "./_types.js"; +import { + buildTriggersGetQuery, + prefetchTriggersGet, + queryKeyTriggersGet, + TriggersGetQueryData, +} from "./triggersGet.core.js"; +export { + buildTriggersGetQuery, + prefetchTriggersGet, + queryKeyTriggersGet, + type TriggersGetQueryData, +}; + +export type TriggersGetQueryError = + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + +/** + * Get trigger + * + * @remarks + * Retrieve a trigger owned by the authenticated caller. + */ +export function useTriggersGet( + triggerId: string, + options?: QueryHookOptions, +): UseQueryResult { + const client = useGleanContext(); + return useQuery({ + ...buildTriggersGetQuery( + client, + triggerId, + options, + ), + ...options, + }); +} + +/** + * Get trigger + * + * @remarks + * Retrieve a trigger owned by the authenticated caller. + */ +export function useTriggersGetSuspense( + triggerId: string, + options?: SuspenseQueryHookOptions< + TriggersGetQueryData, + TriggersGetQueryError + >, +): UseSuspenseQueryResult { + const client = useGleanContext(); + return useSuspenseQuery({ + ...buildTriggersGetQuery( + client, + triggerId, + options, + ), + ...options, + }); +} + +export function setTriggersGetData( + client: QueryClient, + queryKeyBase: [triggerId: string], + data: TriggersGetQueryData, +): TriggersGetQueryData | undefined { + const key = queryKeyTriggersGet(...queryKeyBase); + + return client.setQueryData(key, data); +} + +export function invalidateTriggersGet( + client: QueryClient, + queryKeyBase: TupleToPrefixes<[triggerId: string]>, + filters?: Omit, +): Promise { + return client.invalidateQueries({ + ...filters, + queryKey: ["@gleanwork/api-client", "triggers", "get", ...queryKeyBase], + }); +} + +export function invalidateAllTriggersGet( + client: QueryClient, + filters?: Omit, +): Promise { + return client.invalidateQueries({ + ...filters, + queryKey: ["@gleanwork/api-client", "triggers", "get"], + }); +} diff --git a/src/react-query/triggersGetPreset.core.ts b/src/react-query/triggersGetPreset.core.ts new file mode 100644 index 000000000..2127a42d4 --- /dev/null +++ b/src/react-query/triggersGetPreset.core.ts @@ -0,0 +1,72 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 572eb7a2ed9f + */ + +import { + QueryClient, + QueryFunctionContext, + QueryKey, +} from "@tanstack/react-query"; +import { GleanCore } from "../core.js"; +import { triggersGetPreset } from "../funcs/triggersGetPreset.js"; +import { combineSignals } from "../lib/primitives.js"; +import { RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { unwrapAsync } from "../types/fp.js"; +export type TriggersGetPresetQueryData = + components.PlatformTriggerPresetGetResponse; + +export function prefetchTriggersGetPreset( + queryClient: QueryClient, + client$: GleanCore, + presetId: string, + options?: RequestOptions, +): Promise { + return queryClient.prefetchQuery({ + ...buildTriggersGetPresetQuery( + client$, + presetId, + options, + ), + }); +} + +export function buildTriggersGetPresetQuery( + client$: GleanCore, + presetId: string, + options?: RequestOptions, +): { + queryKey: QueryKey; + queryFn: ( + context: QueryFunctionContext, + ) => Promise; +} { + return { + queryKey: queryKeyTriggersGetPreset(presetId), + queryFn: async function triggersGetPresetQueryFn( + ctx, + ): Promise { + const sig = combineSignals( + ctx.signal, + options?.signal, + options?.fetchOptions?.signal, + ); + const mergedOptions = { + ...options?.fetchOptions, + ...options, + signal: sig, + }; + + return unwrapAsync(triggersGetPreset( + client$, + presetId, + mergedOptions, + )); + }, + }; +} + +export function queryKeyTriggersGetPreset(presetId: string): QueryKey { + return ["@gleanwork/api-client", "triggers", "getPreset", presetId]; +} diff --git a/src/react-query/triggersGetPreset.ts b/src/react-query/triggersGetPreset.ts new file mode 100644 index 000000000..0981df485 --- /dev/null +++ b/src/react-query/triggersGetPreset.ts @@ -0,0 +1,140 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 653b5e2d4654 + */ + +import { + InvalidateQueryFilters, + QueryClient, + useQuery, + UseQueryResult, + useSuspenseQuery, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { useGleanContext } from "./_context.js"; +import { + QueryHookOptions, + SuspenseQueryHookOptions, + TupleToPrefixes, +} from "./_types.js"; +import { + buildTriggersGetPresetQuery, + prefetchTriggersGetPreset, + queryKeyTriggersGetPreset, + TriggersGetPresetQueryData, +} from "./triggersGetPreset.core.js"; +export { + buildTriggersGetPresetQuery, + prefetchTriggersGetPreset, + queryKeyTriggersGetPreset, + type TriggersGetPresetQueryData, +}; + +export type TriggersGetPresetQueryError = + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + +/** + * Get trigger preset + * + * @remarks + * Retrieve a single trigger preset by id. + */ +export function useTriggersGetPreset( + presetId: string, + options?: QueryHookOptions< + TriggersGetPresetQueryData, + TriggersGetPresetQueryError + >, +): UseQueryResult { + const client = useGleanContext(); + return useQuery({ + ...buildTriggersGetPresetQuery( + client, + presetId, + options, + ), + ...options, + }); +} + +/** + * Get trigger preset + * + * @remarks + * Retrieve a single trigger preset by id. + */ +export function useTriggersGetPresetSuspense( + presetId: string, + options?: SuspenseQueryHookOptions< + TriggersGetPresetQueryData, + TriggersGetPresetQueryError + >, +): UseSuspenseQueryResult< + TriggersGetPresetQueryData, + TriggersGetPresetQueryError +> { + const client = useGleanContext(); + return useSuspenseQuery({ + ...buildTriggersGetPresetQuery( + client, + presetId, + options, + ), + ...options, + }); +} + +export function setTriggersGetPresetData( + client: QueryClient, + queryKeyBase: [presetId: string], + data: TriggersGetPresetQueryData, +): TriggersGetPresetQueryData | undefined { + const key = queryKeyTriggersGetPreset(...queryKeyBase); + + return client.setQueryData(key, data); +} + +export function invalidateTriggersGetPreset( + client: QueryClient, + queryKeyBase: TupleToPrefixes<[presetId: string]>, + filters?: Omit, +): Promise { + return client.invalidateQueries({ + ...filters, + queryKey: [ + "@gleanwork/api-client", + "triggers", + "getPreset", + ...queryKeyBase, + ], + }); +} + +export function invalidateAllTriggersGetPreset( + client: QueryClient, + filters?: Omit, +): Promise { + return client.invalidateQueries({ + ...filters, + queryKey: ["@gleanwork/api-client", "triggers", "getPreset"], + }); +} diff --git a/src/react-query/triggersList.core.ts b/src/react-query/triggersList.core.ts new file mode 100644 index 000000000..cd01e9898 --- /dev/null +++ b/src/react-query/triggersList.core.ts @@ -0,0 +1,75 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: da1c1b81b3bc + */ + +import { + QueryClient, + QueryFunctionContext, + QueryKey, +} from "@tanstack/react-query"; +import { GleanCore } from "../core.js"; +import { triggersList } from "../funcs/triggersList.js"; +import { combineSignals } from "../lib/primitives.js"; +import { RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { unwrapAsync } from "../types/fp.js"; +export type TriggersListQueryData = components.PlatformTriggerListResponse; + +export function prefetchTriggersList( + queryClient: QueryClient, + client$: GleanCore, + pageSize?: number | undefined, + cursor?: string | undefined, + options?: RequestOptions, +): Promise { + return queryClient.prefetchQuery({ + ...buildTriggersListQuery( + client$, + pageSize, + cursor, + options, + ), + }); +} + +export function buildTriggersListQuery( + client$: GleanCore, + pageSize?: number | undefined, + cursor?: string | undefined, + options?: RequestOptions, +): { + queryKey: QueryKey; + queryFn: (context: QueryFunctionContext) => Promise; +} { + return { + queryKey: queryKeyTriggersList({ pageSize, cursor }), + queryFn: async function triggersListQueryFn( + ctx, + ): Promise { + const sig = combineSignals( + ctx.signal, + options?.signal, + options?.fetchOptions?.signal, + ); + const mergedOptions = { + ...options?.fetchOptions, + ...options, + signal: sig, + }; + + return unwrapAsync(triggersList( + client$, + pageSize, + cursor, + mergedOptions, + )); + }, + }; +} + +export function queryKeyTriggersList( + parameters: { pageSize?: number | undefined; cursor?: string | undefined }, +): QueryKey { + return ["@gleanwork/api-client", "triggers", "list", parameters]; +} diff --git a/src/react-query/triggersList.ts b/src/react-query/triggersList.ts new file mode 100644 index 000000000..8acd7c280 --- /dev/null +++ b/src/react-query/triggersList.ts @@ -0,0 +1,137 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 2950a0bc7d2a + */ + +import { + InvalidateQueryFilters, + QueryClient, + useQuery, + UseQueryResult, + useSuspenseQuery, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { useGleanContext } from "./_context.js"; +import { + QueryHookOptions, + SuspenseQueryHookOptions, + TupleToPrefixes, +} from "./_types.js"; +import { + buildTriggersListQuery, + prefetchTriggersList, + queryKeyTriggersList, + TriggersListQueryData, +} from "./triggersList.core.js"; +export { + buildTriggersListQuery, + prefetchTriggersList, + queryKeyTriggersList, + type TriggersListQueryData, +}; + +export type TriggersListQueryError = + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + +/** + * List triggers + * + * @remarks + * List triggers owned by the authenticated caller. + */ +export function useTriggersList( + pageSize?: number | undefined, + cursor?: string | undefined, + options?: QueryHookOptions, +): UseQueryResult { + const client = useGleanContext(); + return useQuery({ + ...buildTriggersListQuery( + client, + pageSize, + cursor, + options, + ), + ...options, + }); +} + +/** + * List triggers + * + * @remarks + * List triggers owned by the authenticated caller. + */ +export function useTriggersListSuspense( + pageSize?: number | undefined, + cursor?: string | undefined, + options?: SuspenseQueryHookOptions< + TriggersListQueryData, + TriggersListQueryError + >, +): UseSuspenseQueryResult { + const client = useGleanContext(); + return useSuspenseQuery({ + ...buildTriggersListQuery( + client, + pageSize, + cursor, + options, + ), + ...options, + }); +} + +export function setTriggersListData( + client: QueryClient, + queryKeyBase: [ + parameters: { pageSize?: number | undefined; cursor?: string | undefined }, + ], + data: TriggersListQueryData, +): TriggersListQueryData | undefined { + const key = queryKeyTriggersList(...queryKeyBase); + + return client.setQueryData(key, data); +} + +export function invalidateTriggersList( + client: QueryClient, + queryKeyBase: TupleToPrefixes< + [parameters: { pageSize?: number | undefined; cursor?: string | undefined }] + >, + filters?: Omit, +): Promise { + return client.invalidateQueries({ + ...filters, + queryKey: ["@gleanwork/api-client", "triggers", "list", ...queryKeyBase], + }); +} + +export function invalidateAllTriggersList( + client: QueryClient, + filters?: Omit, +): Promise { + return client.invalidateQueries({ + ...filters, + queryKey: ["@gleanwork/api-client", "triggers", "list"], + }); +} diff --git a/src/react-query/triggersListPresetInputValues.core.ts b/src/react-query/triggersListPresetInputValues.core.ts new file mode 100644 index 000000000..4a75f97a9 --- /dev/null +++ b/src/react-query/triggersListPresetInputValues.core.ts @@ -0,0 +1,89 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 4e43b3f3f0c4 + */ + +import { + QueryClient, + QueryFunctionContext, + QueryKey, +} from "@tanstack/react-query"; +import { GleanCore } from "../core.js"; +import { triggersListPresetInputValues } from "../funcs/triggersListPresetInputValues.js"; +import { combineSignals } from "../lib/primitives.js"; +import { RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { unwrapAsync } from "../types/fp.js"; +export type TriggersListPresetInputValuesQueryData = + components.PlatformTriggerPresetInputValueListResponse; + +export function prefetchTriggersListPresetInputValues( + queryClient: QueryClient, + client$: GleanCore, + presetId: string, + field: string, + query?: string | undefined, + options?: RequestOptions, +): Promise { + return queryClient.prefetchQuery({ + ...buildTriggersListPresetInputValuesQuery( + client$, + presetId, + field, + query, + options, + ), + }); +} + +export function buildTriggersListPresetInputValuesQuery( + client$: GleanCore, + presetId: string, + field: string, + query?: string | undefined, + options?: RequestOptions, +): { + queryKey: QueryKey; + queryFn: ( + context: QueryFunctionContext, + ) => Promise; +} { + return { + queryKey: queryKeyTriggersListPresetInputValues(presetId, { field, query }), + queryFn: async function triggersListPresetInputValuesQueryFn( + ctx, + ): Promise { + const sig = combineSignals( + ctx.signal, + options?.signal, + options?.fetchOptions?.signal, + ); + const mergedOptions = { + ...options?.fetchOptions, + ...options, + signal: sig, + }; + + return unwrapAsync(triggersListPresetInputValues( + client$, + presetId, + field, + query, + mergedOptions, + )); + }, + }; +} + +export function queryKeyTriggersListPresetInputValues( + presetId: string, + parameters: { field: string; query?: string | undefined }, +): QueryKey { + return [ + "@gleanwork/api-client", + "triggers", + "listPresetInputValues", + presetId, + parameters, + ]; +} diff --git a/src/react-query/triggersListPresetInputValues.ts b/src/react-query/triggersListPresetInputValues.ts new file mode 100644 index 000000000..afdb15f9a --- /dev/null +++ b/src/react-query/triggersListPresetInputValues.ts @@ -0,0 +1,159 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 6bed055cbc6b + */ + +import { + InvalidateQueryFilters, + QueryClient, + useQuery, + UseQueryResult, + useSuspenseQuery, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { useGleanContext } from "./_context.js"; +import { + QueryHookOptions, + SuspenseQueryHookOptions, + TupleToPrefixes, +} from "./_types.js"; +import { + buildTriggersListPresetInputValuesQuery, + prefetchTriggersListPresetInputValues, + queryKeyTriggersListPresetInputValues, + TriggersListPresetInputValuesQueryData, +} from "./triggersListPresetInputValues.core.js"; +export { + buildTriggersListPresetInputValuesQuery, + prefetchTriggersListPresetInputValues, + queryKeyTriggersListPresetInputValues, + type TriggersListPresetInputValuesQueryData, +}; + +export type TriggersListPresetInputValuesQueryError = + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + +/** + * Search trigger preset input values + * + * @remarks + * Return up to 300 selectable values for a single picklist input on a preset. Results are intended for typeahead selection and are not cursor-paginated. When `is_truncated` is true, refine `query` to narrow the result set. + */ +export function useTriggersListPresetInputValues( + presetId: string, + field: string, + query?: string | undefined, + options?: QueryHookOptions< + TriggersListPresetInputValuesQueryData, + TriggersListPresetInputValuesQueryError + >, +): UseQueryResult< + TriggersListPresetInputValuesQueryData, + TriggersListPresetInputValuesQueryError +> { + const client = useGleanContext(); + return useQuery({ + ...buildTriggersListPresetInputValuesQuery( + client, + presetId, + field, + query, + options, + ), + ...options, + }); +} + +/** + * Search trigger preset input values + * + * @remarks + * Return up to 300 selectable values for a single picklist input on a preset. Results are intended for typeahead selection and are not cursor-paginated. When `is_truncated` is true, refine `query` to narrow the result set. + */ +export function useTriggersListPresetInputValuesSuspense( + presetId: string, + field: string, + query?: string | undefined, + options?: SuspenseQueryHookOptions< + TriggersListPresetInputValuesQueryData, + TriggersListPresetInputValuesQueryError + >, +): UseSuspenseQueryResult< + TriggersListPresetInputValuesQueryData, + TriggersListPresetInputValuesQueryError +> { + const client = useGleanContext(); + return useSuspenseQuery({ + ...buildTriggersListPresetInputValuesQuery( + client, + presetId, + field, + query, + options, + ), + ...options, + }); +} + +export function setTriggersListPresetInputValuesData( + client: QueryClient, + queryKeyBase: [ + presetId: string, + parameters: { field: string; query?: string | undefined }, + ], + data: TriggersListPresetInputValuesQueryData, +): TriggersListPresetInputValuesQueryData | undefined { + const key = queryKeyTriggersListPresetInputValues(...queryKeyBase); + + return client.setQueryData(key, data); +} + +export function invalidateTriggersListPresetInputValues( + client: QueryClient, + queryKeyBase: TupleToPrefixes< + [ + presetId: string, + parameters: { field: string; query?: string | undefined }, + ] + >, + filters?: Omit, +): Promise { + return client.invalidateQueries({ + ...filters, + queryKey: [ + "@gleanwork/api-client", + "triggers", + "listPresetInputValues", + ...queryKeyBase, + ], + }); +} + +export function invalidateAllTriggersListPresetInputValues( + client: QueryClient, + filters?: Omit, +): Promise { + return client.invalidateQueries({ + ...filters, + queryKey: ["@gleanwork/api-client", "triggers", "listPresetInputValues"], + }); +} diff --git a/src/react-query/triggersListPresets.core.ts b/src/react-query/triggersListPresets.core.ts new file mode 100644 index 000000000..a4de4de95 --- /dev/null +++ b/src/react-query/triggersListPresets.core.ts @@ -0,0 +1,86 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 1ad6d934d3bf + */ + +import { + QueryClient, + QueryFunctionContext, + QueryKey, +} from "@tanstack/react-query"; +import { GleanCore } from "../core.js"; +import { triggersListPresets } from "../funcs/triggersListPresets.js"; +import { combineSignals } from "../lib/primitives.js"; +import { RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { unwrapAsync } from "../types/fp.js"; +export type TriggersListPresetsQueryData = + components.PlatformTriggerPresetListResponse; + +export function prefetchTriggersListPresets( + queryClient: QueryClient, + client$: GleanCore, + datasource?: string | undefined, + pageSize?: number | undefined, + cursor?: string | undefined, + options?: RequestOptions, +): Promise { + return queryClient.prefetchQuery({ + ...buildTriggersListPresetsQuery( + client$, + datasource, + pageSize, + cursor, + options, + ), + }); +} + +export function buildTriggersListPresetsQuery( + client$: GleanCore, + datasource?: string | undefined, + pageSize?: number | undefined, + cursor?: string | undefined, + options?: RequestOptions, +): { + queryKey: QueryKey; + queryFn: ( + context: QueryFunctionContext, + ) => Promise; +} { + return { + queryKey: queryKeyTriggersListPresets({ datasource, pageSize, cursor }), + queryFn: async function triggersListPresetsQueryFn( + ctx, + ): Promise { + const sig = combineSignals( + ctx.signal, + options?.signal, + options?.fetchOptions?.signal, + ); + const mergedOptions = { + ...options?.fetchOptions, + ...options, + signal: sig, + }; + + return unwrapAsync(triggersListPresets( + client$, + datasource, + pageSize, + cursor, + mergedOptions, + )); + }, + }; +} + +export function queryKeyTriggersListPresets( + parameters: { + datasource?: string | undefined; + pageSize?: number | undefined; + cursor?: string | undefined; + }, +): QueryKey { + return ["@gleanwork/api-client", "triggers", "listPresets", parameters]; +} diff --git a/src/react-query/triggersListPresets.ts b/src/react-query/triggersListPresets.ts new file mode 100644 index 000000000..6115f2df8 --- /dev/null +++ b/src/react-query/triggersListPresets.ts @@ -0,0 +1,160 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: f24df3df79fc + */ + +import { + InvalidateQueryFilters, + QueryClient, + useQuery, + UseQueryResult, + useSuspenseQuery, + UseSuspenseQueryResult, +} from "@tanstack/react-query"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { useGleanContext } from "./_context.js"; +import { + QueryHookOptions, + SuspenseQueryHookOptions, + TupleToPrefixes, +} from "./_types.js"; +import { + buildTriggersListPresetsQuery, + prefetchTriggersListPresets, + queryKeyTriggersListPresets, + TriggersListPresetsQueryData, +} from "./triggersListPresets.core.js"; +export { + buildTriggersListPresetsQuery, + prefetchTriggersListPresets, + queryKeyTriggersListPresets, + type TriggersListPresetsQueryData, +}; + +export type TriggersListPresetsQueryError = + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + +/** + * List trigger presets + * + * @remarks + * List the trigger presets available to the caller. A preset is a curated content-trigger template (e.g. a new Jira ticket) which is passed when creating a trigger. + */ +export function useTriggersListPresets( + datasource?: string | undefined, + pageSize?: number | undefined, + cursor?: string | undefined, + options?: QueryHookOptions< + TriggersListPresetsQueryData, + TriggersListPresetsQueryError + >, +): UseQueryResult { + const client = useGleanContext(); + return useQuery({ + ...buildTriggersListPresetsQuery( + client, + datasource, + pageSize, + cursor, + options, + ), + ...options, + }); +} + +/** + * List trigger presets + * + * @remarks + * List the trigger presets available to the caller. A preset is a curated content-trigger template (e.g. a new Jira ticket) which is passed when creating a trigger. + */ +export function useTriggersListPresetsSuspense( + datasource?: string | undefined, + pageSize?: number | undefined, + cursor?: string | undefined, + options?: SuspenseQueryHookOptions< + TriggersListPresetsQueryData, + TriggersListPresetsQueryError + >, +): UseSuspenseQueryResult< + TriggersListPresetsQueryData, + TriggersListPresetsQueryError +> { + const client = useGleanContext(); + return useSuspenseQuery({ + ...buildTriggersListPresetsQuery( + client, + datasource, + pageSize, + cursor, + options, + ), + ...options, + }); +} + +export function setTriggersListPresetsData( + client: QueryClient, + queryKeyBase: [ + parameters: { + datasource?: string | undefined; + pageSize?: number | undefined; + cursor?: string | undefined; + }, + ], + data: TriggersListPresetsQueryData, +): TriggersListPresetsQueryData | undefined { + const key = queryKeyTriggersListPresets(...queryKeyBase); + + return client.setQueryData(key, data); +} + +export function invalidateTriggersListPresets( + client: QueryClient, + queryKeyBase: TupleToPrefixes< + [parameters: { + datasource?: string | undefined; + pageSize?: number | undefined; + cursor?: string | undefined; + }] + >, + filters?: Omit, +): Promise { + return client.invalidateQueries({ + ...filters, + queryKey: [ + "@gleanwork/api-client", + "triggers", + "listPresets", + ...queryKeyBase, + ], + }); +} + +export function invalidateAllTriggersListPresets( + client: QueryClient, + filters?: Omit, +): Promise { + return client.invalidateQueries({ + ...filters, + queryKey: ["@gleanwork/api-client", "triggers", "listPresets"], + }); +} diff --git a/src/react-query/triggersSearchEvents.ts b/src/react-query/triggersSearchEvents.ts new file mode 100644 index 000000000..28acd061a --- /dev/null +++ b/src/react-query/triggersSearchEvents.ts @@ -0,0 +1,117 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 1cb1234ae7c0 + */ + +import { + MutationKey, + useMutation, + UseMutationResult, +} from "@tanstack/react-query"; +import { GleanCore } from "../core.js"; +import { triggersSearchEvents } from "../funcs/triggersSearchEvents.js"; +import { combineSignals } from "../lib/primitives.js"; +import { RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { unwrapAsync } from "../types/fp.js"; +import { useGleanContext } from "./_context.js"; +import { MutationHookOptions } from "./_types.js"; + +export type TriggersSearchEventsMutationVariables = { + triggerId: string; + platformTriggerEventSearchRequest?: + | components.PlatformTriggerEventSearchRequest + | undefined; + options?: RequestOptions; +}; + +export type TriggersSearchEventsMutationData = + components.PlatformTriggerEventSearchResponse; + +export type TriggersSearchEventsMutationError = + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + +/** + * Search events for a trigger + * + * @remarks + * Search recent content events an existing trigger matches. Read-only — no webhook delivery is made. Covers the last seven days. + */ +export function useTriggersSearchEventsMutation( + options?: MutationHookOptions< + TriggersSearchEventsMutationData, + TriggersSearchEventsMutationError, + TriggersSearchEventsMutationVariables + >, +): UseMutationResult< + TriggersSearchEventsMutationData, + TriggersSearchEventsMutationError, + TriggersSearchEventsMutationVariables +> { + const client = useGleanContext(); + return useMutation({ + ...buildTriggersSearchEventsMutation(client, options), + ...options, + }); +} + +export function mutationKeyTriggersSearchEvents(): MutationKey { + return ["@gleanwork/api-client", "triggers", "searchEvents"]; +} + +export function buildTriggersSearchEventsMutation( + client$: GleanCore, + hookOptions?: RequestOptions, +): { + mutationKey: MutationKey; + mutationFn: ( + variables: TriggersSearchEventsMutationVariables, + ) => Promise; +} { + return { + mutationKey: mutationKeyTriggersSearchEvents(), + mutationFn: function triggersSearchEventsMutationFn({ + triggerId, + platformTriggerEventSearchRequest, + options, + }): Promise { + const mergedOptions = { + ...hookOptions, + ...options, + fetchOptions: { + ...hookOptions?.fetchOptions, + ...options?.fetchOptions, + signal: combineSignals( + hookOptions?.fetchOptions?.signal, + options?.fetchOptions?.signal, + ), + }, + }; + return unwrapAsync(triggersSearchEvents( + client$, + triggerId, + platformTriggerEventSearchRequest, + mergedOptions, + )); + }, + }; +} diff --git a/src/react-query/triggersSearchPresetEvents.ts b/src/react-query/triggersSearchPresetEvents.ts new file mode 100644 index 000000000..48b248fdd --- /dev/null +++ b/src/react-query/triggersSearchPresetEvents.ts @@ -0,0 +1,117 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 3e65cc6cab3c + */ + +import { + MutationKey, + useMutation, + UseMutationResult, +} from "@tanstack/react-query"; +import { GleanCore } from "../core.js"; +import { triggersSearchPresetEvents } from "../funcs/triggersSearchPresetEvents.js"; +import { combineSignals } from "../lib/primitives.js"; +import { RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { unwrapAsync } from "../types/fp.js"; +import { useGleanContext } from "./_context.js"; +import { MutationHookOptions } from "./_types.js"; + +export type TriggersSearchPresetEventsMutationVariables = { + presetId: string; + platformTriggerPresetEventSearchRequest?: + | components.PlatformTriggerPresetEventSearchRequest + | undefined; + options?: RequestOptions; +}; + +export type TriggersSearchPresetEventsMutationData = + components.PlatformTriggerEventSearchResponse; + +export type TriggersSearchPresetEventsMutationError = + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + +/** + * Search events for a trigger preset + * + * @remarks + * Search recent content events an unsaved trigger built from this preset would match, to preview it before creating the trigger. Read-only — no trigger is created and no webhook delivery is made. Covers the last seven days. + */ +export function useTriggersSearchPresetEventsMutation( + options?: MutationHookOptions< + TriggersSearchPresetEventsMutationData, + TriggersSearchPresetEventsMutationError, + TriggersSearchPresetEventsMutationVariables + >, +): UseMutationResult< + TriggersSearchPresetEventsMutationData, + TriggersSearchPresetEventsMutationError, + TriggersSearchPresetEventsMutationVariables +> { + const client = useGleanContext(); + return useMutation({ + ...buildTriggersSearchPresetEventsMutation(client, options), + ...options, + }); +} + +export function mutationKeyTriggersSearchPresetEvents(): MutationKey { + return ["@gleanwork/api-client", "triggers", "searchPresetEvents"]; +} + +export function buildTriggersSearchPresetEventsMutation( + client$: GleanCore, + hookOptions?: RequestOptions, +): { + mutationKey: MutationKey; + mutationFn: ( + variables: TriggersSearchPresetEventsMutationVariables, + ) => Promise; +} { + return { + mutationKey: mutationKeyTriggersSearchPresetEvents(), + mutationFn: function triggersSearchPresetEventsMutationFn({ + presetId, + platformTriggerPresetEventSearchRequest, + options, + }): Promise { + const mergedOptions = { + ...hookOptions, + ...options, + fetchOptions: { + ...hookOptions?.fetchOptions, + ...options?.fetchOptions, + signal: combineSignals( + hookOptions?.fetchOptions?.signal, + options?.fetchOptions?.signal, + ), + }, + }; + return unwrapAsync(triggersSearchPresetEvents( + client$, + presetId, + platformTriggerPresetEventSearchRequest, + mergedOptions, + )); + }, + }; +} diff --git a/src/react-query/triggersUpdate.ts b/src/react-query/triggersUpdate.ts new file mode 100644 index 000000000..f626631ca --- /dev/null +++ b/src/react-query/triggersUpdate.ts @@ -0,0 +1,114 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 42511c6970b3 + */ + +import { + MutationKey, + useMutation, + UseMutationResult, +} from "@tanstack/react-query"; +import { GleanCore } from "../core.js"; +import { triggersUpdate } from "../funcs/triggersUpdate.js"; +import { combineSignals } from "../lib/primitives.js"; +import { RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { GleanBaseError } from "../models/errors/gleanbaseerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import { unwrapAsync } from "../types/fp.js"; +import { useGleanContext } from "./_context.js"; +import { MutationHookOptions } from "./_types.js"; + +export type TriggersUpdateMutationVariables = { + platformTriggerUpdateRequest: components.PlatformTriggerUpdateRequest; + triggerId: string; + options?: RequestOptions; +}; + +export type TriggersUpdateMutationData = components.PlatformTriggerGetResponse; + +export type TriggersUpdateMutationError = + | errors.PlatformProblemDetailError + | GleanBaseError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError; + +/** + * Update trigger + * + * @remarks + * Update a trigger. + */ +export function useTriggersUpdateMutation( + options?: MutationHookOptions< + TriggersUpdateMutationData, + TriggersUpdateMutationError, + TriggersUpdateMutationVariables + >, +): UseMutationResult< + TriggersUpdateMutationData, + TriggersUpdateMutationError, + TriggersUpdateMutationVariables +> { + const client = useGleanContext(); + return useMutation({ + ...buildTriggersUpdateMutation(client, options), + ...options, + }); +} + +export function mutationKeyTriggersUpdate(): MutationKey { + return ["@gleanwork/api-client", "triggers", "update"]; +} + +export function buildTriggersUpdateMutation( + client$: GleanCore, + hookOptions?: RequestOptions, +): { + mutationKey: MutationKey; + mutationFn: ( + variables: TriggersUpdateMutationVariables, + ) => Promise; +} { + return { + mutationKey: mutationKeyTriggersUpdate(), + mutationFn: function triggersUpdateMutationFn({ + platformTriggerUpdateRequest, + triggerId, + options, + }): Promise { + const mergedOptions = { + ...hookOptions, + ...options, + fetchOptions: { + ...hookOptions?.fetchOptions, + ...options?.fetchOptions, + signal: combineSignals( + hookOptions?.fetchOptions?.signal, + options?.fetchOptions?.signal, + ), + }, + }; + return unwrapAsync(triggersUpdate( + client$, + platformTriggerUpdateRequest, + triggerId, + mergedOptions, + )); + }, + }; +} diff --git a/src/sdk/sdk.ts b/src/sdk/sdk.ts index d5dac7a4f..9eef2f588 100644 --- a/src/sdk/sdk.ts +++ b/src/sdk/sdk.ts @@ -10,6 +10,7 @@ import { Client } from "./client.js"; import { Indexing } from "./indexing.js"; import { Search } from "./search.js"; import { Skills } from "./skills.js"; +import { Triggers } from "./triggers.js"; export class Glean extends ClientSDK { private _agents?: Agents; @@ -32,6 +33,11 @@ export class Glean extends ClientSDK { return (this._search ??= new Search(this._options)); } + private _triggers?: Triggers; + get triggers(): Triggers { + return (this._triggers ??= new Triggers(this._options)); + } + private _client?: Client; get client(): Client { return (this._client ??= new Client(this._options)); diff --git a/src/sdk/skills.ts b/src/sdk/skills.ts index f6c835465..fbf9360e1 100644 --- a/src/sdk/skills.ts +++ b/src/sdk/skills.ts @@ -65,16 +65,16 @@ export class Skills extends ClientSDK { } /** - * Validate skill bundle + * Import skills from GitHub * * @remarks - * Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. + * Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. */ - async validate( - request: components.PlatformSkillValidationRequest, + async import( + request: components.PlatformSkillImportRequest, options?: RequestOptions, - ): Promise { - return unwrapAsync(skillsValidate( + ): Promise { + return unwrapAsync(skillsImport( this, request, options, @@ -82,16 +82,16 @@ export class Skills extends ClientSDK { } /** - * Import skills from GitHub + * Validate skill bundle * * @remarks - * Import one or more skills selected from a GitHub source preview. Each source URL is fetched and persisted as an independent skill with source provenance. This operation does not create a durable source resource. The import is atomic: if any source cannot be fetched, validated, or persisted, no skills are created. + * Validate a skill bundle without persisting it. Accepts a SKILL.md, .zip, or .skill upload and returns parsed metadata plus the normalized file layout. */ - async import( - request: components.PlatformSkillImportRequest, + async validate( + request: components.PlatformSkillValidationRequest, options?: RequestOptions, - ): Promise { - return unwrapAsync(skillsImport( + ): Promise { + return unwrapAsync(skillsValidate( this, request, options, diff --git a/src/sdk/tools.ts b/src/sdk/tools.ts index 8129bb1f3..806e62fd4 100644 --- a/src/sdk/tools.ts +++ b/src/sdk/tools.ts @@ -141,14 +141,15 @@ export class Tools extends ClientSDK { * * @remarks * Returns the name, description and JSON input schema for the named tools on the - * specified tool server. Works for both action packs and MCP servers. + * specified tool server. Works for Glean's built-in tools, tool packs and MCP + * servers. * * `toolNames` is required. Names that do not exist on the server are returned in * `notFound` rather than failing the request, so a single bad name does not force * callers into one-at-a-time retries. Matching is case-insensitive and treats `-` * and `_` as equivalent. * - * Native tools are not served; `serverId=native` returns 404. + * Use `serverId=native` for Glean's built-in tools. */ async getToolServerTools( serverId: string, diff --git a/src/sdk/triggers.ts b/src/sdk/triggers.ts new file mode 100644 index 000000000..61dda95ba --- /dev/null +++ b/src/sdk/triggers.ts @@ -0,0 +1,210 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + * @generated-id: 2b0bc3f627a3 + */ + +import { triggersCreate } from "../funcs/triggersCreate.js"; +import { triggersDelete } from "../funcs/triggersDelete.js"; +import { triggersGet } from "../funcs/triggersGet.js"; +import { triggersGetPreset } from "../funcs/triggersGetPreset.js"; +import { triggersList } from "../funcs/triggersList.js"; +import { triggersListPresetInputValues } from "../funcs/triggersListPresetInputValues.js"; +import { triggersListPresets } from "../funcs/triggersListPresets.js"; +import { triggersSearchEvents } from "../funcs/triggersSearchEvents.js"; +import { triggersSearchPresetEvents } from "../funcs/triggersSearchPresetEvents.js"; +import { triggersUpdate } from "../funcs/triggersUpdate.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as components from "../models/components/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class Triggers extends ClientSDK { + /** + * Create trigger + * + * @remarks + * Create a trigger from a preset and return it with its signing secret. + */ + async create( + request: components.PlatformTriggerCreateRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggersCreate( + this, + request, + options, + )); + } + + /** + * List triggers + * + * @remarks + * List triggers owned by the authenticated caller. + */ + async list( + pageSize?: number | undefined, + cursor?: string | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggersList( + this, + pageSize, + cursor, + options, + )); + } + + /** + * Get trigger + * + * @remarks + * Retrieve a trigger owned by the authenticated caller. + */ + async get( + triggerId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggersGet( + this, + triggerId, + options, + )); + } + + /** + * Update trigger + * + * @remarks + * Update a trigger. + */ + async update( + platformTriggerUpdateRequest: components.PlatformTriggerUpdateRequest, + triggerId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggersUpdate( + this, + platformTriggerUpdateRequest, + triggerId, + options, + )); + } + + /** + * Delete trigger + * + * @remarks + * Delete a trigger. + */ + async delete( + triggerId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggersDelete( + this, + triggerId, + options, + )); + } + + /** + * Search events for a trigger + * + * @remarks + * Search recent content events an existing trigger matches. Read-only — no webhook delivery is made. Covers the last seven days. + */ + async searchEvents( + triggerId: string, + platformTriggerEventSearchRequest?: + | components.PlatformTriggerEventSearchRequest + | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggersSearchEvents( + this, + triggerId, + platformTriggerEventSearchRequest, + options, + )); + } + + /** + * List trigger presets + * + * @remarks + * List the trigger presets available to the caller. A preset is a curated content-trigger template (e.g. a new Jira ticket) which is passed when creating a trigger. + */ + async listPresets( + datasource?: string | undefined, + pageSize?: number | undefined, + cursor?: string | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggersListPresets( + this, + datasource, + pageSize, + cursor, + options, + )); + } + + /** + * Get trigger preset + * + * @remarks + * Retrieve a single trigger preset by id. + */ + async getPreset( + presetId: string, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggersGetPreset( + this, + presetId, + options, + )); + } + + /** + * Search trigger preset input values + * + * @remarks + * Return up to 300 selectable values for a single picklist input on a preset. Results are intended for typeahead selection and are not cursor-paginated. When `is_truncated` is true, refine `query` to narrow the result set. + */ + async listPresetInputValues( + presetId: string, + field: string, + query?: string | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggersListPresetInputValues( + this, + presetId, + field, + query, + options, + )); + } + + /** + * Search events for a trigger preset + * + * @remarks + * Search recent content events an unsaved trigger built from this preset would match, to preview it before creating the trigger. Read-only — no trigger is created and no webhook delivery is made. Covers the last seven days. + */ + async searchPresetEvents( + presetId: string, + platformTriggerPresetEventSearchRequest?: + | components.PlatformTriggerPresetEventSearchRequest + | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(triggersSearchPresetEvents( + this, + presetId, + platformTriggerPresetEventSearchRequest, + options, + )); + } +}